一种基于形态学的边缘检测算法

2020-03-11 13:15罗朝阳张鹏超姚晋晋
计算机应用与软件 2020年2期
关键词:形态学算子边缘

罗朝阳 张鹏超 姚晋晋 王 彦

1(陕西理工大学机械工程学院 陕西 汉中 723000)2(陕西省工业自动化重点实验室 陕西 汉中 723000)

0 引 言

在图像处理的应用中,边缘检测是其研究的基础问题,边缘检测研究的目的是为了标记图像中灰度梯度最大的点,并且它在图像分割、目标识别等图像分析领域中广泛应用。在实际应用中,不仅要求边缘检测具有高精度、高稳定性,还要求具有实时性,并且能不受噪声的干扰。而传统的边缘检测算法,如Sobel算子、Roberts算子、拉普拉斯算子、Prewitt算子等[1],这些算子有的利用梯度最大值,有的利用二阶导数零交叉值,有的选择合适的阈值来获得图像边缘。尽管这些算法具有好的实时性能,但由于引入了各种形式的差分运算,导致抗干扰性能差,克服不了噪声所带来的影响。Log算子先利用高斯函数对原始图像作平滑或卷积运算,然后再求其拉普拉斯二阶导数,这种方法的计算量较大,难以满足实时性要求。Canny算法首先将图像经高斯平滑滤波,去除噪声,然后计算图像中的梯度强度,在经过非极大值抑制、双阈值检测后,将检测的边缘进行连接。性能虽然优于Log,但Canny算法中高斯滤波中的均方差及双阈值检测中的高低阈值设定需要人为地根据经验设定,且不同的图像阈值不同,不具有科学性及广泛适用性,而且此法对噪声较敏感,不易用于被噪声污染的图像。

数学形态学是由格论和拓扑学进行交叉融合延伸而来的一门学科,它是解决形态学图像处理问题中的基础知识,也是进行边缘检测、图像去噪、图像分割、纹理分析、特征提取、形状识别等操作中的一种非线性滤波技术。形态学操作的实质是通过结构元素与被检测图像的相互作用来生成最终的边缘图像,这种作用可以在很大程度上抑制噪声。因此,将数学形态学用于图像的边缘检测,不仅可以降低噪声的干扰,还可以保留具有最佳边缘检测图像中的原始细节[2]。但是,图像边缘检测的质量如何全由形态学中结构元素来决定,如果结构元素的类型单一,那么检测出的边缘图像所包含的信息也就不全面。因此,文献[3]提出了一种基于形态学的多结构元素多尺度图像边缘检测方法;文献[4]提出了一种基于多尺度多方向结构元素的形态学图像边缘检测算法;文献[5]提出了一种基于多尺度多结构元的数学形态学边缘检测算法,实现图像精细边缘的提取。但文献[3]的算法仅是对不同结构元素边缘图像的叠加,没有体现出多尺度的优势;文献[4]的算法中引入了梯度运算,对噪声敏感,且运算量较大;文献[5]虽然具有较强的去噪能力,但影响了所提取图像的清晰度。

为此,本文提出了一种不同尺度、不同类型的结构元素基于自适应权值形态学的边缘检测算法。从原理上讲,这种方法是利用大尺度结构元素优异的抗噪性能来去除噪声带来的干扰,从而准确地识别出边缘;利用小尺度结构元素具有的精准定位特性,由粗到细地扫描图像,最终得出每种类型图像的准确边缘信息。对于这些边缘信息,最后根据不同尺度的不同抗噪性能自适应地确定权重,并对每种尺度下的边缘图像进行加权合成。这样,即使在有噪声干扰的条件下仍然能够获得合格的边缘图像。

1 形态学边缘检测原理

数学形态学的方法是在集合论的基础上进行操作的,它的基本思想是利用某种特定形态的结构元素扫描图像,并匹配图像中与结构元素相对应的形状,从而获取图像中所含有的信息,以达到分析图像和识别目标的目的。图像的形态变换本质上是对图像集合进行交并运算的过程。

形态学操作可分为二值形态学和灰度形态学,这两种形态学操作都表示图像的某种集合与形态学元素之间的相互作用,而形态学元素的形状就决定了形态学操作之后输出图像中的形状信息。用数学形态学的方法处理图像,简而言之就是将结构元素构成矩阵在图形矩阵上移动,在移动的同时分别对两个矩阵进行交、并运算,最终得到图像的边缘矩阵,这个边缘矩阵就是要提取的边缘图像。形态学中的基本操作有腐蚀、膨胀以及将腐蚀和膨胀组合得到的打开和关闭操作。打开操作是先膨胀后腐蚀,而关闭操作是先腐蚀后膨胀。

假设f(x,y)为输入图像,g(i,j)为结构元素,⊕和Θ两种符号分别表示形态学运算中的膨胀运算符号和腐蚀运算符号,就可以得到灰度膨胀和灰度腐蚀的运算关系。

灰度膨胀运算:

(1)

灰度腐蚀运算:

(2)

设·和∘ 分别是开运算和闭运算的符号,进而可以得到灰度开运算和灰度闭运算。

灰度开运算:

f∘g=(fΘg)⊕g

(3)

灰度闭运算:

f·g=(f⊕g)Θg

(4)

在这些运算的基础上,就可以得到边缘检测算子。

膨胀型的边缘检测算子:

Ed(x,y)=(f⊕g)-f

(5)

腐蚀型的边缘检测算子:

Ed(x,y)=f-(fΘg)

(6)

梯度运算的边缘检测算子:

G(x,y)=(f⊕g)-(fΘg)

(7)

式(5)-式(7)这三种基础算子代表的意义分别是提取检测图像中的外轮廓线、内轮廓线和实际的欧氏轮廓线。但是这三种算子在实际应用中都不能克服噪声所带来的影响,仅仅适用于无噪声或噪声非常小的图像处理中。

2 多尺度形态学边缘检测

多尺度形态学边缘检测方法主要是通过使用不同尺度的形态学元素来扫描图像,从而获得图像中的边缘信息。在形态学的操作过程中,结构元素是其关键因素,它直接影响着最终的检测结果。选择不同尺度、不同类型的结构元素,最终的运算结果都将有着很大的不同。因此,选择合适尺度、合适类型的结构元素进行形态学边缘检测,既可以平滑图像噪声又能有效识别边缘。

由灰度形态学操作的基本特性可以知道,被腐蚀过的图像中,一般背景比原图像的背景稍暗,其中亮特征降低,暗特征增加;膨胀过的图像效果正好与腐蚀相反,亮特征增加,暗特征降低。开操作处理后的图像中亮特征的灰度降低了,而暗特征和背景无影响;闭操作处理后的图像中暗特征被削弱了,亮特征和背景无影响。所以,利用形态学的这种特性,文献[6]提出了一种能够抵抗噪声干扰的边缘检测算子,公式如下:

D1=(fΘB1⊕B2)⊕bi-(fΘB1⊕B2)·bi

(8)

D2=(f⊕B1ΘB2)∘bi-(f⊕B1ΘB2)Θbi

(9)

D=D1+D2+min{D1,D2}

(10)

式中:B1、B2是不同的结构元素;bi是3×3和5×5的不同方向的结构元素。文献[7]提出了一种抗噪声的边缘检测算子,公式如下:

yd=(((f∘B1)·B2·B3)∘B3⊕B2)∘B2-

((f∘B1)·B2·B3)∘B3

(11)

ye=((f∘B1)·B2·B3)°B3-

(((f∘B1)·B2·B3)∘B3ΘB2)·B2

(12)

Emax=max(ye,yd)

(13)

Emin=min(ye,yd)

(14)

Y=yd+ye+1.5(Emax-Emin)

(15)

式中:B1、B2是3×3不同方向的结构元素;B3是5×5的结构元素。

本文所提出的形态学边缘检测算法公式如下:

E1=(f∘B1·B2)⊕g-(f∘B1·B2)·g

(16)

E2=(f·B1∘B2)⊕g-(f·B1∘B2)·g

(17)

E3=((f∘B1·B2)∘g)⊕g-

((f·B1∘B2)·g)Θg

(18)

ZB=0.5(FIND(E1)+FIND(E2))

(19)

E=(E3ZB=E3ZB+0.5×(E1+E2)ZB)

(20)

式中:FIND()函数是求出图形边缘的坐标。

为了充分提取图像中不同方向的边缘信息,本文采用了如下的形态学结构元素:

小尺度结构元素的抗噪声能力较弱,但能获得完整的边缘细节信息;相反,大尺度的结构元素具有很强的去除噪声能力,但是所获得的边缘信息不细腻。为了得到好的滤波效果,本文将二者结合进行边缘滤波,而采用的去噪结构元素被定义为如下形式:

最后将每个结构元素获得的边缘图像采用如下的融合算法进行边缘融合。融合算法公式如下:

(21)

式中:λi为各结构元素检测的边缘图像进行融合时的加权系数;Gi为各结构元素提取的边缘图像。

按照所划分的区域,将特定类型目标船周围最近的船舶U按区域划分,分别对各个区域内的目标船周围最近船舶到目标船的距离d的分布进行统计分析见图3a),并在每个区域的中线方向上表示出该区域周围船舶到目标船的距离分布见图3b)。

根据信息熵的定义,图像的信息熵可以反映图像中所含信息的丰富程度,值的大小直接反映着图像中各种不同边缘所占的比例。因此,可以通过计算不同尺度、不同类型结构元素下的边缘图像中的信息熵来计算每种图像的权值,并根据此权值合成最终的边缘图形。

图像信息熵:

(22)

式中:L为图像灰度级;Pj为各灰度级出现的概率。

加权系数为:

(23)

本文构造的形态学迭代滤波器如图1所示。

图1 形态学迭代器

3 实验结果与分析

本文通过将256灰度级的Lena图像和Cameraman图像加入强度为0.1的椒盐噪声后作为测试图像,分别进行有噪声和无噪声的测试对比,来验证本文算法的有效性与可行性,并采用不同的评价标准对这些边缘图像进行评价。其中峰值信噪比(PSNR)衡量图形质量的好坏,值越大效果越好;结构相似性(SSIM)衡量两幅图像的相似程度,值越大效果越好;梯度模方差(GMSD)衡量图像梯度失真程度,值越小效果越好。评价结果如表1和表2所示。

表1 不同算法对Lena边缘图像进行的不同质量评价

表2 不同算法对Cameraman边缘图像进行的不同质量评价

从表1及表2可以看出,本文算法获取的边缘图像的PSNR值高于文献[6],更高于文献[7];边缘图像的SSIM高于文献[7],也高于文献[6];边缘图像的GMSD低于文献[6]和文献[7]。从这些评价标准中可以得出本算法优于文献[6]和文献[7]中的算法。

(a) 无噪声的Lena图 (b) Prewitt对(a)的边缘检测

(c) Canny对(a)的边缘检测 (d) 文献[6]对(a)的边缘检测

(e) 文献[7]对(a)的边缘检测 (f) 本文算法对(a)的边缘检测图2 无噪声的Lena图及对其的边缘检测效果图

图3展示了加入强度为0.1的椒盐噪声后的Lena图以及用不同算法所获取的边缘图。可以看出,加入噪声之后,对传统边缘检测的影响是很大的,在图3(b)-(c)中,已经很难辨识出Lena的轮廓边缘;在图3(d)-(f)中,仍然可以看到非常清晰的边缘轮廓,但图3(f)相对于图3(d)-(e)更完整、更准确。

(a) 椒盐噪声0.1的Lena图 (b) Prewitt对(a)的边缘检测

(c) Canny对(a)的边缘检测 (d) 文献[6]对(a)的边缘检测

(e) 文献[7]对(a)的边缘检测 (f) 本文算法对(a)的边缘检测图3 含椒盐噪声的Lena图及对其的边缘检测效果图

图4展示了无噪声的Cameraman图以及用不同算法所获取的边缘图像。可以看出,在没有噪声的情况下,这几种算法都能提取到边缘信息,但相比之下本文提出的算法更具有优势。

(a) 无噪声的Cameraman图 (b) Prewitt对(a)边缘检测

(c) Canny对(a)边缘检测 (d) 文献[6]对(a)的边缘检测

(e) 文献[7]对(a)的边缘检测 (f) 本文算法对(a)的边缘检测图4 无噪声的Cameraman图及对其的边缘检测效果图

图5展示了加入强度为0.1的椒盐噪声后的Cameraman图以及用不同算法所获取的边缘图。从图5(e)-(f)可以看出,加入噪声之后传统的边缘检算法很难提取出清晰的轮廓边缘;比较图5(d)-(f)三幅图,本文算法所提取的边缘更细腻。

(a) 有噪声的Cameraman图 (b) Prewitt对(a)的边缘检测

(c) Canny对(a)的边缘检测 (d) 文献[6]对(a)的边缘检测

(e) 文献[7]对(a)的边缘检测(f) 本文算法对(a)的边缘检测图5 有噪声的Cameraman图及对其的边缘检测效果图

综合图2-图5以及表1、表2,可以看出本文方法对噪声的添加并无影响,且具有很高的稳定性,相比于文献[6]、文献[7]和传统的边缘检测算子,本文方法所提取的边缘更准确、更完整且光滑性更好,这也能说明本文算法具有很好的实用性。

4 结 语

本文采用多类型、自适应加权形态学的边缘检测方法,在很大程度上消除了噪声对图像的干扰。这相对于微分算子而言具有更高的抗干扰能力和稳定性;相比于其他文献所获得的边缘更准确完整。实验结果也充分说明了本文方法的可行性和实用性,并且抗干扰性好,获取边缘的准确性高,是边缘检测的又一种优异方法。

猜你喜欢
形态学算子边缘
临床检验中血细胞形态学观察与分析
音乐科学研究中的思想实验——以音乐形态学研究中的四个重大发现为例
有界线性算子及其函数的(R)性质
Domestication or Foreignization:A Cultural Choice
QK空间上的叠加算子
一张图看懂边缘计算
一种改进的分水岭图像分割算法研究
在边缘寻找自我
走在边缘
边缘艺术