友情提醒:建议横屏查看
nkps
表示保留的特征点数目
将保留的特征点统一成当前金字塔层的坐标,即加上minBorderX,Y
这个函数实际只起到了遍历所有特征点的作用,在每个特征点都调用IC_Angle
函数来计算特征点方向
基本原理就是灰度质心法:每个特征点以几何中心P为圆心,画圆,计算出灰度质心Q,则P -> Q就是该特征点的方向.后面比较特征点时,先把方向统一,然后比较特征点描述子,这样特征点就不会因为旋转而不能匹配了
目的:使特征点具有旋转不变性
原理:即使图像旋转,图像几何中心与灰度质心的连线也是随之改变的,可以通过这个方向恢复原始图像
u_max
是指定一行后的u轴边界坐标
定义的变量center
表示特征点坐标的指针
不需要求m01
,因为当前遍历的是u轴,v坐标为0
step
是一行的字节总数,后面遍历的时候增量乘step
表示像素增量
v从1开始,到半径的长度
在每个v下,遍历u,前面定义过u_max[v]
,表示给定一个v坐标,求出最大u坐标,这里赋值给了d
遍历d
相当于遍历了给定v之后的当前行
由两个公式m_10
m_01
需要当前u或v值乘以当前像素灰度值
有了这两个变量,下面的程序就很好懂了
fastAtan2
为计算特征点方向的函数