Harris角点检测

1、什么是Harris角点

  在图像中,可以认为角点是物体轮廓线的连接点,是图像中重要的特征点。角点数目远小于像素点,通过检测角点可较准确地识别物体并减少计算量。角点检测在目标识别、目标跟踪、图像匹配等方面具有重要作用。

如下图,红色圆圈标注的点可看做角点。

 

2、如何检测Harris角点

可将图像分为三个部分:

  • 平坦区域:在所有方向上灰度值几乎不发生改变
  • 边缘:沿着边缘方向不发生改变
  • 角点:在所有方向上灰度值几乎都发生较大改变

检测方法:取某个像素的一个邻域窗口,当这个窗口向各个方向移动时,若像素灰度值变化都比较大则判定为角点。

E(u,v)表示窗口内平均像素灰度值的变化 ,

w(x,y)表示窗口内(x,y)处的权重,u、v表示水平、竖直方向的偏移。

 

对I(x+u,y+v)进行泰勒级数展开并取一阶近似,

     其中IX、Iy是I对x、y的偏导。

所以

 

角点满足条件:无论u,v怎样取值,E(u,v)的变化都是比较大的。 

 可根据M的特征值来判断角点,

 

当λ1、λ2近似相等且都比较大时,可看做角点;

当λ1、λ2近似相等且都比较小时,可看做平坦区域;

当λ1、λ2一个非常大一个非常小时,可看做边缘区域;

由此定义角点响应函数R=det(M)-k(traceM)2,其中det(M)=λ1λ2,traceM=λ12.

  • R<0:边缘区域
  • R>0:角点
  • |R|非常小:平坦区域

 

检测结果:

 

posted @ 2019-02-22 14:54  小新新的蜡笔  阅读(451)  评论(0编辑  收藏  举报