《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于多尺度多结构元的数学形态学边缘检测
基于多尺度多结构元的数学形态学边缘检测
2016年微型机与应用第07期
田国富,宋江波
(沈阳工业大学 机械工程学院,辽宁 沈阳 110870)
摘要: 针对传统的边缘检测算子对噪声敏感问题,提出了一种基于多尺度多结构元素形态学边缘检测算子。该算子在传统形态学边缘检测的基础上,通过改变结构元素的形状和尺度,在很好抑制噪声的前提下,实现图像精细边缘提取。MATLAB仿真结果表明,该边缘检测算子具有更强的去噪能力,定位准确,保留了更多的图像细节,优于传统的边缘检测算子。
Abstract:
Key words :

  田国富,宋江波

  (沈阳工业大学 机械工程学院,辽宁 沈阳 110870)

      摘要: 针对传统的边缘检测算子对噪声敏感问题,提出了一种基于多尺度多结构元素形态学边缘检测算子。该算子在传统形态学边缘检测的基础上,通过改变结构元素的形状和尺度,在很好抑制噪声的前提下,实现图像精细边缘提取。MATLAB仿真结果表明,该边缘检测算子具有更强的去噪能力,定位准确,保留了更多的图像细节,优于传统的边缘检测算子。

  关键词数学形态学;多尺度多结构元素;边缘检测

0引言

  图像最基本的特征是边缘,它包含着大量的图像信息,因此对图像边缘进行完整、精准的检测在图像处理过程中有着非常重要的意义。图像边缘检测就是定位和提取边缘信息,为图像分析、目标识别和机器视觉等做前期准备[1]。由于噪声对图像边缘检测带来的不利影响,在边缘检测过程中会丢失大量的图像细节信息,因此图像处理的基本问题就是在尽可能降低噪声干扰的同时提高检测精度。

  传统的边缘检测算子起步比较早,如Roberts算子、Sobel算子、Canny算子等一阶微分算子,以及Laplacian算子、LOG(高斯—拉普拉斯)算子等二阶微分算子。这些算法大多是在以要处理像素为中心的邻域中进行灰度分析,实现对图像边缘的提取[2],计算简单,实时性好,有良好的边缘检测性。但由于微分运算的性质,对噪声比较敏感,抗噪声性能差,提取的边缘不够精细,因此在实际应用中受到限制[3]。近年来,很多学者提出了基于数学形态学的边缘检测算法,在此基础上,本文针对单一尺度的结构元素容易导致在对目标图像进行边缘提取时定位不够准确、边缘信息丢失、去噪效果达不到预期要求等问题,提出了一种基于多尺度多结构元素的形态学边缘检测算法。

1数学形态学基础

  数学形态学是建立在数学理论之上的新兴学科,理论基础是集合论,基本运算是像素间的逻辑关系而非代数关系。其基本思想是:用一个具有一定形状的结构元素去度量和提取图像中的对应形状以达到对图像进行分析和识别的目的[4]。

  数学形态学可以去除目标图像中不相关的形态结构属性,而保留本质的结构属性,达到简化图像数据的目的。目前,数学形态学已广泛应用于机器视觉、显微图像分析、医学处理等领域 [5]。

  1.1数学形态学的基本运算

  数学形态学基本运算主要有膨胀、腐蚀、开、闭运算,开运算和闭运算都是由膨胀和腐蚀运算组合而成。

  设b(m,n)是结构元素,f(x,y)为输入的灰度图像,b的定义域为Db,f的定义域为Df,则结构元素b对灰度图像f的形态学运算如下:

  (1)形态学膨胀运算

  图像f被b膨胀,记作f⊕b,定义为:

  f⊕b=max{f(x-m,y-n)+b(m,n)

  |(x-m,y-n)∈Df;(m,n)∈Db} (1)

  (2)形态学腐蚀运算

  图像f被b腐蚀,记作fΘb,定义为:

  fΘb=min{f(x+m,y+n)-b(m,n)

  |(x+m,y+n)∈Df;(m,n)∈Db}(2)

  (3)形态学开运算

  图像f被b腐蚀后再用b来膨胀腐蚀结果,记作fb,定义为:

  fb=f(x,y)Θb(m,n)⊕b(m,n)(3)

  (4)形态学闭运算

  图像f被b膨胀后再用b来腐蚀膨胀结果,记作f·b,定义为:

  f·b=f(x,y)⊕b(m,n)Θb(m,n)(4)

  1.2形态学滤波

  数字图像的噪声主要来源于图像的获取和传输过程,对图像边缘检测产生不利的影响。因此在对图像进行边缘检测之前必须对其进行平滑处理,去除噪声的影响[6]。常用的图像去噪方法有中值滤波、小波去噪、数学形态学滤波等。

  数学形态学中,由于开运算可以去除比结构元素更小的明亮细节,闭运算可以去除比结构元素更小的暗细节,所以它们经常组合在一起用来平滑图像并去除噪声[7]。但由于闭运算的扩展性和开运算的反扩展性使得两者单独使用时并不能获得良好的滤波效果,因此本文采用两者的均值来实现噪声图像的平滑处理。假设经过去噪之后的图像用Filter来表示,则公式表示如下:

  Filter1={[(f⊕b)Θb]Θb}⊕b=(f·b) b(5)

  Filter2={[(fΘb)⊕b]⊕b}Θb=(f b)·b(6)

  Filter=12(Filter1+Filter2)

  =1/2[(f·b) b]+[(f b)·b](7)

  2数学形态学边缘检测算法及其改进

  2.1数学形态学边缘检测算法

  对上文介绍的形态学的基本运算进行组合,便可得到基本的形态学边缘检测算子的数学表达式,设E为边缘图像。

  若采用膨胀运算,则边缘检测算子为:

  E1(x,y)=f(x,y)⊕b(m,n)-f(x,y)(8)

  若采用腐蚀运算,则边缘检测算子为:

  E2(x,y)=f(x,y)-f(x,y)Θb(m,n)(9)

  若采用膨胀腐蚀复合运算,则边缘检测算子为:

  E3(x,y)=f(x,y)⊕b(m,n)-f(x,y)Θb(m,n)(10)

  由于形态边缘检测算子都属于非线性差分算子,因此对噪声都比较敏感,而且检测出的边缘与结构元素b紧密相关。利用数学形态学腐蚀和开运算组成的边缘检测器可以抑制图像中的峰值噪声,而利用数学形态学膨胀和闭运算可以抑制图像中的低谷噪声。因此对上述形态学边缘检测算子改进后得到抗噪型边缘检测算子。

  (1)抗噪膨胀型:

  E4(x,y)=[f(x,y)b(m,n)]⊕b(m,n)-

  [f(x,y)b(m,n)]·b(m,n)(11)

  (2)抗噪腐蚀型:

  E5(x,y)=[f(x,y)·b(m,n)]b(m,n)-

  [f(x,y)·b(m,n)]Θb(m,n)(12)

  (3)抗噪膨胀腐蚀型:

  E6(x,y)=[f(x,y)b(m,n)]⊕b(m,n)-

  [f(x,y)·b(m,n)]Θb(m,n)(13)

  2.2多结构元素边缘检测算法

  上述式(11)~(13)介绍的改进的数学形态学边缘检测算子可以很好地去除噪声和保持边缘细节,很大程度上减少了对噪声的敏感程度,但各算子均使用单一结构元素,因此检测到的边缘比较弱、不连续,而且很难检测出复杂形状的边缘。文献[8]针对以上问题提出了基于多结构元素的边缘检测算法,公式如下:

  E7(x,y)=[f(x,y)Θb1(m,n)⊕b2(m,n)]⊕

  b3(m,n)-[f(x,y)⊕b1(m,n)Θb2(m,n)]Θb3(m,n)(14)

  结构元素b1、b2、b3均采用单一尺度3×3的方形结构元素,分别对原图像和噪声图像采用文献[8]算法进行边缘检测。仿真试验结果如图1所示。

001.jpg

  上图中,(a)为原图像,(b)、(c)、(d)分别为采用文献[8]的检测算法对原图像、密度0.02的噪声图像、密度为0.05的噪声图像提取边缘的结果。对于文献[8]提出的多结构元素的边缘检测算法,b1、b2、b3均采用单一尺度的结构元素。由仿真结果可以看出,图像没有添加椒盐噪声时,检测到的图像边缘清晰,保留了图像的边缘细节,当添加噪声之后,虽检测出的图像边缘较平滑,但图像中混有噪声点,并且通过仿真试验可知随着噪声密度的增大,边缘图像中的噪声点将越来越多,当噪声点多到一定程度之后,就会与图像边缘粘黏在一起,形成伪边缘,导致不能准确地检测图像的轮廓边缘。

  2.3多尺度多结构元素边缘检测算法

  本文结合式(13)提出另一种抗噪膨胀腐蚀型边缘检测算子:图2各算法边缘检测结果对比

  E8(x,y)=[f(x,y)·b(m,n)]⊕b(m,n)-

  [f(x,y)b(m,n)]Θb(m,n)(15)

  对其改进得到多结构元素的边缘检测算子:

  E9(x,y)=[f(x,y)⊕b1(m,n)Θ

  b2(m,m)]⊕b3(m,n)-[f(x,y)Θ

  b1(m,n)⊕b2(m,n)]Θb3(m,m)(16)

  由于用较小尺寸的结构元素对图像进行处理,能较好地保护图像的细节,也可以滤除一定尺寸的噪声;反之,用较大尺寸的结构元素对图像进行处理时,能滤除较大尺寸的噪声,但也会损失更多的图像细节。针对不同尺度结构元素的优缺点,本文结合式(14)、(16)对文献[8]的多结构元素边缘检测算子进行改进,提出先用较大结构元素b1和b2对图像进行开、闭运算处理,然后用小尺度结构元素b3对图像做膨胀和腐蚀操作。取结构元素b1、b2为不同尺度平坦的圆形结构元素,半径分别为2和3,b3为R=1的菱形结构元素,得到一种多尺度多结构元素形态学边缘检测算子为:

  E(x,y)=1/2{[f(x,y)Θb1(m,n)⊕b2(m,n)]

  ⊕b3(m,n)-[f(x,y)⊕b1(m,n)Θb2(m,n)]

  Θb3(m,n)+[f(x,y)⊕b1(m,n)Θb2(m,n)]

  ⊕b3(m,n)-[f(x,y)Θb1(m,n)⊕b2(m,n)]

  Θb3(m,n)}(17)

3试验分析

  为验证本文提出的基于多尺度多结构元素算法的有效性,将其与Canny边缘检测算法、Sobel边缘检测算法和一般抗噪型边缘检测算法(式(13))进行对比,用MATLAB对Lenna图像和添加噪声的Lenna图像、Rice图像进行仿真。

  本文图像边缘检测算法步骤如下:

  (1)输入Lenna、Rice灰度图像,添加噪声(密度为0.05的椒盐噪声)。

  (2)用本文式(7)的方法对加入噪声的图像进行开—闭滤波运算,开、闭运算均采用3×3的方形结构元素。

  (3)利用公式(17)对经过滤波处理后的图像进行边缘提取。其中,b1和b2分别是半径为2和3的平坦的圆形结构元素,b3为R=1的菱形结构元素[9]。

  实验结果如图2所示。

002.jpg

  由以上检测结果可以看出,对于Lenna图像,无噪声情况下,传统的Sobel算子出现了很多的边缘断裂现象,Canny算子检测出过多的边缘细节,而一般的抗噪型边缘检测算子(式(13))和本文的算法检测的轮廓边缘清晰,连贯性较好。对于添加噪声之后的Lenna图像,传统的Sobel与Canny算子检测结果出现很大的噪声,不能清楚地观察到图像边缘。一般的抗噪型边缘检测算子虽然抵抗噪声能力比较强,但边缘出现了很多缺口,平滑度达不到要求。对于Rice图像,由于其边缘轮廓比较简单,无噪声情况下,几种检测算子都显示出不错的边缘检测结果。但添加噪声之后,Sobel算子已经完全不能识别图像的边缘,Canny算子不能准确地定位图像轮廓边缘,产生很多伪边缘。一般的抗噪型算子边缘不连贯,出现很多的缺口,平滑度也不够好。本文提出的算法,不管是对原图像还是添加噪声的图像,都显示出很好的边缘检测性能,边缘定位准确,轮廓清晰完整,边缘细节更加丰富。分别对Lenna图像和Rice图像的检测,也充分说明了本文检测算法的普遍性和实用性。

4结束语

  本文针对传统的边缘检测算子抗噪能力差的特点,从数学形态学的基本思想出发,通过对单一尺寸或形状结构元素的边缘检测算法分析与改进,提出了多尺度多结构元素边缘提取算法,通过仿真结果验证,本文算法可在抑制噪声的同时,有效地提取图像的边缘,且提取的边缘定位精度高,平滑度好,边缘细节保持也比较完整,充分验证了本文算法的优越性。

参考文献

  [1] 范立南,韩晓微,王忠石,等. 基于多结构元的噪声污染灰度图像边缘检测研究[J]. 武汉大学学报(工学版),2003,36(3):8690.


此内容为AET网站原创,未经授权禁止转载。