Harris Corner 角点检测

     角点是同时在多个方向上变化的点,相对于边缘,更加具有独特性。角点检测普遍应用在很多场合,如指纹检测中的指纹特征提取,稀疏光流计算。

    Harris corner角点的基本思想是通过一个小窗口来观察,因此很容易识别出角点来。因为在这些方向上,想任意方向移动窗口都会在窗口的亮度分布上给出很大的变化。图像中的点可以分为三类:“flat”,“edge”,“corner”,Harris 算法就是要提取出“corner”。

    下面使用2D的灰度图像来给出Harris 角点检测的数学推导,图像记为I,考虑(u,v) 范围内的图像块,以及将其平移(x,y)后的图像块,这两块加权后的SSD 记为S:

 

 

将I(u+x,v+y)做近似泰勒展开得

代入上式得

其中Ix和Iy分别为I在x和y方向上的偏导,上式又可以写为:

其中A为

其中<>表示在(u,v)块内取平均,一般采用Guass窗。

对角点来说S对各个方向的平移都有很大的变化,因此,通过分析A 的特征值可以判断某个点是否是角点:

1. 如果且,则在(x,y)像素上没有感兴趣的特征。
2. 如果且是比较大的正值,则为边缘点
3. 如果和均是比较大的正值,则为角点

在实际应用中,直接求解特征值的计算复杂度是比较高的,因此Harris 等人提出了用下面的Mc 函数来进行度量,其中κ 是可调的灵敏度参数,一般采用经验值0.04-0.15:

因此算法并不需要直接计算特征根,而是将问题转化为行列式值和迹的求解。

实验结果为

 Harris Corner 角点检测_第1张图片

你可能感兴趣的:(算法)