欢迎来到学术参考网

结合Butterworth滤波和Sobel算子的图像边缘检测

发布时间:2015-07-04 09:22

摘 要 针对sobel算子检测边缘定位不准的问题,提出结合butterworth高通滤波器和sobel算子边缘检测的方法,有效地解决这一的问题。在vc++环境下编程实现该方法,实验结果验证了所提方法的有效性。

关键词 边缘检测;butterworth滤波器;sobel算子


1 引言

图像边缘是一种重要的视觉信息,图像边缘检测是图像处理、图像分析、模式识别、计算机视觉以及人类视觉的基本步骤。其结果的正确性和可靠性将直接影响到机器视觉系统对客观世界的理解。 实现边缘检测有很多不同的方法,也一直是图像处理中的研究热点,人们期望找到一种抗噪强、定位准、不漏检、不误检的检测算法。经典的算法[1-2]中主要用梯度算子,最简单的梯度算子是roberts算子,比较常用的有prewitt算子和sobel算子,其中sobel算子效果较好,但是经典sobel算子存在边缘定位不准的缺点,文[3-4]对其作了描述和改进,本文提出另一种改进方法。

2 sobel算子特点分析

sobel边缘检测算子使用两个如下有向算子(一个水平的,一个是垂直的),每一个逼近一个偏导数: dxf(x,y)={f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1)}-{f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)} dyf(x,y)={f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)}-{f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)} 如果用sobel算子检测图像m的边缘的话,可以先分别用水平算子和垂直算子对图像进行卷积,得到的是两个矩阵,在不考虑边界的情形下也是和原图像同样大小的图像m1,m2,他们分别表示图像m中相同位置处的两个偏导数。然后把m1,m2对应位置的两个数平方后相加得到一个新的矩阵g,g表示m中各个像素的灰度的梯度值(一个逼近)。这样就可以通过阀值处理得到边缘图像。 sobel算子利用像素的左、右、上、下邻域的灰度加权算法,根据在边缘点处达到极值这一原理进行边缘检测。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘方向信息。但是,在抗噪声好的同时也存在检测到伪边缘,定位精度不高的缺点。如果在sobel算子处理图像之前对图片进行预处理,突出图片的边缘线条部分,那么再经sobel算子运算后的边缘线条将会精确得多,而sobel算子的噪声抑制作用也得到保存。所以有必要先对图像作增强的预处理。

3 butterworth滤波预处理

图像中的边沿或线条与图像频谱中的高频分量相对应,因此,可以采用高通滤波的方法,使低频分量得到抑制,从而达到增强高频分量,使图像的边沿或线条变得清晰,完成图像的预处理。 常用的高通滤波器有:理想高通滤波器、butterworth高通滤波器、指数形高通滤波器。理想高通滤波器的滤波效果最好,但其位于d0的阶跃会对图像产生大量的噪声点。指数高通滤波器相对理想高通滤波器来说要好一些,但其截止部分仍过于陡峭,这点仅经高通滤波后难以察觉,但在之后的sobel算子处理后会产生大量噪声点,而butterworth滤波器则相对较为平滑,且可由阶数来控制曲线形状。 butterworth滤波器的转移函数为:

其中d0为截止频率。阶数n控制曲线的形状,即决定了函数的衰减率。由于在高低频率间的过渡比较平滑,所以用butterworth滤波器得到的输出图其振铃效应不明显。为此,预处理程序采用butterworth高通滤波器比较适合。

4 实验结果及讨论

下面就用本文提出的方法,先对图像进行butterworth高通滤波器预处理,再对预处理后的图像采用sobel算子进行边缘检测。我们在windows 2000下,用visual c++ 6.0编程环境实现了该方法,对常用的“lena图像”分别用sobel算子和本文提出的方法进行边缘检测,其结果显示如图1:

(a)lena原图 (b) sobel算子检测结果 (c)本文方法检测结果 图1 图像边缘检测结果图 从图1(b)可以看出,soble算子对噪声有抑制作用,因此不会出现很多孤立的边缘像素点;但sobel算子对边缘的定位不是很准确,图像的边界宽度往往不止一个像素。从图1(c)可以看出,经butterworth高通滤波器处理后再对图像采用sobel算子得到的边缘图,对边缘的定位较准,边界的线条并不是很粗,且对噪声也不是那么敏感。 从以上的结果中我们可以得出: (1)图像边缘检测不能仅基于当前点像素的突变,还应根据其邻域的像素及其梯度来判断,否则将会产生误判。 (2)在一些对噪声敏感定位不准的算子处理之前对图像进行预处理可在一定程度上改进善甚至准确定位边缘。 (3)在对图像进行预处理时,必须注意到滤波函数的图形。过低的截止频率会影响滤波的性能,而过高的截止频率会导致一些边缘丢失。 (4)在图像预处理时,必须选定合适的参数。过于陡峭的滤波函数会给图像带来很多的噪声,严重干扰之后的边缘检测;而过于平滑的函数则对低频分量的滤波有限,达不到滤波目的,甚至会对边缘的高频部分造成影响。

5 结论

针对sobel算子检测边缘时边界宽度多于一个像素,边缘定位不准的问题,提出了先用butterworth高通滤波器对图像进行预处理,对预处理后的图像再进行sobel算子边缘检测可以解决边缘定位不准的问题。实验结果验证了所提方法的有效性。 参考文献 [1] 章毓晋. 图象工程[m]. 北京:清华大学出版社, 1999. [2] health a., sarkar s., sanocki t., et al.. comparison of edge detectors: a methodology and initial study. computer vision and image understanding[j]. 1998, 69(1): 38-54. [3] 刑军. 基于sobel算子数字图像的边缘检测. 微机发展[j]. 2005, 15(9):48-52. [4] 刘彩. 一种改进的sobel图像边缘检测算法. 贵州工业大学学报(自然科学版)[j]. 2004, 33(5): 77-79.

上一篇:基于Internet个性化信息检索技术的分析与研究

下一篇:移动通信系统中呼叫自动应答业务的研究