Harris角点检测算法的实现及应用效果分析

2011-12-28 09:05叶增炉
淮南师范学院学报 2011年5期
关键词:角点铜陵高斯

叶增炉

(铜陵学院 数学与计算机科学系,安徽 铜陵 244000)

Harris角点检测算法的实现及应用效果分析

叶增炉

(铜陵学院 数学与计算机科学系,安徽 铜陵 244000)

Harris角点检测算法是一种非常有效的图像角点提取算法,提取的角点稳定可靠、均匀而且合理。用C#语言实现了Harris角点检测算法实现程序,并结合图例分析了该算法各种参数的设置。

角点检测;harris角点检测;C#语言

角点特征具有计算量少,匹配简单以及旋转、平移、放缩不变的性质,因此角点在图像配准与匹配、目标识别、运动分析、目标跟踪等应用领域都起着非常重要的作用。Harris角点检测算法是Harris和Stephens[1]在1988年提出的角点特征提取算子。这种算子受信号处理中自相关函数的启发,给出与自相关函数相联系的矩阵M。M阵的特征值是自相关函数的一阶曲率,如果两个曲率值都高,那么就认为该点是角点特征。

Harris算子是一种有效的点特征提取算子,其优点总结起来有几个方面[2]:(1)计算简单:Haris算子中只用到灰度的一阶差分以及滤波,操作简单;(2)提取的点特征均匀而且合理,Haris算子对图像中的每个点都计算其兴趣值,然后在邻域中选择最优点。Harris角点提取方法是目前效果最好的,它不受摄像机姿态及光照的影响[3]。

1 harris角点检测原理

Harris角点检测算法基本原理描述如下:建立下面矩阵M:

其中 I(x,y)是亮度值,这里用灰度表示;Ix为图像I的x方向的梯度;Iy为y方向的梯度。通过分析上面矩阵可以看出如果在一点上矩阵M的两个特征值很大,则在该点向任意方向上的一个很小的移动都会引起灰度值的较大变化。这也就说明该点是一个角点。

在矩阵M基础上,角点响应函数CRF定义为:

其中det为矩阵M的行列式;trace为矩阵M的迹(矩阵对角线元素的和);k为常数,一般取0.04[1]。CRF的局部极大值所在的点即为角点。

该算法易受噪声的影响。为了减小噪声的干扰,在对图像进行偏导计算以后用高斯滤波器对数据进行平滑。于是(1)式矩阵M重新定义为如下(3)式:

按此方法求出的角点数量很多。为了减少匹配计算量,可以对想要获得的角点数量进行限制。限制方法是确定一个阈值,仅仅选取CRF值大于这个阈值的点作为角点。这个阈值根据需要的检点数量来确定。

2 Harris角点检测算法的实现

harris角点检测算法的具体编程步骤:

(1)对灰度图像I的每一点,计算其在x和y方向上的一阶导数,以及二者的乘积。具体操作时,采取类似卷积的方式,分别使用(5)式中的模板wx(x方向)和模板wy(y方向)在图像上移动,并在每个位置计算对应中心像素的梯度值,得到x方向和y方向的两幅梯度图像。计算每个像素位置对应的x方向和y方向梯度的乘积,得到1幅新的图像。3幅图像中的每个像素对应的属性值分别代表Ix,Iy和IxIy。

(2)对步骤1所得到的3幅图像分别进行高斯滤波(标准差为σ)。即采用高斯模板分别与这3幅图像进行卷积,得到(3)式矩阵M。

(3)计算原图像上对应每个像素的角点响应函数值。角点对应于CRF的局部极大值点。在这里使用了一种改进的计算cim(R)的方法。该方法由Nobel提出[4],即:

(4)设置CRF的门限,对提取的角点个数进行限制。局部极值点的数目往往很多,通过设置CRF的门限,根据实际需要提取一定数量的最优点作为最后的结果。在矩阵cim中,同时满足“cim大于阈值thresh和cim是某邻域内的局部极大值”这两个条件的点被认为是角点。

3 软件的实现及应用效果分析

在VS2005中建立Windows组件解决方案,在软件开发中,充分考虑到影响Harris角点检测算法的各种参数,程序运行界面如图1所示。图2显示不同阈值角点提取效果图,可以看出角点提取的效果依赖于阈值的设定,提高阈值,则提取的角点数目变少;降低阈值,则提取的角点数目变多。

图1 程序运行界面图

图2 不同阈值角点提取效果图 (a)阈值4500(b)阈值2000

4 结论

(1)Haris算子中只用到灰度的一阶差分以及滤波,操作简单。

(2)Harris角点检测,可以通过设置高斯窗口宽度、高斯函数方差、非极大抑制领域和阀值,来改变提取点角点的范围和数目。阈值大会丢失角点信息,阈值小又会提取出伪角点。另外,求局部极大值的邻域大小也将会影响提取角点的数目和容忍度。

(3)Harris角点检测虽然采用了可调的高斯平滑窗口,但实际运用中高斯窗口的大小不易控制。若选用较小的高斯平滑窗口,则会因为边缘细节的影响导致众多伪角点的出现;若用较大的高斯平滑窗口,则会因为卷积的圆角效应使得角点的位置产生较大的偏移,而且增加了算法的计算量。

[1]C.G.Harris,M.J.Stephens.A combined corner and edge detector[A].In:Proceedings Fourth Alvey Vision Conference[C].Manchester,U.K.,1988:147-151

[2]刘玉斌.一种分阶段的高精度亚像素特征点提取方法[J].南华大学学报(自然科学版),2006,20(2):54-57

[3]Schmid C,Mohr R,Bauckhage C.Evaluation of Interest Point Detectors[J].International Journal of Computer Vision, 2000,37(2):151-172

[4]J.A.Noble.Finding corners[J].Image and Vision Computing,1988,6(2):121-128

Implementation of Harris corner detection algorithm and analysis of its applied results

YE Zeng-lu

Harris corner detection algorithm is a very effective image corner extraction algorithm,extraction of the corner steady, reliable, uniform and reasonable.In this paper, C#language to implement the Harris corner detection algorithm program,And analysis of various parameters of the algorithm set.

corner detection;Harris corner detection;C#language

TP391 < class="emphasis_bold">[文献标识码]A

A

1009-9530(2011)05-0025-02

2011-06-23

铜陵学院自然科学研究项目(2007tlxykj001);高校省级自然科学研究项目(KJ2009B105Z2009)

叶增炉(1972-),男,安徽太湖人,铜陵学院数学与计算机科学系讲师,硕士研究生。

猜你喜欢
角点铜陵高斯
亲亲的鸟
数学王子高斯
天才数学家——高斯
其实冬天不可怕
基于FAST角点检测算法上对Y型与X型角点的检测
基于边缘的角点分类和描述算法
基于圆环模板的改进Harris角点检测算法
有限域上高斯正规基的一个注记