Harris角点检测

Harris角点检测

1角点特点

角点:简单理解就是在两个明显不同方向上梯度有明显变化的点,就是在水平、竖直两个方向上变化均较大的点,即Ix、Iy都较大。

边缘:若仅仅在某一个方向上梯度明显变化,即仅在水平、或者仅在竖直方向有较大的变化量,即Ix和Iy只有其一较大 则该点为边界上的点,

平坦地区:若任何方向上梯度都没有明显变化,即在水平、竖直方向的变化量均较小,即Ix、Iy都较小,则该点在光滑区域的内部。

2 角点检测启发
现在我们从零来思考角点检测问题,我们可以想到用窗口对图像进行分割:
1)若该窗口在光滑连续区域中,则在较小的范围内,无论按照哪个方向移动窗口,窗口内对应位置的像素灰度值变化较小;
2)若窗口沿着场景边界方向,则窗口内的像素灰度值变化较小,若垂直于边界方向移动,则窗口内对应位置的像素灰度值变化较大;
3)若该点为角点或者孤立点,则无论窗口沿哪个方向,窗口内对应位置的像素灰度值变化均较大。

3 Harris角点检测算法原理和步骤

1)Harris角点检测算法基本步骤:

1. Harris角点检测算法,该算法的基本原理是取以目标像素点为中心的一个小窗口,计算窗口沿任何方向移动后的灰度变化,并用解析形式表达。设以像素点(x,y)为中心的小窗口在X方向上移动u,y方向上移动v,Harris给出了灰度变化度量的解析表达式:

其中,为窗口内的灰度变化度量;为窗口函数,一般定义为

I为图像灰度函数,略去无穷小项有:


    表示限定某一个窗口内的像素点为1其余为0,其本质就是各个方向滑动窗口来求取其对应位置灰度值的差异。这里(x,y)用来表示方向向量,例如(1.0),(1,1),(0,1)等表示水平方向,45°方向和竖直方向,用来表示窗口的移动(shift).这样做的缺点较多,例如方向(x,y)的选择,很容易造成各个方向不同的能量惩罚,这里称为'anisotropic'; 另外更重要的是其对边界太敏感,容易误检测。      

将其化为二次型有:




其中,R为旋转因子,对角化处理后并不改变以u,v为坐标参数的空间曲面的形状,其特征值反应了两个主轴方向的图像表面曲率。

(1)当两个特征值均较小时,表明目标点附近区域为“平坦区域”;

(2)特征值一大一小时,表明特征点位于“边缘”上;

(3)当两个特征值均比较大时,沿任何方向的移动均将导致灰度的剧烈变化,为角点。

Harris的角点响应函数(CRF)表达式由此而得到:


其中:det(M)表示矩阵M的行列式,det(M)=λ1*λ2 ;trace(M)表示矩阵迹,trace(M)=λ1+λ2; k=0.04~0.06;当目标像素点的CRF值大于给定的阈值时,该像素点即为角点。

响应函数公式推导如下:

总的来说,对于边界情况,理想的情况是,中一个为0,另外一个很大,当然事实上,由于噪声,通常是一个很大,另外一个相比较而言会足够小。对于光滑连续区域,则 都很小,仅当 和 都很大时候,命中角点区域。
此时我们希望有关于E的新能量方程,使在角点处的E较大,而在边界处和光滑处E较小,其中ηi为权值系数,且η2>η1即意味着对边界的惩罚力度较大:


而所有需要计算的特征值用A与B进行相应的计算即可,这个很省事。
这里有个地方需要说明,根据A,B与C的定义可知,A*B-C*C=0

这样一来似乎没有计算Det(M)的必要,然而我们在实际操作过程中,由于噪声的存在,常常用Gaussian对窗口 进行平滑,此时计算中Det(M)不为0.

即:2 strong eigenvalues——interest point,1 strong eigenvalues——contour/edge

0 eigenvalues     ——uniform region




2 编程实现

基本步骤:






参考文献
[1].HARRIS, C. ; STEPHENS, M.: A Combined Corner and Edge Detector. In:Proceedings of the 4th Alvey Vision Conference, 1988, S. 147—151
[2].MORAVEC, H, OBSTACLE AVOIDANCE AND NAVIGATION IN THE REAL WORLD BY A SEEINGROBOT ROVER, TECH REPORT CMU-RI-TR-3, CARNEGIE-MELLON

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值