一种改进的Canny算子边缘检测算法
周晓明,马秋禾,肖 蓉,杨 娜
(信息工程大学测绘学院,河南郑州450052)
摘 要:介绍Canny算子边缘检测的基本原理,并对其性能进行分析和评价。针对传统Canny算子在滤波过程中存在的缺陷,提出一种基于自适应平滑滤波的改进Canny边缘检测算子,该算法根据图像中像元灰度值的突变特性,自适应的改变滤波器的权值,在平滑图像的过程中使图像的边缘锐化。在计算梯度幅值的时候采用了邻域的梯度幅值计算方法,考虑了像素对角线方向的梯度计算,进一步抑制了噪声的影响。通过对实验图像的分析表明,改进的检测算法对图像边缘提取具有较好的检测精度和准确性。关键词:图像处理;边缘检测;Canny算子;自适应滤波
中图分类号:TP301.6 文献标识码:A 文章编号:100627949(2008)0120028204AnimprovedCannyedgedetectionalgorithmZHOUXiao2ming,MAQiu2he,XIAORong,YANGNa
(InstituteofSurveyingandMapping,InformationEngineeringUniversity,Zhengzhou450052,China)
Abstract:ThispaperintroducesfundamentaltheoryofCannyoperator,andcarrysonitsanalysisandevalu2ation.Onthisfoundation,animprovedCannyedgedetectionalgorithmbasedonadaptivesmoothfilteringisproposed.Accordingtocharacteristicofrevulsioneverypointgrayscale,thisalgorithmadaptivelychan2gescoefficientsofthefilter,accordingtogradientoneachpoint.Theresultsoftheexperimentpicturesin2dicatethattheimprovedalgorithmhasthebetteraccuracyandprecisionintheedgedetection.Keywords:Imageprocessing;edgedectection;cannyoperator;adaptivesmoothing
边缘是图像的基本特征,是指图像中那些邻域灰度有强烈反差的像素的集合。传统的微分边缘检
测算子是利用图像边缘点灰度的突变性,通过求出图像横向和纵向的一阶或二阶梯度的模值和幅角值,最后沿幅角方向求出模极大值得到图像的边缘。如典型的Sobel算子,Prewitt算子,LOG算子等。由于图像边缘和噪声都是高频信号,边缘信息很容易被噪声污染,所以直接对含有噪声的图像运用梯度算子,可能丢失重要的边缘信息,影响定位精度。相比传统的微分算子,基于最优化算法的Canny边缘检测算子因具有信噪比大和检测精度高的优点,被广泛应用。
本文分析了Canny边缘检测算法原理,对Can2ny算子中的高斯滤波过程进行了深入的研究,提出了采用自适应平滑滤波对图像边缘进行增强的方法,有效地提高了Canny边缘检测的精度,实验证明这是一种较好的改进算法。
收稿日期:2007206205
作者简介:周晓明(1982~),男,硕士研究生.
1 Canny算子
Canny于1986年提出一个优良的边缘检测算
子应满足如下3个判断准则,并提出了一种新的边缘检测算子。
信噪比准则
SNR=
∫G(-x)f(x)dx
n
∫f(x)dx
-w+ω-w
+ω
.(1)
0
2
其中:f(x)是边界为[-w,+w]的滤波器的脉冲响应,G(-x)为边缘函数,n0是高斯噪声的均方根,信噪比越大,提取的边缘质量越高。
定位精度准则Localization=
(-x)f′(x)dx
∫G′n
∫f′(x)dx
-w+w-w
+w
.(2)
0
2
' 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第1期 周晓明,等:一种改进的Canny算子边缘检测算法・29・
(
)
(-x)和f′(x)分别表示G(-x)及f(x)的其中:G′
一阶导数,Localization值越大,表明定位精度越高。
单边缘响应准则:要保证单边缘只有一个像素响应,检测算子的脉冲响应导数的零交叉点平均距
)应满足离D(f′
(x)dx
∫)=πD(f′
∫f(x)dx
-∞+ω-ω+∞
式中:f0(z)为图像的原始数据,fk+1(z)为第k+1
()
次迭代平滑后滤波器的输出值,wk(z)为窗内各点的权值N(k)=∑w(k)(z+i)。该滤波窗的长度为
-MM
()
(2M+1),且对任意的z和k,有w(k)(z)≡1。
f
′2
12
.(3)
该滤波器对图像中的所有像元(包括像元灰度值突变处)灰度值都进行了平滑,如果已知像元灰度值发生突变的位置,那么将滤波器的权值设置为0,这样就避免了对突变处的像元点进行平滑。但是,在实际应用中,并不知道图像像元灰度值的突变发生在何处,故采用对原始图像中各像元点灰度值不连续性的计算来自适应调整滤波器的权系数,即
(k)(k)(6)w(z)=<(d(z)).其中:d(k)(z)是对像元灰度值不连续性度量,<(d(k)(z))为单调递减函数,令<(0)=1,且随着
()()
度值的梯度作为dk(z)的估值。于是wk(z)可 若满足此条件,就能保证单边缘只有一个响应。 基于这3个判断准则,Canny推导出了一种最佳边缘检测算子,称为Canny算子,其算法的流程如图1所示。 图1 Canny算子流程图表示为 w (k) 2 改进的Canny边缘检测算法2.1 改进的自适应平滑滤波 (z)=<(f (k)′ (z)||f′(z))=exp-2h2 () 2.(7) 从对Canny算法的分析中可以看出,运用Can2ny算子提取边缘首先进行的是高斯滤波,其目的就是对原始图像进行平滑处理,以去除或减弱图像中的噪声。由于图像边缘和噪声都是高频信号,运用原始的高斯函数进行滤波,会使图像的边缘模糊度增加,这将使后续的检测过程变得困难。本文提出一种改进的高斯滤波方法,该算法根据图像中像元灰度值的突变特性,自适应的改变滤波器的权值,在区域平滑过程中使图像边缘锐化,较好地解决了平滑噪声、锐化边缘这对滤波技术中的矛盾,对接下来的边缘检测起到很好的预处理作用。 )高斯滤波的基本思想是将高斯函数Gs(x,y,σ与原始图像f(x,y)进行卷积,最后得到一个平滑的 图像fr(x,y),其运算的数学表达式为 )・f(x,y).(4)fr(x,y)=Gs(x,y,σ )为高斯函数,σ是高斯标准方差,x式中:Gs(x,y,σ 是原始图像的横坐标变量,y是原始图像纵坐标变量。该滤波器的平滑作用可以通过σ来控制,实践中σ一般取1.0~2.0。 此外,高斯滤波器可以由一系列有限窗口均值滤波器卷积得到,如用等权值的局部滤波器来计算,对于一维信号,这一平滑过程可以表示为 f (k+1) 其中:f′k(z)为图像灰度值fk(z)的一阶导数,h为恒定参数,该参数确定了在平滑过程中可以保留 () 下的边缘幅度。当图像灰度值用二维信号f(k)(x, (k)(k) y)表示时,d(x,y)定义为f(x,y)的梯度(滤波窗口尺寸为3×3)。 ()() 5fk(x,y)5fk(x,y), 5x5y w (k) T =(Gx,Gy).(8) 因此,反映图像像元灰度值连续性的权系数 (x,y)可表示为 w (k) (x,y)= (9) <[w其中:d (k) (k) (d(k)(x,y))2(x,y)]=exp-. 2h2 2 2 (k) (x,y)= f Gx+Gy。于是,在点(x,y)处的 (k+1) 平滑信号f 1N 1 (x,y)定义为 (x,y)= 1 (k) (k) i=-1j=-1 ∑∑f (k) (x+i,y+j)w(k)(x+i,y+j). (10) 式中:N =∑∑w i=-1j=-1 11 (k) (x+i,y+j)。 自适应平滑滤波的计算步骤如下: 1)令k=0,迭代次数为N,并设置参数h的值。 ()() 2)计算梯度Gxk(x,y)和Gyk(x,y)。 (k)1(k)Gx(x,y)=[f(x+1,y)- (z)= 1N M (k) -M f∑ (k+1) (z+i)w(k)(z+i). (5) 2 f (k) (x-1,y)], © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net ・30・ (k)1(k)Gy(x,y)=[f(x,y+1)- 测 绘 工 程 第17卷 P45(x,y)= G(x-1,y+1)-G(x+1,y-1); (11) (16) 2 f (k) (x,y-1)]. (k) 135°方向偏导数 P135(x,y)= G(x+1,y+1)-G(x-1,y-1). (17) 3)计算滤波器的权系数。 w (x,y)= 2 (k) yexp- [G(k)x(x,y)]+[G2h2f (k+1) (x,y)]2.(12) 则水平方向的差分为 fx(x,y)= Px(x,y)+[P45(x,y)+P135(x,y)]/2.(18) () 4)对fk(x,y)进行加权平均。 (x,y)= 11 (k) 垂直方向的差分为 fy(x,y)= . Py(x,y)+[P45(x,y)-P135(x,y)]/2.(19) i=-1j=-1∑∑f (x+i,y+j)w(k)(x+i,y+j) 1 1 (k) i=-1j=1 ∑∑w (x+i,y+j) (13) 求得梯度幅值为 M(x,y)=fx(x,y) 2 +fy(x,y). 2 (20)(21) 5)如果k=K,则结束迭代;否则k=k+1,转步骤2)。 由上可知,本文提出的自适应平滑滤波方法的基本思想是采用一个局部加权模板与原始的图像信号进行迭代卷积(迭代次数一般是固定的),在每次迭代时各个像元点的加权系数是改变的,它是该像元点的梯度函数。同时滤波器的加权系数还依赖于参数h,该参数控制了在迭代过程中所要保留下来的突变点的幅度,这一参数保证了在不同情况下图像平滑的准确性。总之,加权系数反映了图像灰度值连续性的程度,经过多次迭代后,滤波器的输出图像是由若干均匀强度区域所组成,且这些区域之间存在很好的边缘,因此,自适应平滑具有两个明显的作用:一是锐化了区域边缘;二是使区域内部得到平滑。 仿真实验结果表明,自适应滤波器的平滑作用是缓慢和渐进的,而边缘锐化则只需经过少数几次迭代就能得到,就可以达到期望的平滑锐化结果,更多次数的迭代计算不会对图像有更明显的改善,反而会增加计算量,影响效率。在本次试验中,将迭代次数设置为5,经检验结果证明已经可以达到预期的实验效果。2.2 3×3邻域的梯度幅值计算方法 传统的Canny算法通过在邻域内求有限差分来计算梯度幅值,该方法对噪声比较敏感。本文采用在3×3邻域内计算梯度幅值,过程如下: 首先计算4个方向的偏导数:x方向的偏导数 Px(x,y)=G(x,y+1)-G(x,y-1);(14) y方向偏导数 Py(x,y)=G(x+1,y)-G(x-1,y);(15) 梯度方向为θ(x,y)=arctan[fx(x,y)/fy(x,y)]. 该方法考虑了像素对角线方向,增加了计算像素偏导数的方向,改进了传统Canny梯度计算算子,将其引入了差分均值计算中,提高了边缘定位的准确性。 3 实验结果与分析 实验结果:本文使用MatLab7.0数学工具,进行了Canny算法编程,并在原始Canny程序的基础上,加入了自适应平滑滤波和3×3邻域梯度幅值计算代码,对加入了随机噪声的Lena图像(图3)进行了边缘检测试验,结果如图2~图7所示。 图2 原始没有噪声的Lena图像 图3 加入了随机噪声的Lena图像 45°方向偏导数 © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 第1期 周晓明,等:一种改进的Canny算子边缘检测算法・31・ 图5为改进的自适应滤波图像,滤波参数h取 8。 从试验中可以看出,图4中传统高斯滤波对图像过度的平滑,在一定程度上抑制了噪声,但也减弱了边缘信息,这会对以后的边缘提取产生很大的不利影响。图5中本文提出的改进的自适应平滑滤波对噪声图像有很好的预处理结果,图像整体平滑效果较好,同时图像边缘信息也得到了加强。在后续的梯度算法中,改进的梯度计算方法对图像的噪声进一步抑制,在图7的最后的边缘检测结果中,可以看到改进算法对于边缘的定位较准确,边缘细节更丰富。 图4 对噪声图像进行传统高斯滤波结果 4 结 论本文通过对传统Canny算子进行改进,采用了 图5 对噪声图像进行自适应滤波结果自适应的平滑滤波和3×3邻域的梯度幅值计算方 法。实验结果表明改进的算法相对于传统的Canny有较好的边缘提取效果。对于图像目标的提取有一定改善,实验证明这是一种较好的改进算法。但是本算法也存在计算量大的缺点,希望在进一步的研究中改进。 参考文献 图6 传统Canny算子提取的结果 [1]林 卉,赵长胜,舒 宁.基于Canny算子的边缘检测及评 价[J].黑龙江工程学院学报:自然科学版,2003,17(2): 326. [2]王 娜,李 霞.一种新的改进Canny边缘检测算法[J]. 深圳大学学报:理工版,2005,22(2):1492153. [3]景晓军,李剑峰,熊玉庆.静止图像的一种自适应平滑滤 波算法[J].通讯学报,2002,23(10):6214. [4]CANNYJ.Acomputationalapproachtoedgedetection. IEEE-PAMI,1983. [5]王 植,贺赛先.一种基于Canny理论的自适应边缘检 图7 改进Canny算子提取的结果 测方法[J].中国图象图形学报,2004,9(8):9572961. [6]WorthingtonPL.一种基于曲线连续性的改进Canny边 图4采用了5×5区域的高斯模版进行图像卷 积。其卷积模版为 24542491294 (1/115)351215125. 42 94 125 94 42缘检测算法[A].模式识别国际会议[C],美国IEEE计算机学会出版社,2002.5962599(英文版). [7]章毓晋.图象处理和分析[M].北京:清华大学出版社,1999:19522041. [8]王 磊,莫玉龙,戚飞虎.基于Canny理论的边缘提取改 善方法[J].中国图象图形学报,1996(3). [责任编辑:刘文霞] © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 因篇幅问题不能全部显示,请点此查看更多更全内容