SIFT实现步骤,以及算法程序

来源:互联网 发布:淘宝腔调馆 编辑:程序博客网 时间:2024/06/15 03:57

简要笔记


1、创建高斯金字塔第-1组

1.1、将源图片转成灰度图

1.2、进行上采样

1.3、求该层σ(sigma)

1.4、进行高斯模糊


计算金字塔层数(根据图像长、宽中最小的那个)


2、创建高斯金字塔

2.1、高斯模糊卷积

2.2、降采样


3、求高斯差分金字塔(用DoG)

两个高斯金字塔层相减生成一个差分金字塔。G(x, y, σ)已由上面算出

G(x, y, σ1)- G(x, y, σ2)


4、极值点检测

4.1、排除阈值小的点

4.2、判断是否是极值

4.3、修正极值点,删除不稳定的点


5、计算尺度,图像特征缩放


6、关键点方向分配

6.1、计算梯度直方图

6.2、对直方图做两次高斯平滑

6.3、求直方图中的主方向

6.4、使求出的主方向更加精确


7、关键点描述

7.1、确定描述子所需的邻域区域

7.2、(依据6求出的方向)旋转坐标轴,使具有旋转不变性

7.3、将邻域内采样点分配到旋转后的对应子区域,确认种子点

7.4、计算种子点的8个方向的梯度信息

7.5、将8个方向的梯度变为特征向量

7.6、归一化消除光照影响

7.7、描述子门限,再次归一化


C++实现代码参照:http://blog.csdn.net/maweifei/article/details/58227605#

c实现代码(未验证):http://biancheng.dnbcw.net/c/329596.html

具体原理讲解:http://blog.csdn.net/sinat_28537111/article/details/55212261?fps=1&locationNum=3



原创粉丝点击