基于canny算子的改进边缘检测算法
2013-04-23云南民族大学王嘉梅赵继勇嫣志勇
云南民族大学 朱 叶 王嘉梅 赵继勇 嫣志勇
1.引言
边缘检测技术是数字图像处理中的一项重要技术,边缘检测的主要目的就是实现对目标图像的精确定位。边缘是图像的基本特征,是图像分割的重要依据,也是纹理特征的重要信息源和形状特征分析的基础,边缘检测的效果将直接影响到图像理解和识别的性能[1]。经典的边缘检测算子,如Robert、Prewitt、Log等,简单、易于实现,但对噪声敏感、抗干扰性能差,边缘不够精细[2]。相比这些算子,Canny算子具有更好的信噪比和检测精度,在图像边缘检测领域中具有更加广泛的应用范围。
但是,实际图像中,存在着许多噪声,这时,若仍采用传统Canny算子进行边缘检测,会将一些噪声点误作边缘点检测,导致提取的边缘轮廓模糊、不精确,因此,我们需要对传统Canny算子加以改进。
本文提出了一种基于Canny算子而改进的边缘检测算法,该算法既可以较好地滤除噪声,又可以提高目标边缘的定位精度、抑制虚假边缘和去除冗余弱边缘,呈现出了一个更为清晰的图像边缘检测结果,比传统Canny算法具有更好的性能。
2.传统canny边缘检测算法
Canny提出了边缘检测性能优劣的3个判断准则[3]:
高信噪比准则:即输出信号的信噪比最大,以降低边缘点判断为非边缘点和非边缘点判为边缘点的概率。信噪比越大,误检率越低。
高定位精度准则:好的定位性能,即检测出的边缘点要尽可能在实际边缘的中心
单边缘相应准则:即单一边缘只有惟一响应,并且对虚假边缘响应应得到最大抑制。
2.1 传统canny算法边缘检测步骤
(1)高斯滤波
用一维高斯函数对原始图像f(x,y)进行低通滤波、噪声滤除,该高斯函数为:
δ为高斯滤波函数的标准差,控制着平滑程度:σ较小时,滤波器定位精度高,但信噪比低;σ较大时,滤波器情况正好相反。我们要根据实际情况确定δ的大小。
(2)计算梯度幅值和方向
传统的Canny算法采用2×2邻域一阶偏导的有限差分来计算平滑后的图像的梯度幅值和方向:
(3)非极大值抑制
将边缘的梯度方向按照水平、竖直、45°和135°四个方向,用不同的邻近像素进行比较,确定局部极大值。若某个像素的灰度值与梯度方向上前后两个像素的灰度值相比不是最大,该点即为非边缘点,删除;否则,即为待选边缘点,保留。这个过程称为“非极大值抑制”。
(4)双阈值法检测和连接边缘
用高、低阈值对经非极大值抑制的结果检测,得到高阈值边缘图像Th和低阈值边缘图像lT,然后,以图像Th为基础,用图像Tl来补充连接图像边缘。
2.2 传统Canny算法的缺陷
Canny算子因其优越的边缘检测性能得到了广泛应用,但实际中图像易受噪声污染,如光照、油渍等,这时,如果仍用传统Canny算法,一方面不能有效滤除噪声,另一方面会出现伪边缘或边缘丢失。
传统Canny算子用高斯函数对图像平滑滤波,有较强的抑制噪声能力;但会造成边缘丢失,对高频细节的保护效果不佳。这是因为,Canny算子在对图像高斯滤波时,边缘作为高频部分易被平滑掉,一些边缘就变成了缓变边缘,进行非极大值抑制的时候,缓变边缘就容易丢失,造成边缘检测结果存在较明显的模糊和边缘丢失问题,效果欠佳。
3.改进的canny边缘检测算子
双边滤波,Bilateral filter,既可以较好地滤除图像噪声,又可以保持较好的图像边缘信息,解决了高斯滤波的图像模糊和边缘丢失问题。本文充分结合双边滤波和Canny算子的优越性,提出一种新的Canny边缘检测算法,该算法用滤波性能较好的双边滤波代替传统Canny边缘检测中的高斯滤波,对含噪图像具有更好的边缘检测效果。
双边滤波是一种非线性的2D信号滤波方法[4],是图像的空间临近度和像素相似度的一种折衷处理[5],是通过像素的加权平均而定义的,利用强度的变化来保存图像边缘信息。设BF为双边滤波的符号,由下式定义[6]:
d( p, q)和 δ (I( p ) ,I( q ))分别为图像两像素点的欧氏空间距离和像素的灰度差,δd和δr是基于高斯函数的标准差,决定着双边滤波器的滤波效果。
4.实验结果与结论
以MATLAB(R2008a)为实验平台,选取经典Lena图像,分别采用传统Canny算法和本文改进的Canny算法进行边缘检测。图1为加入了0.01高斯噪声的Lena图像边缘检测结果;图2为加入了0.01椒盐噪声的Lena图像边缘检测结果。
从图1和图2可以看出:传统的Canny算法对噪声较敏感,容易将噪声点当作边缘点检测,检测出的边缘轮廓不清楚,精确度较低,提取的边缘信息过于冗杂,不能较好地显示图像的主要轮廓特征,不利于进一步的图像分析;本文算法对高斯噪声和椒盐噪声的去噪和边缘检测效果均优于传统的Canny算法,能够获得更好的边缘检测图像。图(c)既去除了图(b)中的大部分虚假边缘,又避免了丢失很多真边缘,边缘轮廓明显、清晰,连续性较好,提高了Canny算法边缘检测的信噪比、改善了噪声干扰情况下边缘检测效果。
5.结论
传统的Canny边缘检测算子并不能得到最优化的边缘检测结果,存在许多不足之处。本文提出的改进Canny边缘检测算法能够较好地滤除图像噪声、抑制虚假边缘,保留了较完整和清晰的边缘轮廓,具有更好的边缘检测效果,简单实用,复杂度低,具备更好的推广应用价值。
[1]李二森,张保明,等.自适应Canny边缘检测算法研究[J].测绘科学,2008,33(6):66,120-121.
[2]陈志强,高磊,等.一种优化的Canny算子边缘检测法[J].电子测试,2011(6):43-46.
[3]李红,胡方明,等.一种改进的Canny边缘检测算法[J].微计算机信息,2008,24(12-3):304-305.
[4]靳明,宋建中.一种自适应的图像双边滤波方法[J].光电工程,2004,31(7):65-68.
[5]蔡超,丁明跃,周成平,等.小波域中的双边滤波[J].电子学报,2004,32(1):128-131.
[6]王玉灵.基于双边滤波的图像处理算法研究[D].西安电子科技大学,西安电子科技大学,2010.