田国富,宋江波

(沈阳工业大学 机械工程学院,辽宁 沈阳 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所示。

上图中,(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所示。

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

4结束语

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

参考文献

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

matlab设置非平坦结构元,基于多尺度多结构元的数学形态学边缘检测相关推荐

  1. matlab设置非平坦结构元,详解MATLAB/Simulink通信系统建模与仿真图书信息

    第1章 Simulink基础 1.1 Simulink简介 1.2 运行Simulink演示程序 1.2.1 运行房屋热力学系统演示模型 1.2.2 房屋热力学系统模型说明 1.2.3 其他Simul ...

  2. matlab 非结构网格,基于MATLAB的非结构网格生成器和浅水问题的数值模拟

    文章编号:1000-4874(2009)-04-0398-08 基于 MATLAB 的非结构网格生成器 和浅水问题的数值模拟* 蒋艳群,段雅丽, 刘儒勋,张韵华 (中国科学技术大学数学系,安徽合肥,2 ...

  3. matlab减震控制,基于SMA-SPDS的小雁塔结构减震控制研究

    基于SMA-SPDS的小雁塔结构减震控制研究 [摘要]:古塔是一种历史宗教建筑,是全人类宝贵的历史文化遗产.它不仅保存了古代生产技术.材料制作和建造工艺等历史信息,同时也是历史.文化.艺术.宗教.政治 ...

  4. 知识图谱-知识抽取(三):非结构化数据【DeepDive:基于远程监督的“关系抽取”】【斯坦福开发的开源知识抽取系统,通过弱监督学习,从非结构化的文本中抽取结构化的关系数据 】

    deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统.它通过弱监督学习,从非结构化的文本中抽取结构化的关系数据 .是目前人工智能学习领域的一个热门项目.原文见 http://d ...

  5. 基于区域协方差的结构保持图像平滑

    基于区域协方差的结构保持图像平滑 原文:https://dl.acm.org/citation.cfm?id=2508403 摘要 近年来见证了新的图像平滑技术的出现,这些技术提供了新的见解并提出了关 ...

  6. python元胞自动机模拟交通_结构专栏 | 解析DEFORM软件中的元胞自动机法

    点击上方蓝色字体,关注我们 导语 金属材料的性能取决于内部的微观组织结构,而好的材料性能和价格是产品最大的优势.随着现代物理冶金.热成形技术.热处理技术和计算机技术的兴起与发展,使预测和控制金属材料热 ...

  7. 基于SE的半监督元学习网络在小样本故障诊断中的应用

    Semi-supervised meta-learning networks with squeeze-and-excitation attention for few-shot fault diag ...

  8. 【CV】CVPR2020丨SPSR:基于梯度指导的结构保留超分辨率方法

    作者 | Alan 授权转载自 | https://zhuanlan.zhihu.com/p/121721537 CVPR2020:Structure-Preserving Super Resolut ...

  9. 合流超几何函数_【CV】CVPR2020丨SPSR:基于梯度指导的结构保留超分辨率方法

    作者 | Alan 授权转载自 | https://zhuanlan.zhihu.com/p/121721537 CVPR2020:Structure-Preserving Super Resolut ...

最新文章

  1. VTK:Utilities之VectorArrayUnknownLength
  2. CRM Set Type com_commercial的UI界面
  3. java集合考试_java集合练习
  4. 计算机网络课程设计之电子邮件客户端程序设计与实现
  5. ios 开发需要看的书籍
  6. Java生成MD5码
  7. 新微擎 v1.7.9 图文回复 标题emoji
  8. 关于禅道项目管理软件
  9. 数据库的基本操作(增删改查)
  10. mt6573芯片资料汇总
  11. java 1 20内奇数的乘积_计算所有奇数的乘积
  12. CSS 边框四个角效果
  13. 共阳极管的代码_1.共阳极数码管是将发光二极管的_____连接在一起,字符5的共阳代码为_____,字符2的共阴代码为 _____。...
  14. uniapp中app、h5、小程序引入高德地图定位,并封装起来调用。
  15. 布署LAMP环境(分离部署)
  16. 使用PHP实现蜘蛛访问日志统计
  17. matlab三点求法向量,matlab求法向量
  18. 2022第四届长安杯复盘(WP)
  19. 将边缘云装进胶囊数据中心需要几步?
  20. 图像语义分割实战:TensorFlow Deeplabv3+ 训练自己数据集

热门文章

  1. 达芬奇17新功能及安装教程
  2. 亚洲杯在即,中国男足志在必得。
  3. 通过微信公众号实现H5音频自动播放
  4. vivado使用笔记(1)--防止信号被综合优化dont touch
  5. 全面了解风险决策引擎【一】
  6. Kali Linux 2022新版发布
  7. ADS1278字符驱动
  8. 控制台调出Servers
  9. Eclipse中没有Servers或Dynamic Web Project的解决方案
  10. JVM和DVM的区别