大体介绍
Sift算法简单来说就是用不同尺度(标准差)的高斯函数对图像进行平滑,然后比较平滑后图像的差别,差别大的像素就是特征明显的点。
Sift(Scale Invariant Feature Transform)是一个很好的图像匹配算法,同时能处理亮度、平移、旋转、尺度的变化,利用特征点来提取特征描述符,最后在特征描述符之间寻找匹配。
步骤
-
构建尺度空间,检测极值点,获得尺度不变性;—>高斯金字塔,高斯滤波,不同尺度 做检测,从而实现尺度不变性
-
特征点过滤并进行精确定位,剔除不稳定的特征点;
-
在特征点处提取特征描述符,为特征点分配方向值;—>旋转不变性
-
生成特征描述子,利用特征描述符寻找匹配点;
以特征点为中心取1616的邻域作为采样窗口,
将采样点与特征点的相对方向通过高斯加权后归入包含8个bin的方向直方图,
最后获得44*8的128维特征描述子。
-
计算变换参数。
当两幅图像的Sift特征向量生成以后,下一步就可以采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。
取图1的某个关键点,通过遍历找到图像2中的距离最近的两个关键点。
在这两个关键点中,如果次近距离除以最近距离小于某个阙值,则判定为一对匹配点。