OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配
公共类型 | 公共成员函数 | 静态公共成员函数 | 静态公共属性 | 所有成员列表
cv::ORB 类参考抽象

实现了 ORB (方向 BRIEF) 关键点检测和描述符提取。有关更多信息,请参阅这里

#include <opencv2/features2d.hpp>

cv::ORB 协作图

公共类型

枚举  ScoreType {
  HARRIS_SCORE =0 ,
  FAST_SCORE =1
}
 

公共成员函数

virtual String getDefaultName () const CV_OVERRIDE
 
virtual int getEdgeThreshold () const =0
 
virtual int getFastThreshold () const =0
 
virtual int getFirstLevel () const =0
 
virtual int getMaxFeatures () const =0
 
virtual int getNLevels () const =0
 
virtual int getPatchSize () const =0
 
virtual double getScaleFactor () const =0
 
virtual ORB::ScoreType getScoreType () const =0
 
virtual int getWTA_K () const =0
 
virtual void setEdgeThreshold (int edgeThreshold)=0
 
virtual void setFastThreshold (int fastThreshold)=0
 
virtual void setFirstLevel (int firstLevel)=0
 
virtual void setMaxFeatures (int maxFeatures)=0
 
virtual void setNLevels (int nlevels)=0
 
virtual void setPatchSize (int patchSize)=0
 
virtual void setScaleFactor (double scaleFactor)=0
 
virtual void setScoreType (ORB::ScoreType scoreType)=0
 
virtual void setWTA_K (int wta_k)=0
 
- 从 cv::Feature2D 继承的公共成员函数
virtual ~Feature2D ()
 
virtual void compute (InputArray image, std::vector< KeyPoint > &keypoints, OutputArray descriptors)
 计算在图像(第一种变体)或图像集中检测到的关键点的描述符(第一种变体)。
 
virtual void compute (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, OutputArrayOfArrays descriptors)
 
virtual int defaultNorm () const
 
virtual int descriptorSize () const
 
virtual int descriptorType () const
 
virtual void detect (InputArray image, std::vector< KeyPoint > &keypoints, InputArray mask=noArray())
 在图像(第一个变体)或图像集(第二个变体)中检测关键点。
 
virtual void detect (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, InputArrayOfArrays masks=noArray())
 
virtual void detectAndCompute (InputArray image, InputArray mask, std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)
 
virtual bool empty () const CV_OVERRIDE
 如果检测器对象为空,则返回 true。
 
virtual void read (const FileNode &) CV_OVERRIDE
 从文件存储中读取算法参数。
 
void read (const String &fileName)
 
void write (const Ptr< FileStorage > &fs, const String &name) const
 
void write (const String &fileName) const
 
virtual void write (FileStorage &) const CV_OVERRIDE
 将算法参数存储在文件存储中。
 
void write (FileStorage &fs, const String &name) const
 
- 从 cv::Algorithm 继承的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
void write (FileStorage &fs, const String &name) const
 

静态公开成员函数

static Ptr< ORBcreate (int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31, int firstLevel=0, int WTA_K=2, ORB::ScoreType scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20)
 ORB 构造函数。
 
- 从 cv::Algorithm 继承的静态公开成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点中读取算法。
 

静态公开属性

static const int kBytes = 32
 

其他继承成员

- 从 cv::Algorithm 继承的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细说明

实现 ORB(orientated BRIEF)特征点检测和描述符提取的类。

该算法在参考[228]中描述。该算法使用在金字塔中实现的 FAST 来检测稳定的特征点,使用 FAST 或 Harris 响应选择最强的特征,利用一阶矩来确定它们的方向,并使用 BRIEF 计算描述符(其中随机点对的坐标根据测量的方向旋转)。

成员枚举文档

◆ ScoreType

枚举值
HARRIS_SCORE 
FAST_SCORE 

成员函数文档

◆ create()

static Ptr< ORB > cv::ORB::create ( int  nfeatures = 500,
float  scaleFactor = 1.2f,
int  nlevels = 8,
int  edgeThreshold = 31,
int  firstLevel = 0,
int  WTA_K = 2,
ORB::ScoreType  scoreType = ORB::HARRIS_SCORE,
int  patchSize = 31,
int  fastThreshold = 20 
)
静态
Python
cv.ORB.create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval
cv.ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval

ORB 构造函数。

参数
nfeatures保留的最大特征数。
scaleFactor金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,下一级像素减少 4 倍,但这样大的缩放比例将极大地降低特征匹配得分。另一方面,缩放比例接近 1 将意味着为了覆盖特定的尺度范围,你需要更多的金字塔级别,因此速度会受到影响。
nlevels金字塔级别数。最小级别将具有与输入_image_linear_size/pow(scaleFactor, nlevels - firstLevel) 线性相等的大小。
edgeThreshold这里不检测特征的边界的尺寸。它应该大致匹配 patchSize 参数。
firstLevel将源图像放置的金字塔级别。之前的层被上采样源图像填充。
WTA_K产生每个定向 BRIEF 描述符元素的点数。默认值 2 表示取出随机点对并比较它们的亮度,因此得到 0/1 响应。其他可能的值是 3 和 4。例如,3 表示我们取出 3 个随机点(当然,这些点坐标是随机的,但它们是从预定义的种子生成的,因此 BRIEF 描述符的每个元素都是确定性地从像素矩形计算出来的),找到亮度最高的点并输出获胜者的索引(0、1 或 2)。这样的输出将占用 2 位,因此需要 Hamming 距离的特殊变体,即 NORM_HAMMING2(每个箱子 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个箱子(这将占用 2 位,可能值为 0、1、2 或 3)。
scoreType默认的 HARRIS_SCORE 表示使用 Harris 算法对特征进行排序(分数写入 KeyPoint::score 并用于保留最佳的 nfeatures 特征);FAST_SCORE 是参数的替代值,它产生的关键点略不稳定,但计算速度快一些。
patchSize定向 BRIEF 描述符使用的补丁大小。当然,在较小的金字塔层上,特征覆盖的图像区域将更大。
fastThreshold快速阈值

◆ getDefaultName()

virtual String cv::ORB::getDefaultName ( ) const
virtual
Python
cv.ORB.getDefaultName() -> retval

返回算法字符串标识符。此字符串用于将对象保存到文件或字符串时作为顶级 xml/yml 节点标签。

cv::Feature2D 继承。

◆ getEdgeThreshold()

virtual int cv::ORB::getEdgeThreshold ( ) const
pure virtual
Python
cv.ORB.getEdgeThreshold() -> retval

◆ getFastThreshold()

virtual int cv::ORB::getFastThreshold ( ) const
pure virtual
Python
cv.ORB.getFastThreshold() -> retval

◆ getFirstLevel()

virtual int cv::ORB::getFirstLevel ( ) const
pure virtual
Python
cv.ORB.getFirstLevel() -> retval

◆ getMaxFeatures()

virtual int cv::ORB::getMaxFeatures ( ) const
pure virtual
Python
cv.ORB.getMaxFeatures() -> retval

◆ getNLevels()

virtual int cv::ORB::getNLevels ( ) const
pure virtual
Python
cv.ORB.getNLevels() -> retval

◆ getPatchSize()

虚拟成员函数 int cv::ORB::getPatchSize ( ) const
pure virtual
Python
cv.ORB.getPatchSize() -> retval

◆ getScaleFactor()

虚拟成员函数 double cv::ORB::getScaleFactor ( ) const
pure virtual
Python
cv.ORB.getScaleFactor() -> retval

◆ getScoreType()

虚拟成员函数 cv::ORB::ScoreType cv::ORB::getScoreType ( ) const
pure virtual
Python
cv.ORB.getScoreType() -> retval

◆ getWTA_K()

虚拟成员函数 int cv::ORB::getWTA_K ( ) const
pure virtual
Python
cv.ORB.getWTA_K() -> retval

◆ setEdgeThreshold()

虚拟成员函数 void cv::ORB::setEdgeThreshold ( int  edgeThreshold)
pure virtual
Python
cv.ORB.setEdgeThreshold(edgeThreshold) -> None

◆ setFastThreshold()

虚拟成员函数 void cv::ORB::setFastThreshold ( int  fastThreshold)
pure virtual
Python
cv.ORB.setFastThreshold(fastThreshold) -> None

◆ setFirstLevel()

虚拟成员函数 void cv::ORB::setFirstLevel ( int  firstLevel)
pure virtual
Python
cv.ORB.setFirstLevel(firstLevel) -> None

◆ setMaxFeatures()

虚拟成员函数 void cv::ORB::setMaxFeatures ( int  maxFeatures)
pure virtual
Python
cv.ORB.setMaxFeatures(maxFeatures) -> None

◆ setNLevels()

虚拟成员函数 void cv::ORB::setNLevels ( int  nlevels)
pure virtual
Python
cv.ORB.setNLevels(nlevels) -> None

◆ setPatchSize()

虚拟成员函数 void cv::ORB::setPatchSize ( int  patchSize)
pure virtual
Python
cv.ORB.setPatchSize(patchSize) -> None

◆ setScaleFactor()

虚拟成员函数 void cv::ORB::setScaleFactor ( double  scaleFactor)
pure virtual
Python
cv.ORB.setScaleFactor(scaleFactor) -> None

◆ setScoreType()

虚拟成员函数 void cv::ORB::setScoreType ( ORB::ScoreType  scoreType)
pure virtual
Python
cv.ORB.setScoreType(scoreType) -> None

◆ setWTA_K()

虚拟成员函数 void cv::ORB::setWTA_K ( int  wta_k)
pure virtual
Python
cv.ORB.setWTA_K(wta_k) -> None

成员数据文档

◆ kBytes

const int cv::ORB::kBytes = 32
静态

本类的文档是由以下文件生成的