文昊天,王小鹏,杨文婷,王 伟
(兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)
如何构造合适的结构元素是自适应形态学运算方法中的关键[1~5]。文献[6]提出了一种利用自适应形态学滤波和融合辅助彩色图像结构信息的HSI恢复方法,通过图像信息构造每个像素形态特征的自适应结构元素,同时去除混合噪声,保持良好的空间结构;文献[7]提出了一种自适应形态学闭运算,利用惯性张量估计图像局部结构几何特征,之后根据几何特征构造结构元素;文献[8]提出了基于形态学多结构元边缘提取算子,既有良好的边缘提取特性,又可很好地解决了噪声抑制和保持图像边缘细节之间的矛盾,通过灰度加权平均值作为阈值进行二值化,更加突出了边缘效果;文献[9]提出一种计算中心像素与邻域像素均方差的方法对形态学边缘检测算子进行改进,有效减少噪声;文献[10]利用图空间提出了相似权概念,定义了自适应结构元素并提出了一种自适应形态学算子;文献[11]提出了一种利用结构纹理模型与自适应数学形态学相结合的织物瑕疵检测算法。但固定结构元素在对图像做形态学运算时容易产生新的人为目标、改变目标的边缘位置、破坏原有目标间的过渡区边界和丢失小目标等。
本文在线性结构张量[12]的基础上提出了椭圆结构元素。因为椭圆结构元素介于线形和圆形之间,所以这种自适应形态学膨胀和腐蚀可以在不产生人为边缘的情况下丢失较少的图像暗细节和亮细节,而相应的开闭运算可以增强和连接图像暗细节和亮细节特征,并且不会对图像边缘过度拉伸,有较好的边缘保持和抗噪能力。
如图1所示,首先构造图像线性结构张量;然后计算其特征值和特征向量,因为线性结构张量为正定矩阵,所以必有两个不为零的特征值和特征向量,利用该特征属性构造椭圆的长短半轴和椭圆与x轴的夹角;最后定义基于椭圆结构元素的膨胀和腐蚀运算,组合出自适应形态学开闭运算。
图1 椭圆结构元素的自适应形态学运算方法流程图
对于图像f,任意像素点(i,j)的x方向和y方向梯度值表示为Ix(i,j)和Iy(i,j),则结构张量T(structure tensor)可定义为
(1)
由于T特征值有一个为0,结构张量只能得到一维的图像结构信息,因此采用线性结构张量代替结构张量来描述图像结构信息,线性结构张量(linear structure tensor)LS定义为
(2)
式中Gσ为方差σ的高斯函数,*为卷积,LS(i,j)的特征值和特征向量分别记为λ1,λ2(λ1>λ2)和v1,v2。如果图像f中像素点(i,j)处λ1>λ2≈0,则v1方向灰度变化强度大于v2方向,即为边缘区域;如果λ1≈λ2>0,则v1方向上灰度变化强度等于v2方向,即为角点;如果λ1≈λ2≈0,则v1方向和v2方向灰度强度变化不大,即为平坦区域。
假设椭圆结构元素E(a,b,φ)最大长半轴为M,其中a为椭圆长半轴,b为椭圆短半轴,φ为椭圆长半轴与x轴的夹角,如图2所示,a,b,φ分别定义为
图2 椭圆结构元素
(3)
式中v1,x1,v1,x2为v1的分量。
自适应形态学膨胀腐蚀所采用的结构元素随图像内容自适应改变其大小和形状,而经典形态学结构元素则是固定不变。对于椭圆结构元素自适应形态学膨胀而言,当结构元素在图像弱边缘时,此时以长半轴为a,短半轴为b的椭圆结构元素为窗取像素最大值;当结构元素在图像强边缘时,λ1≫λ2≈0,此时以长半轴为a≈M,短半轴为b≈0的椭圆结构元素为窗取像素最大值;当结构元素在图像角点时,λ1≈λ2≫0,此时以长短半轴为a≈b≈M/2的椭圆结构元素为窗取像素最大值;当结构元素在图像平坦区域时,λ1≈λ2≈0,以长短半轴a≈b≈M为的椭圆结构元素为窗取像素最大值。腐蚀与膨胀相反,在上述情况中取像素最小值。因为在图像强边缘时椭圆结构元素短半轴很小,类似于线形结构元素,因此相比圆形结构元素,椭圆结构元素自适应形态学膨胀和腐蚀不会丢失过多的图像暗细节和亮细节,在图像平坦区域椭圆结构元素长半轴约等于短半轴,类似于圆形结构元素,所以相比线形结构元素不会形成过多的人为边缘。
椭圆结构元素自适应形态学膨胀α和腐蚀β运算为
(4)
式中E为椭圆结构元素,f为图像,∨和∧分别为定义域E中取最大像素值与最小像素值运算。开闭运算是膨胀和腐蚀的组合,衍生的形态学自适应开闭定义为
γE(f)=(α∘β)(f),ψE(f)=(β∘α)(f)
(5)
在MATLAB R2017平台下进行了仿真。图3分别对方向自适应线形结构元素、圆形结构元素和椭圆结构元素做对比,选取386×386大小的星形圆环图像做M=3,M=4和M=5(从左到右)膨胀(b,c,d)和腐蚀(e,f,g)仿真实验。在膨胀图像中,方向自适应线形结构元素膨胀使星形边缘区域变形,如图3(b)中第三幅图星形边缘变形较大;圆形结构元素膨胀使图像暗细节消减过多,可以看出图3(c)中第三幅图暗细节几乎消失;自适应椭圆结构元素膨胀运算未丢失过多暗细节,虽然图3(d)中角点区域有瑕疵,这主要是由于结构元素较大导致的,但其他两种结构元素膨胀运算使图像特征恶化更为严重。在腐蚀图像中,方向自适应线形结构元素腐蚀使圆环边缘有撕裂现象,图3(e)中第一幅图第二环和第三环较为明显;圆形结构元素腐蚀运算亮细节丢失较多,图3(f)中第三幅图像亮细节消减过多;图3(g)中自适应椭圆结构元素腐蚀运算保留了更多亮细节。
图3 膨胀腐蚀图像对比
图4为Lena图像(512×512)开闭运算仿真实验(M=5)。在开运算图4(b)~(d)中可以看出,自适应线形结构元素导致图像有部分撕裂,如右上方白色条带,并且改变了图像部分特征;圆形结构元素虽然没有导致图像变形,但是图像特征被破坏,如羽毛细节模糊;椭圆结构元素增强和连接了图像暗细节特征,帽子顶部和羽毛部分较明显。在闭运算图4(e)~(g)中,自适应线形结构元素改变了图像边缘特征,如帽子整体被拉长,这是因为线形结构元素形状极端,在边缘区域引入平坦区域像素值,在平坦区域引入边缘区域像素值导致的;圆形结构元素丢失过多图像细节,如帽子纹理细节丢失;椭圆结构元素增强和连接了图像亮细节特征,如帽子上的纹理细节,并且开闭运算都不会对图像边缘过度拉伸。
图4 Lena开闭运算图像比较
为了定量分析本文方法的边缘保持性能,计算原图像与形态学运算后的梯度幅值相似性偏差。梯度幅值[13]能够反映图像结构信息,生成准确度较高的图像质量预测分数,当图像失真时会有不同程度的梯度幅值退化,因此可以计算梯度幅值相似性衡量图像质量。
表1给出了Lena分别用M=3,M=4,M=5的开闭运算梯度幅值相似性偏差,可以看出,椭圆结构元素自适应形态学运算梯度幅值偏差较小,形态学运算后图像失真较小。
表1 Lena开/闭运算梯度幅值相似性偏差 10-5
为了验证椭圆结构元素自适应运算的抗噪性能,对大小为512×512的Cameraman图像(图5)加入均值为0,方差为0.01的高斯白噪声并做自适应形态学开运算(M=5),并对比三种结构元素梯度幅值相似性偏差,绘出了高斯白噪声方差从0到0.2的方向自适应线形结构元素、圆形结构元素和自适应椭圆结构元素的梯度幅值相似性偏差。图5中,方向自适应线形结构元素开运算使人物脸部变形且形成了过多的人为边缘,圆形结构元素开运算虽然滤出了大部分噪声,但是图像细节丢失过多,而椭圆结构元素开运算抗噪性能较好,保留了大部分图像细节。在图5(e)中,当高斯白噪声方差为0时,方向自适应线形结构元素开运算失真程度最大,随着噪声方差逐渐变大,开运算后的图像失真程度成下降趋势,这是因为对于每个像素值而言,由于在做形态学开运算时方向自适应线形结构元素定义域中包含的像素值相对圆形结构元素和椭圆结构元素较少,所以对邻域影响较低,而失真程度较高是因为噪声图像中邻域像素值与中心像素值相差可能较大,这会导致用其做开运算时使中心像素引入大量噪声,形成大量的人为边缘,圆形结构元素开运算虽然不会形成大量人为边缘,但会丢失图像边缘细节,椭圆结构元素自适应形态学开运算在抑制噪声的同时尽量保持图像边缘,失真程度最小。
图5 高斯白噪声开运算仿真实验
图6是一幅带有周期噪声大小为256×256的遥感图像(M=4),对其做闭运算,与开运算一样,方向自适应线形结构元素闭运算使图像边缘变形并且产生了大量人为边缘;圆形结构元素闭运算虽然抑制了周期噪声,但图像细节属性丢失过多;椭圆结构元素闭运算抑制了噪声,在产生少量人为边缘情况下边缘保持效果较好。
图6 周期噪声闭运算仿真实验
为了抑制图像做形态学运算导致边缘属性改变的情况,提出了一种介于线形(方向自适应)和圆形之间的椭圆结构元素,由于椭圆结构元素随着目标的改变而自适应改变,连接图像明暗特征属性的同时尽可能适应目标边缘,因此本文方法对图像做自适应形态学运算时梯度幅值偏差较小,抗噪性能较好,图像失真较低。