SIFT的构成

SIFT简介

Scale Invariant Feature Transform,尺度不变特征变换匹配算法,是由David G. Lowe在1999年(《Object Recognition from Local Scale-Invariant Features》)提出的高效区域检测算法,在2004年(《Distinctive Image Features from Scale-Invariant Keypoints》)得以完善。

SIFT特征对旋转、尺度缩放、亮度变化等保持不变性,是非常稳定的局部特征,现在应用很广泛。而SIFT算法是将Blob检测,特征矢量生成,特征匹配搜索等步骤结合在一起优化。


SIFT在opencv中的使用


首先,实例化SIFT,然后初始化关键点容器,定义Mat类的关键点描述算子。

SIFT sift1, sift2;                                                   //实例化SIFT

vector<KeyPoint> key_points1, key_points2;                           //关键点容器
Mat descriptors1, descriptors2, mascara;
然后,就可以用重载的方式使用SIFT来对图像进行特征点提取。

sift1(img1, mascara, key_points1, descriptors1);
sift2(img2, mascara, key_points2, descriptors2);
SIFT的介绍:

SIFT::SIFT(int nfeatures=0, int nOctaveLayers=3, double contrastThreshold=0.04, double edgeThreshold=  
10, double sigma=1.6)  
nfeatures:特征点数目

nOctaveLayers:高斯金字塔的层数

contrastThreshoid:特征点提取的阈值,contrastThreshoid的值越大,特征点的数目越少。

edgeThreshold:边缘提取的阈值

sigma:金字塔第0层图像滤波系数,就是σ

重载操作符

void SIFT::operator()(InputArray img, InputArray mask, vector<KeyPoint>& keypoints, OutputArray  
descriptors, bool useProvidedKeypoints=false)

InputArray img:输入图像的矩阵

InputArray mask:图像检测区域

vector<Keypoint>&keypoints:特征向量矩阵

outputArray:输出图像

descriptors:特征点描述的输出向量

bool usePrividedKeypoints:是否进行特征点检测,ture 进行,false 不进行


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值