人眼对角点的识别通常是通过一个局部小区域或小窗口完成的,如果在各个方向山,移动这个特定的小窗口,窗口内图像的灰度发生了比较大的变化,那么,就可以认为我们在窗口内遇到了角点;如果在这个特定窗口在各个方向上移动时,窗口内图像的灰度没有发生变化,那么,窗口内就不存在角点;如果窗口在某一个(些)方向移动时,窗口内的图像灰度发生比较大的变化,但是在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段。
下面不再过多介绍Harris角点的推导过程,直接给出相应的结论。
Harris图像角点检测算法大致可以归纳成如下的形式:
(1.计算图像I(x,y)在X和Y两个方向的梯度Ix,Iy。
(2.计算图像两个方向上梯度的乘积。
(3.使用高斯函数对上面的三个乘积进行加权操作(σ=1),生成矩阵M的元素A、B和C。
其中,w指的是高斯核函数。
(4.计算每个像元的Harris相应值R,并对小于某一阈值t的R置零
其中
(5.在3x3或5x5的邻域内进行非最大值抑制,局部最大值点就是图像中的角点。
在使用Harris角点进行角点检测时,需要设置参数α,而α的大小将直接影响角点响应值R,进而影响角点提取的数量
对于α对角点检测的影响,有以下的结论:
增大α值,将减小角点响应值R,降低角点检测的灵敏性,减少被检测角点的数量;
减小α值,将增大角点响应值R,增加角点检测的灵活性,增加被检测角点的数量。