Sift

函数功能

Sift类构造函数,作为图像尺度不变特征转换的实现类,主要开放特征点提取及计算接口。目前仅支持Atlas 200I A2 加速模块(20 TOPS,12GB)。

函数原型

1
explicit Sift::Sift(int nFeatures = 0, int nOctaveLayers = 3, double contrastThreshold = 0.04, double edgeThreshold = 10, double sigma = 1.6, int descriptorType = CV_32F);// 构造失败时,会抛出std::runtime_error异常

参数说明

参数名

输入/输出

说明

nFeatures

输入

提取特征点的排位,即对提取特征点排序,返回最佳的前“nFeatures”位(包含并列情况)。默认值为0,表示提取全部特征点。特征点识别数量需以实际返回结果为准。

nOctaveLayers

输入

尺度空间每组图像中的中间层数。默认值为3,目前仅支持默认值,如配置其他参数构造将会失败并抛出std::runtime_error异常。

  • nOctaveLayers + 3为高斯金字塔每组图像中所包含的层数。
  • nOctaveLayers + 2为差分金字塔每组图像中所包含的层数。

contrastThreshold

输入

特征点过滤阈值。默认值为0.04,取值范围为[0.0, 20.0]。

edgeThreshold

输入

边缘效应过滤阈值。默认值为10, 取值范围为[0.0, 1000.0]。

sigma

输入

初始模糊尺度,高斯金字塔第0层图像的高斯滤波系数。默认值为1.6,目前仅支持默认值,如配置其他参数构造将会失败并抛出std::runtime_error异常。

descriptorType

输入

特征描述符的数据类型。默认值为CV_32F,目前支持以下数据类型。

  • CV_8U
  • CV_32F