融合数学形态学滤波技术的边缘检测算法

2018-09-17 10:13李东兴高倩倩蔡亚南吴秀东
关键词:邻域梯度幅值

李东兴,高倩倩,张 起,蔡亚南,吴秀东

(山东理工大学 机械工程学院,山东 淄博 255049)

边缘是图像的重要特征之一,边缘检测是对图像特征提取和纹理分析的基础,在数字图像领域有着重要的应用价值[1-2].传统的边缘检测算法包括Roberts、Prewitt、Sobel、Laplacian及LOG(Laplacian of Gaussian)等微分算子.这类算子是基于微分的边缘检测算法,虽然计算简单、运算速率快,但对噪声的响应比较敏感[3-4].在最优化理论思想上所推导的传统Canny算法在实际应用中具有局限性[5].该算法采用高斯滤波器平滑滤波,不仅会引起去噪图像的过度光滑,而且会出现无法检测复杂图像中弱边缘的问题.此外,该方法在计算梯度幅值时没有考虑斜方向上像素带来的影响,双阈值法检测和连接边缘点时增加了边缘定位的不确定性,边缘检测的效果在一定程度上受到了影响.因此,本文提出融合数学形态学滤波技术改进的Canny边缘检测算法,用数学形态学滤波技术代替传统的高斯滤波,多方向上计算梯度的幅值与方向,并根据梯度方向信息进行边缘点的检测和连接.

1 传统的Canny边缘检测算法和缺陷分析

1.1 传统的Canny边缘检测算法

传统Canny算法的基本思想是对图像选取一定的高斯滤波器平滑去噪,再寻找滤波后图像梯度的局部极大值,进而确定边缘图像[6-7].

Canny算法所遵循的3个准则为:

(1)信噪比准则:对边缘的错误检测率尽可能低,确保输出的信噪比最大.

(2)定位精度准则:所检测的边缘点偏离真实边缘点的距离最小[8].

(3)单边缘响应准则:对同一边缘的响应次数尽可能低,对单边缘最好只有一个响应[9].

1.2 Canny算法缺陷分析

(1)传统Canny算法采用高斯滤波器对含噪图像平滑滤波,其中高斯函数的方差需人为设定,图像平滑去噪的同时无法保证保留较多的图像细节信息,易造成复杂图像缓变边缘的丢失,一些弱边缘信息无法检测而影响图像边缘的完整性.

(2)传统Canny算法用一阶偏导的有限差分计算梯度幅值,只提取水平方向和竖直方向的梯度会造成其它方向上边缘信息的丢失.

(3)传统Canny算法采用双阈值法检测和连接边缘时依据梯度幅值的信息,易造成虚假边缘和边缘连续性之间的矛盾,无法在抑制噪声的同时保持图像的细节边缘.

2 数学形态学的基本原理与算法

数学形态学是用具有一定形态和大小的结构元素构造图像运算获取图像信息,使后续的识别工作能够抓住目标对象最为本质的形状特征[10].膨胀运算、腐蚀运算、开运算和闭运算是数学形态学的4种基本运算.假设输入的原始图像f(i,j)的定义域为Df,结构元素b(i,j)的定义域为Db,则这4种基本运算的定义分别如下:

腐蚀运算

(f⊖b)(s,t)=min{f(s+i,t+j)-

b(i,j)|(s+i,t+j)∈Df,(i,j)∈Db}

膨胀运算

(f⊕b)(s,t)=max{f(s-i,t-j)+

b(i,j)|(s-i,t-j)∈Df,(i,j)∈Db}

开运算

fb=(f⊖b)⊕b

闭运算

f•b=(f⊕b)b

腐蚀运算能够将物体的边界消除,滤除掉一切不能完全包括结构元素的噪声点.膨胀运算的作用和腐蚀运算恰好相反,它可以使图像的边界扩大和连通图像的断裂部分.开运算能够在平滑图像轮廓的同时断开狭窄的连接和去除细小的突出部分.闭运算则可以使图像轮廓变光滑,连接狭窄的间断口以及填补比结构元素小的孔洞.

3 融合数学形态学滤波技术改进的Canny边缘检测算法

本文在Canny算法中融合数学形态学对图像进行滤波去噪,利用十字形结构元素对图像进行先闭运算后开运算的操作以滤波去噪,采用改进的8邻域从多方向上计算梯度幅值,然后进行非极大值抑制,最终根据梯度方向信息进行边缘点的检测和连接.

融合数学形态学滤波技术改进的Canny边缘检测算法具体步骤如下:

(1)采用数学形态学对图像滤波去噪

本文选用两个尺度大小分别为5×5和3×3的十字形结构元素b1,b2.

结构元素b1的尺度相对较大,其去噪能力较强却丢失掉较多的图像细节.结构元素b2的尺度较小,虽能保留图像细节信息但其去噪效果差.综合这两种结构元素的优点,利用结构元素b1和b2对图像做闭、开运算,其运算过程为

I=f•b1b2

式中:f为输入的原始图像;I为平滑降噪后的图像.

本文首先利用5×5的结构元素对图像闭运算操作,在抑制暗噪声的同时减少了部分图像细节;其次通过3×3结构元素的开运算实现对亮噪声的抑制,并对边缘图像的细节进行补偿.用数学形态学滤波代替高斯滤波,利用两个不同的结构元素对图像进行闭、开运算,能在有效去除噪声的同时保留更多的细节信息.

(2)采用改进的8邻域计算梯度幅值和方向

由于图像的边缘可能通过任意角度以像素的形式阵列,因此可先通过分别计算平滑后图像3×3窗口中心像素的x方向、45°方向、y方向以及135°方向的一阶偏导数有限差分均值,进而确定像素点的梯度幅值.由于中心像素的各个方向对梯度幅值都有影响,所以选择对距离邻域中心像素点最近的点加权,可以减少误差达到增强抑制噪声的效果.参考Sobel算子,本文所采用3×3窗口的4个方向的梯度算子如图1所示.

图13×3窗口的梯度算子

Fig.1Gradientoperatorof3×3window

点(i,j)处在x方向的偏导数为

点(i,j)处在45°方向的偏导数为

点(i,j)处在y方向的偏导数为

点(i,j)处在135°方向的偏导数为

3×3窗口中心像素的梯度幅值M(i,j)和梯度方向θ(i,j)的计算方法如下:

θ(i,j)=arctan[Gy(i,j)/Gx(i,j)]

(3)非极大值抑制

图像边缘的确定仅依据全局梯度不能保证边缘检测的完整性,必须保留局部梯度最大的点以增强完整性.沿梯度方向对以点(i,j)为中心3×3邻域内的像素点插值,若沿梯度方向上两个相邻像素点的插值小于该点的梯度幅值,则该点为候选边缘点,反之则不是,因而得到候选边缘图像N.

(4)根据梯度方向信息检测和连接边缘点

梯度幅值和梯度方向是图像像素点中的重要信息,在采用基于梯度幅值信息的双阈值法检测和连接边缘点时会导致低强度边缘点和噪声点无法区分.但在梯度方向上边缘点和噪声点是不同的,边缘点的梯度方向常指向边缘的法线方向,而噪声点的梯度方向是不定的.因此,根据梯度方向信息能够将边缘点和噪声点区别开.

在以候选边缘点G(i,j)为中心的8邻域内,ligt={(0,t{,t=1,…,8}为中心点到各点的连线,其法线方向取-π/4,0,π/4,π/2之一.Angt为中心点及其邻域内一点t的平均梯度方向及其连线ligt法线方向夹角的绝对值,其中Angt在取绝对值之前要将其归在(-π/2,π/2)中.当中心点和邻域内的点t在同一边缘时,因为边缘点的梯度方向为该点处边缘的法线方向,ligt应小于较小值T,而噪声点的ligt值常常比较大.因此,可从梯度方向对边缘点检测和连接,其具体实现步骤如下:

①对经非极大值抑制后得到的候选边缘图像N进行扫描,若G(i,j)的8邻域内有其他的候选边缘点,将执行下一步;否则跳转到步骤⑥.

②由梯度方向计算出点(i,j)与其8邻域内所扫描的第一个候选边缘点的Angt1,若Angt1

③继续扫描点G(i,j)的8邻域内其他未被识别为边缘点tp的候选边缘点,算出与之对应的Angtp,若找到满足Angtp

④将邻域中心点及满足Angtp

⑤若tp的8邻域内存在未被识别为边缘点的候选边缘点,则该点被识别为边缘点,并以该点作为新的起点继续连接,直到所有新的起点的8邻域内不含有新的未被识别的候选边缘点.

⑥继续扫描图像N看是否有新的候选边缘点,若该点未被识别为边缘点,则跳转到步骤①,否则扫描其他点,一直到无法检测到新的未被识别为边缘点的候选边缘点停止.

4 实验结果与分析

本文选取了2幅尺寸大小为256×256的图像,分别运用传统的Canny算法、文献[9]中改进的算法以及本文所提算法对图像进行实验验证.本文所提出的算法检测和连接边缘时使用了较小值参数T,由实验可知,当T过小时,边缘会出现断续现象,对于不同图像当T取5°~30°时,效果比较理想,本文中T取20°,不同算法的实验结果如图2所示.

图2中,图(a)和图(a′)分别为Cameraman和Lena原始图像,图(b)和图(b′)分别为传统Canny算法相应的边缘检测结果,图(c)和图(c′)分别为文献[9]所用算法处理的边缘检测结果,图(d)和图(d′)分别为本文算法相应的边缘检测结果.由图2可知:传统Canny算法对图像的去噪性能较差,检测结果中有较多的虚假边缘存在;文献[9]所提出的算法在一定程度上提高了边缘检测的效果,但目标边缘淹没在背景噪声中,不利于后续的边缘提取;本文提出的算法明显减少了虚假边缘,并且目标边缘定位较准确,较好地保持了图像的边缘强度,有丰富

(a) (b) (c) (d)

(a′) (b′) (c′) (d′)图2 原始图像及不同算法的边缘检测结果Fig.2 Original images and edge detection results of different algorithms

的边缘细节和完整的轮廓信息,能有效地检测出图像的边缘.

本文运用均方误差MSE(Mean Square Error)、峰值信噪比PSNR(Peak Signal to Noise Ratio)、相关系数以及信息熵对不同算法定量比较.

峰值信噪比是评价图像质量的重要参数,单位是dB,其公式为

不同算法的MSE和PSNR值见表1.由表1可以看出,本文所提算法的MSE得到有效降低的同时,PSNR得到提高,一定程度上说明了本文算法的有效性.

表1 不同算法的MSE和PSNR值
Tab.1 MSE and PSNR values of different algorithms

边缘检测图像所用算法MSEPSNR图1(b)图1(c)图1(d)Canny算法213 7.614.8文献[9]算法136 9.916.7本文算法954.718.3图1(b')图1(c')图1(d')Canny算法232 5.114.5文献[9]算法162 1.516.3本文算法915.218.5

相关系数是反映两幅图像之间相关程度的评价指标,相关系数的值与数值1间的差距越小,表明两幅图像的相似度越高,其公式为

C(A,B)=

信息熵代表图像中含有的信息量,其定义为

式中:H为图像的信息熵;L为图像中所含灰度级的个数;Pi为当像素的灰度值为i时的概率.

不同算法的相关系数和信息熵的值见表2,可以看出本文算法的相关系数和信息熵的值均大于传统Canny和文献[9]中所改进算法的相应值,改进算法所处理的图像与原始图像的相关性更强,能够很好地保留原始图像的边缘信息,含有丰富的原始图像信息,从而能够体现原始图像丰富的本质特性.

表2 不同算法的相关系数和信息熵值
Tab.2 Correlation coefficient and information entropy values of different algorithms

评价标准原始图像Canny算法文献[9]算法本文算法相关系数图1(a)0.831 50.904 80.935 7图1(a')0.842 60.885 20.940 6信息熵图1(a)1.367 93.264 53.845 2图1(a')1.426 13.534 84.296 5

5 结束语

本文针对传统Canny算法的不足提出了融合数学形态学滤波技术改进的Canny边缘检测算法.采用数学形态学对图像滤波去噪替代传统的高斯滤波,从中心像素的4个方向确定像素点的梯度幅值,实现了根据梯度方向信息替代双阈值法对边缘点的检测和连接,从而获得图像边缘.实验结果表明,该算法降低了均方误差,提高了峰值信噪比,所检测的图像边缘包含了更加丰富的边缘细节和更加完整的轮廓信息,能够有效平滑噪声和减少图像虚假边缘,是一种有效的边缘检测方法.

猜你喜欢
邻域梯度幅值
基于混合变邻域的自动化滴灌轮灌分组算法
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
AFM轻敲模式下扫描参数对成像质量影响的研究
一种自适应Dai-Liao共轭梯度法
稀疏图平方图的染色数上界
《液压与气动》常用单位的规范
一个具梯度项的p-Laplace 方程弱解的存在性
基于邻域竞赛的多目标优化算法
基于S变换的交流电网幅值检测系统计算机仿真研究