本文转自 cnblog:
环境:Windows xp+MATLAB 2010b
提及角点检测,就不能忘了最经典的Harris角点检测算法,下面就主要介绍下Harris算法及其matlab实现。
算法介绍:
1)通常情况下,可以将区域内的点分为3类,a.平坦的点,b.边缘上的点,c.角点。
2)若对于这3类点分别求取Ix,Iy,很显然,a类点的Ix和Iy都很小,b类点则是Ix和Iy有一个稍大一个稍小,而角点c则是两个值都很大。所以根据这种性质,可以区分出角点来。
【
求解Ix,Iy的过程说明:
利用单方向上(横轴&纵轴),点与周围点的差分来计算,有两种方法,
一是,取3x3邻域计算,通常取
Ix子模板: Iy子模板:
-1 0 1 -1 -1
-1
-1 0 1 0
0 0
-1 0 1 1
1 1
先对图像矩阵上每一点分别求取其Ix,Iy乘积后叠加的值,记为Ix(m,n),Iy(m,n).(其中,m,n分别为原矩阵的大小)
二是,直接只采用横轴和纵轴上的点计算差分。
】
% fx = [-1 0 1;-1 0 1