简要笔记
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