用于使用 D. Lowe [173] 提出的尺度不变特征变换 (SIFT) 算法提取关键点并计算描述符的类。 更多...
#include <opencv2/features2d.hpp>
|
virtual double | getContrastThreshold () const =0 |
|
virtual String | getDefaultName () const CV_OVERRIDE |
|
virtual double | getEdgeThreshold () const =0 |
|
virtual int | getNFeatures () const =0 |
|
virtual int | getNOctaveLayers () const =0 |
|
virtual double | getSigma () const =0 |
|
virtual void | setContrastThreshold (double contrastThreshold)=0 |
|
virtual void | setEdgeThreshold (double edgeThreshold)=0 |
|
virtual void | setNFeatures (int maxFeatures)=0 |
|
virtual void | setNOctaveLayers (int nOctaveLayers)=0 |
|
virtual void | setSigma (double sigma)=0 |
|
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 |
|
| 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< SIFT > | create (int nfeatures, int nOctaveLayers, double contrastThreshold, double edgeThreshold, double sigma, int descriptorType, bool enable_precise_upscale=false) |
| 创建具有指定 descriptorType 的 SIFT。
|
|
static Ptr< SIFT > | create (int nfeatures=0, int nOctaveLayers=3, double contrastThreshold=0.04, double edgeThreshold=10, double sigma=1.6, bool enable_precise_upscale=false) |
|
template<typename _Tp > |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
| 从文件中加载算法。
|
|
template<typename _Tp > |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
| 从字符串中加载算法。
|
|
template<typename _Tp > |
static Ptr< _Tp > | read (const FileNode &fn) |
| 从文件节点读取算法。
|
|
用于使用 D. Lowe [173] 提出的尺度不变特征变换 (SIFT) 算法提取关键点并计算描述符的类。
◆ create() [1/2]
static Ptr< SIFT > cv::SIFT::create |
( |
int |
nfeatures, |
|
|
int |
nOctaveLayers, |
|
|
double |
contrastThreshold, |
|
|
double |
edgeThreshold, |
|
|
double |
sigma, |
|
|
int |
descriptorType, |
|
|
bool |
enable_precise_upscale = false |
|
) |
| |
|
static |
Python |
---|
| cv.SIFT.create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT.create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
| cv.SIFT_create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT_create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
创建具有指定 descriptorType 的 SIFT。
- 参数
-
nfeatures | 要保留的最佳特征数量。这些特征按其分数(在 SIFT 算法中,分数被测量为局部对比度)进行排名。 |
nOctaveLayers | 每个八度中的层数。3 是 D. Lowe 论文中使用的值。八度数根据图像分辨率自动计算。 |
contrastThreshold | 用于过滤掉半均匀(低对比度)区域中的弱特征的对比度阈值。阈值越大,检测器产生的特征越少。 |
- 注意
- 在应用过滤时,对比度阈值将除以 nOctaveLayers。当 nOctaveLayers 设置为默认值时,如果您想要使用 D. Lowe 论文中使用的值 0.03,请将此参数设置为 0.09。
- 参数
-
edgeThreshold | 用于过滤掉边缘状特征的阈值。请注意,它的含义不同于 contrastThreshold,即 edgeThreshold 越大,过滤掉的特征越少(保留的特征越多)。 |
sigma | 在八度 #0 上应用于输入图像的高斯函数的 sigma。如果您的图像是由弱相机和软镜头拍摄的,您可能需要减少这个数字。 |
descriptorType | 描述符的类型。仅支持 CV_32F 和 CV_8U。 |
enable_precise_upscale | 是否在尺度金字塔中启用精确上采样,该金字塔将索引 \(\texttt{x}\) 映射到 \(\texttt{2x}\)。这可以防止定位偏差。默认情况下禁用此选项。 |
◆ create() [2/2]
static Ptr< SIFT > cv::SIFT::create |
( |
int |
nfeatures = 0 , |
|
|
int |
nOctaveLayers = 3 , |
|
|
double |
contrastThreshold = 0.04 , |
|
|
double |
edgeThreshold = 10 , |
|
|
double |
sigma = 1.6 , |
|
|
bool |
enable_precise_upscale = false |
|
) |
| |
|
static |
Python |
---|
| cv.SIFT.create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT.create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
| cv.SIFT_create( | [, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma[, enable_precise_upscale]]]]]] | ) -> | retval |
| cv.SIFT_create( | nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma, descriptorType[, enable_precise_upscale] | ) -> | retval |
- 参数
-
nfeatures | 要保留的最佳特征数量。这些特征按其分数(在 SIFT 算法中,分数被测量为局部对比度)进行排名。 |
nOctaveLayers | 每个八度中的层数。3 是 D. Lowe 论文中使用的值。八度数根据图像分辨率自动计算。 |
contrastThreshold | 用于过滤掉半均匀(低对比度)区域中的弱特征的对比度阈值。阈值越大,检测器产生的特征越少。 |
- 注意
- 在应用过滤时,对比度阈值将除以 nOctaveLayers。当 nOctaveLayers 设置为默认值时,如果您想要使用 D. Lowe 论文中使用的值 0.03,请将此参数设置为 0.09。
- 参数
-
edgeThreshold | 用于过滤掉边缘状特征的阈值。请注意,它的含义不同于 contrastThreshold,即 edgeThreshold 越大,过滤掉的特征越少(保留的特征越多)。 |
sigma | 在八度 #0 上应用于输入图像的高斯函数的 sigma。如果您的图像是由弱相机和软镜头拍摄的,您可能需要减少这个数字。 |
enable_precise_upscale | 是否在尺度金字塔中启用精确上采样,该金字塔将索引 \(\texttt{x}\) 映射到 \(\texttt{2x}\)。这可以防止定位偏差。默认情况下禁用此选项。 |
◆ getContrastThreshold()
virtual double cv::SIFT::getContrastThreshold |
( |
| ) |
const |
|
纯虚 |
Python |
---|
| cv.SIFT.getContrastThreshold( | | ) -> | retval |
<
virtual String cv::SIFT::getDefaultName |
( |
| ) |
const |
|
virtual |
Python |
---|
| cv.SIFT.getDefaultName( | | ) -> | retval |
返回算法字符串标识符。当对象保存到文件或字符串时,此字符串用作顶层 xml/yml 节点标签。
从 cv::Feature2D 重新实现。
◆ getEdgeThreshold()
virtual double cv::SIFT::getEdgeThreshold |
( |
| ) |
const |
|
纯虚 |
Python |
---|
| cv.SIFT.getEdgeThreshold( | | ) -> | retval |
◆ getNFeatures()
virtual int cv::SIFT::getNFeatures |
( |
| ) |
const |
|
纯虚 |
Python |
---|
| cv.SIFT.getNFeatures( | | ) -> | retval |
◆ getNOctaveLayers()
virtual int cv::SIFT::getNOctaveLayers |
( |
| ) |
const |
|
纯虚 |
Python |
---|
| cv.SIFT.getNOctaveLayers( | | ) -> | retval |
◆ getSigma()
virtual double cv::SIFT::getSigma |
( |
| ) |
const |
|
纯虚 |
Python |
---|
| cv.SIFT.getSigma( | | ) -> | retval |
◆ setContrastThreshold()
virtual void cv::SIFT::setContrastThreshold |
( |
double |
contrastThreshold | ) |
|
|
纯虚 |
Python |
---|
| cv.SIFT.setContrastThreshold( | contrastThreshold | ) -> | 无 |
◆ setEdgeThreshold()
virtual void cv::SIFT::setEdgeThreshold |
( |
double |
edgeThreshold | ) |
|
|
纯虚 |
Python |
---|
| cv.SIFT.setEdgeThreshold( | edgeThreshold | ) -> | 无 |
◆ setNFeatures()
virtual void cv::SIFT::setNFeatures |
( |
int |
maxFeatures | ) |
|
|
纯虚 |
Python |
---|
| cv.SIFT.setNFeatures( | maxFeatures | ) -> | 无 |
◆ setNOctaveLayers()
virtual void cv::SIFT::setNOctaveLayers |
( |
int |
nOctaveLayers | ) |
|
|
纯虚 |
Python |
---|
| cv.SIFT.setNOctaveLayers( | nOctaveLayers | ) -> | 无 |
◆ setSigma()
virtual void cv::SIFT::setSigma |
( |
double |
sigma | ) |
|
|
纯虚 |
Python |
---|
| cv.SIFT.setSigma( | sigma | ) -> | 无 |
此类的文档是从以下文件生成的