OpenCV 4.11.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(定向BRIEF)关键点检测器和描述符提取器的类。

[229] 中描述。该算法使用金字塔中的FAST检测稳定的关键点,使用FAST或Harris响应选择最强的特征,使用一阶矩找到它们的方位,并使用BRIEF计算描述符(其中随机点对(或k元组)的坐标根据测量的方位旋转)。

成员枚举文档

◆ 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 )
static
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金字塔层数。最小层线性尺寸等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。
edgeThreshold这是未检测到特征的边界大小。它应该大致匹配 patchSize 参数。
firstLevel将源图像放置到的金字塔层级。之前的层用上采样的源图像填充。
WTA_K产生定向BRIEF描述符的每个元素的点数。默认值2表示BRIEF,我们取一个随机点对并比较它们的亮度,因此得到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描述符使用的补丁大小。当然,在较小的金字塔层上,特征覆盖的感知图像区域会更大。
fastThresholdFAST阈值

◆ getDefaultName()

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

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

cv::Feature2D重新实现。

◆ getEdgeThreshold()

virtual int cv::ORB::getEdgeThreshold ( ) const
纯虚函数
Python
cv.ORB.getEdgeThreshold() -> retval

◆ getFastThreshold()

virtual int cv::ORB::getFastThreshold ( ) const
纯虚函数
Python
cv.ORB.getFastThreshold() -> retval

◆ getFirstLevel()

virtual int cv::ORB::getFirstLevel ( ) const
纯虚函数
Python
cv.ORB.getFirstLevel() -> retval

◆ getMaxFeatures()

virtual int cv::ORB::getMaxFeatures ( ) const
纯虚函数
Python
cv.ORB.getMaxFeatures() -> retval

◆ getNLevels()

virtual int cv::ORB::getNLevels ( ) const
纯虚函数
Python
cv.ORB.getNLevels() -> retval

◆ getPatchSize()

virtual int cv::ORB::getPatchSize ( ) const
纯虚函数
Python
cv.ORB.getPatchSize() -> retval

◆ getScaleFactor()

virtual double cv::ORB::getScaleFactor ( ) const
纯虚函数
Python
cv.ORB.getScaleFactor() -> retval

◆ getScoreType()

virtual ORB::ScoreType cv::ORB::getScoreType ( ) const
纯虚函数
Python
cv.ORB.getScoreType() -> retval

◆ getWTA_K()

virtual int cv::ORB::getWTA_K ( ) const
纯虚函数
Python
cv.ORB.getWTA_K() -> retval

◆ setEdgeThreshold()

virtual void cv::ORB::setEdgeThreshold ( int edgeThreshold)
纯虚函数
Python
cv.ORB.setEdgeThreshold(edgeThreshold) ->

◆ setFastThreshold()

virtual void cv::ORB::setFastThreshold ( int fastThreshold)
纯虚函数
Python
cv.ORB.setFastThreshold(fastThreshold) ->

◆ setFirstLevel()

virtual void cv::ORB::setFirstLevel ( int firstLevel)
纯虚函数
Python
cv.ORB.setFirstLevel(firstLevel) ->

◆ setMaxFeatures()

virtual void cv::ORB::setMaxFeatures ( int maxFeatures)
纯虚函数
Python
cv.ORB.setMaxFeatures(maxFeatures) ->

◆ setNLevels()

virtual void cv::ORB::setNLevels ( int nlevels)
纯虚函数
Python
cv.ORB.setNLevels(nlevels) ->

◆ setPatchSize()

virtual void cv::ORB::setPatchSize ( int patchSize)
纯虚函数
Python
cv.ORB.setPatchSize(patchSize) ->

◆ setScaleFactor()

virtual void cv::ORB::setScaleFactor ( double scaleFactor)
纯虚函数
Python
cv.ORB.setScaleFactor(scaleFactor) ->

◆ setScoreType()

virtual void cv::ORB::setScoreType ( ORB::ScoreType scoreType)
纯虚函数
Python
cv.ORB.setScoreType(scoreType) ->

◆ setWTA_K()

virtual void cv::ORB::setWTA_K ( int wta_k)
纯虚函数
Python
cv.ORB.setWTA_K(wta_k) ->

成员数据文档

◆ kBytes

const int cv::ORB::kBytes = 32
static

此类的文档是从以下文件生成的: