OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::xfeatures2d::SURF 类参考抽象类

用于从图像中提取加速鲁棒特征 (Speeded Up Robust Features) 的类 [20]更多…

#include <opencv2/xfeatures2d/nonfree.hpp>

cv::xfeatures2d::SURF 的协作图

公共成员函数

String getDefaultName () const CV_OVERRIDE
 
virtual bool getExtended () const =0
 
virtual double getHessianThreshold () const =0
 
virtual int getNOctaveLayers () const =0
 
virtual int getNOctaves () const =0
 
virtual bool getUpright () const =0
 
virtual void setExtended (bool extended)=0
 
virtual void setHessianThreshold (double hessianThreshold)=0
 
virtual void setNOctaveLayers (int nOctaveLayers)=0
 
virtual void setNOctaves (int nOctaves)=0
 
virtual void setUpright (bool upright)=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< SURFcreate (double hessianThreshold=100, int nOctaves=4, int nOctaveLayers=3, bool extended=false, bool upright=false)
 
- 继承自 cv::Algorithm 的静态公共成员函数
模板 <typename _Tp >
静态 Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
模板 <typename _Tp >
静态 Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
模板 <typename _Tp >
静态 Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承的成员

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

详细描述

用于从图像中提取加速鲁棒特征 (Speeded Up Robust Features) 的类 [20]

算法参数

  • 成员 int extended
    • 0 表示计算基本描述符(每个 64 个元素)
    • 1 表示计算扩展描述符(每个 128 个元素)
  • 成员 int upright
    • 0 表示检测器计算每个特征的方向。
    • 1 表示不计算方向(速度快得多)。例如,如果您匹配来自立体图像对的图像,或进行图像拼接,则匹配的特征可能具有非常相似的角度,您可以通过设置 upright=1 来加快特征提取速度。
  • 成员 double hessianThreshold 关键点检测器的阈值。只有 Hessian 值大于 hessianThreshold 的特征才会被检测器保留。因此,值越大,获得的关键点越少。根据图像对比度,一个良好的默认值可能是 300 到 500。
  • 成员 int nOctaves 检测器使用的 Gaussian 金字塔层数。默认设置为 4。如果您想要获得非常大的特征,请使用较大的值。如果您只需要小的特征,请减小它。
  • 成员 int nOctaveLayers Gaussian 金字塔每个层内的图像数量。默认设置为 2。
    注意
    • 使用 SURF 特征检测器的示例可以在 opencv_source_code/samples/cpp/generic_descriptor_match.cpp 中找到。
      • 另一个使用 SURF 特征检测器、提取器和匹配器的示例可以在 opencv_source_code/samples/cpp/matcher_simple.cpp 中找到。

成员函数文档

◆ create()

静态 Ptr< SURF > cv::xfeatures2d::SURF::create ( double hessianThreshold = 100,
int nOctaves = 4,
int nOctaveLayers = 3,
bool extended = false,
bool upright = false )
静态
Python
cv.xfeatures2d.SURF.create([, hessianThreshold[, nOctaves[, nOctaveLayers[, extended[, upright]]]]]) -> 返回值
cv.xfeatures2d.SURF_create([, hessianThreshold[, nOctaves[, nOctaveLayers[, extended[, upright]]]]]) -> 返回值
参数
hessianThresholdSURF 中使用的 Hessian 关键点检测器的阈值。
nOctaves关键点检测器将使用的金字塔层数。
nOctaveLayers每个层内的层数。
extended扩展描述符标志 (true - 使用扩展的 128 元素描述符;false - 使用 64 元素描述符)。
upright正向或旋转特征标志 (true - 不计算特征的方向;false - 计算方向)。

◆ getDefaultName()

String cv::xfeatures2d::SURF::getDefaultName ( ) const
虚函数
Python
cv.xfeatures2d.SURF.getDefaultName() -> 返回值

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

cv::Feature2D 重实现。

◆ getExtended()

virtual bool cv::xfeatures2d::SURF::getExtended ( ) const
纯虚函数
Python
cv.xfeatures2d.SURF.getExtended() -> 返回值

◆ getHessianThreshold()

virtual double cv::xfeatures2d::SURF::getHessianThreshold ( ) const
纯虚函数
Python
cv.xfeatures2d.SURF.getHessianThreshold() -> 返回值

◆ getNOctaveLayers()

virtual int cv::xfeatures2d::SURF::getNOctaveLayers ( ) const
纯虚函数
Python
cv.xfeatures2d.SURF.getNOctaveLayers() -> 返回值

◆ getNOctaves()

virtual int cv::xfeatures2d::SURF::getNOctaves ( ) const
纯虚函数
Python
cv.xfeatures2d.SURF.getNOctaves() -> 返回值

◆ getUpright()

virtual bool cv::xfeatures2d::SURF::getUpright ( ) const
纯虚函数
Python
cv.xfeatures2d.SURF.getUpright() -> 返回值

◆ setExtended()

virtual void cv::xfeatures2d::SURF::setExtended ( bool extended)
纯虚函数
Python
cv.xfeatures2d.SURF.setExtended(extended) ->

◆ setHessianThreshold()

virtual void cv::xfeatures2d::SURF::setHessianThreshold ( double hessianThreshold)
纯虚函数
Python
cv.xfeatures2d.SURF.setHessianThreshold(hessianThreshold) ->

◆ setNOctaveLayers()

virtual void cv::xfeatures2d::SURF::setNOctaveLayers ( int nOctaveLayers)
纯虚函数
Python
cv.xfeatures2d.SURF.setNOctaveLayers(nOctaveLayers) ->

◆ setNOctaves()

virtual void cv::xfeatures2d::SURF::setNOctaves ( int nOctaves)
纯虚函数
Python
cv.xfeatures2d.SURF.setNOctaves(nOctaves) ->

◆ setUpright()

virtual void cv::xfeatures2d::SURF::setUpright ( bool upright)
纯虚函数
Python
cv.xfeatures2d.SURF.setUpright(upright) ->

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