【CV】Harris角点检测

一、角点定义

·角点被定义为边缘的焦点(即,在该目标像素的领域中存在两个主要且不同的边缘方向)

·可以直观的概括下角点所具有的特征:

    >轮廓之间的交点;

    >对于同一场景,即使视角发生变化,通常具备稳定性质的特征;

    >该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化; 

·注意区分角点和兴趣点,与角点检测相冲突的是兴趣点:兴趣点是孤立点,包含:局部最大/最小强度点、线末端或曲线上的点。

往往需要进行进一步的处理来隔离真实角点(分离兴趣点)

二、Harris角点检测算法基本思想

角点检测算法主要可以分为三类:基于灰度图的角点检测、基于二值化图像的角点检测、基于轮廓图像的角点检测

算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。

用数学方法描述,当窗口发生[u,v]移动时,那么滑动前与滑动后对应的窗口中的像素点灰度变化描述如下:

Harris角点检测SIFTSURF Harris角点检测目的要求_角点检测

其中,W(x,y)代表窗口,I(x,y)代表图像,w(x,y)是窗口函数,代表权重:最简单情形就是窗口内的所有像素所对应的w权重系数均为1。但有时候,我们会将w(x,y)函数设定为以窗口中心为原点的二元正态分布。

三、Harris角点检测算法步骤

总结一下!实际使用角点检测算法共需要五步:

1.【梯度计算】计算图像

Harris角点检测SIFTSURF Harris角点检测目的要求_python_02

在X和Y两个方向的梯度

Harris角点检测SIFTSURF Harris角点检测目的要求_计算机视觉_03

  

2.计算图像两个方向梯度的乘积

3.使用高斯函数对

Harris角点检测SIFTSURF Harris角点检测目的要求_Harris角点检测SIFTSURF_04

   

Harris角点检测SIFTSURF Harris角点检测目的要求_opencv_05


Harris角点检测SIFTSURF Harris角点检测目的要求_python_06

进行高斯加权(取

Harris角点检测SIFTSURF Harris角点检测目的要求_Harris角点检测SIFTSURF_07

),生成矩阵M的元素A,B,C

4.【响应值计算】计算每个像素的Harris响应值R,并将小于某一阈值t的R置于0

5.【非最大值抑制】在

Harris角点检测SIFTSURF Harris角点检测目的要求_Harris角点检测SIFTSURF_08


Harris角点检测SIFTSURF Harris角点检测目的要求_python_09

的邻域内进行非最大值抑制,局部最大点即为图像中的角点