沈德海等
摘 要: 针对边缘检测算法存在的检测精度与抑噪的矛盾,提出一种基于新的图像边缘检测算法。算法将检测窗口按照0?,45?,90?和135?四个不同方向分别划分为两个子区域,先统计每个检测窗口(3×3)内脉冲噪声点的个数,如果超过3个,则扩大检测窗口至5×5。对于检测窗口每个方向划分的两个子区域,分别计算区域内的非噪声点的平均灰度值,利用平均值差的绝对值作为窗口的方向梯度值,进而求得中心点的梯度。然后,对梯度图像采用改进的非极大值抑制方法进行细化,并提取边缘。实验结果表明,该算法检测的图像边缘方向性较强,边缘较细,不仅对不同程度脉冲噪声干扰图像具有较强的抑噪能力,而且对高斯噪声也具有一定程度的抑制效果,算法具有较强的适应性。
关键词: 边缘检测; 噪声图像; 分区; 自适应
中图分类号: TN911.73 文献标识码: A 文章编号: 1004?373X(2015)08?0001?03
Subzone mean adaptive edge detection algorithm for noisy images
SHEN De?hai, HOU Jian, E Xu, ZHANG Long?chang
(College of Information Science and Technology, Bohai University, Jinzhou 121013, China)
Abstract: In view of contradiction between detection accuracy and noise suppression of edge detection algorithm, a new edge detection algorithm is proposed. In the algorithm, the detection window is divided into two subzones in each direction of 0?, 45?, 90? and 135?. The number of pulse noise points in detection window of 3×3 is counted. If the point number is more than 3, the detection window size is extended to 5×5. For two subzones in each direction of detection window, the mean gray value of non?noise points in every subzone is calculated respectively. The absolute value of the two mean values′ difference is taken as direction gradient value to acquire the gradient of center point, and then the improved non?maximum suppression method is used to refine gradient image and extract the image edge. The experiment results show that directionality of the image edge detected by the new algorithm is well and the edge is fine, and the algorithm can suppress different degree impulse noise and has a certain suppression effect on Gaussian noise and strong adaptability.
Keywords: edge detection; noisy image; subzone; adaptability
图像边缘是图像灰度变化最为显著的区域[1],包含了大量有价值的信息,是图像特征提取、图像分割及图像识别等的重要依据和基础。边缘检测就是确定边缘位置,提取图像的边缘框架,为后续工作提供关键的要素图,检测结果的精确度和细化程度对后续工作影响非常大。由于数字图像在成像、编码及传输等处理过程中可能受到各种因素干扰而产生噪声,进而影响到图像边缘检测的效果。传统的边缘检测算法分为两类,一类是基于空间域的算法,如Roberts算子[2]、Sobel算子[3]、Prewitt算子[4]、LoG算子[5]等,这些算法直接对图像进行边缘检测,没有抑制噪声过程,对噪声较为敏感。另一类是基于空间频率域的算法,典型代表是基于小波理论及相应改进算法[6],对于噪声图像具有一定的抑制能力,但对噪声干扰较严重的图像,检测效果不佳。近年来,一些新的算法被提出来,如数学形态学算法[7]、神经网络算法[8] 、粗糙集算法[9]及遗传算法[10]等,这些新算法对噪声图像的边缘检测取得了较好的效果,但也存在着各自的问题,如算法复杂、实时性差等,适应性较差。
本文提出一种分区均值梯度的自适应噪声图像边缘检测算法,对检测窗口化分区域,根据检测窗口内非噪声点的数量自适应调整窗口大小,检测的边缘效果较好,同时有效地消除了噪声对边缘检测的影响。
1 传统边缘检测原理
传统边缘检测算法主要是采用梯度算子计算图像梯度,图像梯度包括梯度幅值和梯度方向。多数算子采用边缘邻域像素的一阶方向导数检测图像边缘,在图像边缘处,像素点的一阶方向导数具有极大值。在实际的边缘检测过程中,通常采用小区域模板与图像进行卷积来近似计算一阶导数,这些模板合在一起便是一个梯度算子。常见的梯度算子有Roberts算子、Sobel算子、Prewitt算子和Krisch算子等,如图1中分别为Roberts、Sobel和Prewitt算子模板。
图1 几种梯度算子模板
传统的基于梯度算子边缘检测算法利用算子模板与图像做卷积运算,将最大值输出得到梯度图像,然后再设定门限值TH,将大于等于TH的点视为图像边缘。梯度算子由于采用相邻像素灰度差计算梯度,对噪声较为敏感,当图像受噪声影响较为严重时,检测出的边缘图像包括许多的噪声边缘,使得后续处理无法进行。
2 本文算法
针对边缘检测算法存在的检测精度与抑制噪声的矛盾,提出了一种分区均值的自适应噪声图像边缘检测算法,算法将检测窗口按照4个方向划分为4对子区域,根据检测窗口内非噪声点的数量自适应调整窗口大小,然后采用子区域内非噪声点的均值差计算窗口中心点的方向梯度,进而求得梯度图像,最后采用改进的非极大值抑制方法对梯度图像进行细化,算法原理如下。
2.1 子区域划分
对于数字图像,在一个检测窗口内,中心点边缘方向主要包括0?、45?、90?和135?四个方向。按照该四个方向,本文算法将检测窗口划分为8个子区域,即每个方向上划分为2个子区域,如图2所示。图中上下两排分别为3×3和5×5检测窗口的子区域划分,每种检测窗口以中心点(x,y)的0?、45?、90?和135?方向分别划分两对子区域,其中灰色圆圈所在地区域为子区域。
2.2 脉冲噪声点检测与去除
图像由于受脉冲噪声干扰,会产生随机的黑白亮点,被污染的像素灰度值与周围正常像素相差比较大,噪声边缘处具有较大的梯度值,会同真实边缘一起被检测出来。通常对于8位的灰度数字图像来说,脉冲噪声点的像素值主要接近或等于0和255,根据这一特点,本文算法先采用式(1)的方法在检测窗口对脉冲噪声点进行判断,为了消除噪声点对梯度值的影响及防止噪声边缘被检测出来,算法采用丢弃噪声点的策略,即对噪声点赋值为0,在后续的梯度计算时将不被考虑。式(1)中的δ为调解因子,主要用来调整脉冲噪声的范围,其值可根据实验效果进行调整。
[f(x,y)=0, 0+δ≤f(x,y)≤255-δf(x,y), others] (1)
2.3 计算梯度
算法采用自适应窗口分区均值的方法计算图像梯度,即先在3×3检测窗口内先统计噪声点的数量,如果超过3个,则用来计算方向梯度的可用像素信息太少,因此,为了获取更多的可用像素,算法将窗口尺寸扩大为5×5,这样梯度计算就会比较准确。
图2 检测窗口子区域
在一个3×3或5×5检测窗口内,按照0?、45?、90?和135?四个方向划分4对子区域,每个方向梯度的计算方法如下:先计算每对子区域内信息点的平均灰度值,然后再将两个平均灰度值相减,取绝对值。为了防止方向剃度值的溢出,再除以一个衰减因子β,各个方向梯度的计算公式如式(2)~式
上述各式中,Au和Ad分别表示检测窗口中0?方向的上、下两个子区域,用区域内非噪声点的均值差计算垂直方向梯度;Al和Ar分别表示检测窗口中90?方向的左、右两个子区域,用区域内非噪声点的均值差计算水平方向梯度;Alu和Ard分别表示检测窗口中45?方向的左上、右下两个子区域,用区域内非噪声点的均值差计算135?方向梯度;Aru和Ald分别表示检测窗口中135?方向的右上、左下两个子区域,用区域内非噪声点的均值差计算45?方向梯度。由于采用区域非噪声点均值计算方向梯度,消除了脉冲噪声的干扰及噪声边缘的出现。算法充分利用了邻域相关性原理,如果方向区域为边缘方向,则该区域内的像素灰度值变化平缓,由于采用均值,缺少的一些像素点对区域均值的影响非常小,利用均值差分可以较准确地表示方向梯度。另外由于采用均值法计算梯度,对高斯噪声也起到了一定的抑制作用。最后将4个方向梯度值的最大值作为输出,即得到梯度图像G,如式(6)所示。
[G(x,y)=max(Δf0(x,y),Δf90(x,y),Δf45(x,y),Δf135(x,y))] (6)
2.4 梯度图像边缘细化及边缘提取
经过式(6)输出的图像为梯度图像,经过一阶微分或近似方法得出的梯度图像边缘仍然比较粗,如果直接采用阈值处理,大部分假边缘可以去除,但仍会存在一些梯度幅值较大的假边缘,因此需要对梯度图像进行细化,为了只保留边缘处梯度幅值局部变化最大的点,通常采用非极大值抑制方法。非极大值抑制是实现像素级边缘细化的常用方法,其原理是对梯度方向上不具备极大值的中心点进行抑制,使其值为0,达到细化目的。本文采用式(7)所示的方法进行非极大值抑制,算法采用3×3窗口,从0?和90?两个方向对梯度图像G进行非极大值处理,得到新的梯度图像G′:
[G′(x,y)=G(x,y), (G(x,y)≥γ·max(G(x-1,y),G(x+1,y))) or (G(x,y)≥γ·max(G(x,y-1),G(x,y+1)))0, others] (7)
式中:γ为细化强度因子,根据γ可以根据需要调解细化强度。γ值减小,细化强度减小,可减少边缘点的丢失,γ值增大,细化强度增大,额外的边缘点会减少,边缘点的丢失和额外边缘点的增加是相互矛盾的,可根据需要调解。经过多次实验验证,γ值在0.98~1.02之间调整,可保证边缘宽度较细,且连续性较好。最后,采用阈值法将梯度图像G′进行二值化处理,对梯度图像的边缘进行细化和提取。
3 验证实验
在Matlab实验平台下进行仿真实验以验证算法的有效性,采用标准灰度图像Lena作为实验对象。实验中分别将图像加入密度为5%,50%的脉冲噪声及方差为0.002的高斯噪声,采用传统Sobel 算法和本文算法对噪声图像进行边缘检测处理。实验结果如图3~图5所示。
从图3中可以看出, 对于较低密度脉冲噪声污染的图像,传统Sobel算法检测出的边缘图像含有许多噪声边缘,图像边缘轮廓不容易分辨;而本文算法检测出的边缘图像抑制了绝大部分脉冲噪声,检测出的图像边缘方向性较强,轮廓清晰,细节部分较为完整,而且边缘较细。从图4中可以看出,当脉冲噪声增至50%时,传统Sobel算法的检测性能完全失效,而本文算法依然能够检测出较为清晰的图像边缘,只不过信息点过少,使得一些细节信息无法检测出来。图5是两种算法对高斯噪声图像的边缘检测结果,从中可以看出,传统Sobel算法由于受高斯噪声影响,检测出的边缘图像中含有许多噪声边缘,而本文算法几乎抑制了全部高斯噪声,边缘效果较好,图像比较清晰,证明了本文算法对高斯噪声也具有一定的抑制作用。
图3 5%脉冲噪声图像检测结果
图4 50%脉冲噪声图像检测结果
图5 方差为0.002的高斯噪声图像检测结果
4 结 论
针对含噪图像提出一种分区均值的自适应边缘检测算法。算法采用分区域均值的方法计算图像梯度,针对不同密度的噪声能够自适应调整检测窗口的大小。算法不仅较好地检测出不同程度脉冲噪声干扰图像的边缘,而且对高斯噪声也起到了一定的抑制作用。实验证明,算法对含噪图像的检测效果明显优于传统的Sobel算法,具有一定的实用价值。
参考文献
[1] 王康泰,戴文战.一种基于Sobel算子和灰色关联度的图像边缘检测方法[J].计算机应用,2006,26(5):1035?1037.
[2] 毕卓,韩冰.抗噪Roberts 算子边沿检测器[J].计算机技术与发展,2013,23(6):258?261.
[3] 张志刚,郑冰.基于Sobel 算法的细胞边缘提取技术[J].微计算机信息,2011,27(12):128?129.
[4] 臧晶.Prewitt 改进算法的研究与实现[J].沈阳理工大学学报,2012,31(1):28?30.
[5] 周泽华,胡学友,谭敏.基于Log算子边缘检测的车牌定位方法[J].自动化与仪器仪表,2009(2):90?92.
[6] 鲍雄伟.小波变换在图像边缘检测中的应用[J].电子设计工程,2012,20(14):160?162.
[7] 吴一全,宋昱,周怀春.基于各向异性数学形态学的火焰图像边缘检测[J].仪器仪表学报,2013,34(8):1818?1824.
[8] 刘双强.一种改进的图像边缘检测方法?Weighted CHNN[J].微电子学与计算机,2011,28(9):100?103.
[9] 王丹,吴孟达,毛紫阳,等.基于多粒度粗糙模糊集的图像边缘检测[J].模式识别与人工智能,2012,25(2):195?204.
[10] 牟宇飞,张文普,彭畑.基于遗传算法阈值优化的模糊边缘检测[J].重庆理工大学学报:自然科学版,2012,26(8):91?112.