理论知识:
图像中的角点意味着在这块区域中沿着任意方向移动,这块区域的像素值都会发生比较大的改变。
数学推导:
在图像中取一小块,构造这样一个判断函数
u,v指得是这一块区域作的位移,w(x,y)指窗口函数,在这块区域取1,不在取0。
从这个式子可以看出,在平坦的区域,第二项 I(x+u,y+v)-I(x,y) 几乎等于0,对于变化较大的区域这项的值会比较大。所以我们希望检测出变化大的区域,这里就可能存在角点。
下一步将 I(x+u,y+v) 作二元泰勒展开
取到1阶
所以E(u,v)可以被简化为:
其中
w(x,y)简单情况下可以取1。
三种不同图形各个点的分布情况:
平坦区域x,y方向变化率都比较小。
边缘处,x,y方向变换率其中一个很大。
角点处,x,y变化率都比较大。
可以用M的特征值来表征这种现象
如何具体计算某一点是否存在角点?
k是经验选项一般取(0.04-0.06)
- R很大对应角点
- R是负数绝对值很大对应边缘
- R绝对值较小对应平坦区域
例子:
算法流程: