一种基于分区均值的噪声图像优化检测算法
2018-01-19沈同平王元茂
沈同平 高 洁 方 芳 王元茂
(安徽中医药大学 医药信息工程学院,安徽 合肥 230011)
0 引言
图像边缘是目标图像与图像背景相互区分的重要依据,也是原始图像中图像灰度变化最剧烈的区域.因为图像边缘与背景图像之间存在各种像素的干扰,因此图像边缘检测技术需要去除干扰,精确提取图像边缘信息,为进一步图像处理工作提供帮助.目前,图像边缘检测算法有很多种,图像边缘检测技术也广泛应用于多个领域,如车牌识别、人脸识别、植物形态研究、医学图像检索等.
数字图像在生成过程中,容易受各种因素的干扰,这种干扰会导致生成的数字图像含有各种噪声.噪声和图像边缘的特点非常类似,都在空间域中表现为灰度像素的不连续性;同时在频域空间中都同时表现为高频信号,导致数字图像中的噪声和图像边缘之间容易混淆,难以区分.因此,在数字图像边缘检测算法中,对噪声像素进行处理显得尤为重要.传统的边缘检测算法,如Sobel算子、Log算子、Canny算子等,这些算法仅直接对图像边缘检测,缺乏对噪声进行处理的机制,无法直接处理噪声图像.一些改进的算法,如基于小波变换理论的图像边缘检测算法,能够较好提取噪声图像边缘特征,但对噪声干扰严重的图像,该算法的适用性也不强.
不同的学者从不同的角度改进了噪声图像边缘检测算法.刘勍等基于粗糙集理论,提出一种新的图像边缘检测算法,该算法能够有效地从含噪图像中提取边缘信息,较好地克服了传统算法对噪声的敏感性问题.[1]石跃祥等基于数学形态学的方法,提出一种基于色彩空间的噪声图像边缘检测算法,该算法去噪效果明显,所得彩色图像轮廓清晰、细节丰富.[2]李敏花等提出自适应阈值图像边缘检测算法,该方法可根据图像噪声情况自适应选择滤波器尺寸和滞后阈值,具有良好的抗噪性能.[3]白建军等提出AMM算法,该算法结合了中值滤波和形态学方法,具有较强的抗噪鲁棒性,能较清晰地提取出图像的边缘,降低噪声对图像边缘的影响.[4]这些新的图像边缘检测算法虽然能够较好地获取噪声图像边缘,但这些算法也存在算法复杂、计算量大、实时性差等问题.
1 图像边缘检测原理分析
图像边缘是图像分割的重要依据,也是图像中灰度变化最明显的部分.根据边缘灰度变化特点,图像边缘分为阶梯状、脉冲状和屋顶状三种类型.边缘检测原理就是通过某种算法,将数字图像各个数据相邻域中数值变化最大的元素突出显示,将数字图像相邻域中变化不大的数据元素屏蔽或降低其灰度显示.边缘检测可以有效减少数据元素总量,保留图像重要的结构属性,是数字图像高效处理和计算机视觉的基础技术[5].
边缘检测算法的种类很多,算法计算复杂度和算法检测效果也不尽相同.图像边缘检测的步骤如图1所示.
图1 图像边缘检测基本步骤图
2 canny边缘检测算法
Canny边缘检测算子是一种广泛使用的图像边缘检测算法.它提取图像边缘的过程由高斯模糊、梯度计算、边缘细化、阈值确定、二值化显示图像等步骤组成.Canny算法相比其他算法要复杂很多,图像边缘的检测效果也优于一般边缘检测算法,但是其计算工作量较大,影响图像处理的效率.同时,Canny算法的性能由噪声识别率、边缘定位精度和虚假边缘抑制三个指标确定.噪声点和边缘点的判定,边缘阈值的选择高、低等因素,都是Canny算法存在的问题.
从图2的检测效果对比图我们可以看出,Canny算法对于未加噪声干扰的二值图像边缘检测效果非常清晰,但是对加了一定数值的高斯噪声干扰后,Canny算法检测效果不是很理想.特别是随着噪声干扰的增强,检测结果更加模糊,图像边缘被噪声点包围和干扰,基本无法区分图像边缘.
传统的Canny图像边缘检测算法对高斯噪声的鲁棒性较差.当高斯噪声干扰少时,则图像边缘定位精度相对较高;当高斯噪声干扰较大时,高斯噪声的平滑模板增大,计算量增大,同时由于过度平滑,边缘点容易丢失,使得边缘定位不准确.由此可知,噪声干扰的多少直接影响图像边缘定位准确的效果.
(a)原始图 (b)效果图 (c)σ2=0.02
(d)效果图 (e)σ2=0.7 (f)效果图图2 Canny算法对二值图像的检测结果图
3 本文提出的边缘优化算法
精确、有效、快速提取图像边缘是图像处理的基本前提.通过对目前基于一阶导数和二阶导数等图像边缘检测算法进行分析,发现图像边缘检测效果容易受噪声因素的干扰.因为噪声和边缘像素点同属于高频信号,难以区分,直接影响图像边缘特征提取的精确性.
本文提出的算法在对噪声图像进行边缘检测时,充分考虑噪声点像素对边缘特征提取造成的不利影响.该算法首先对图像噪声进行处理,尽可能地消除噪声点;然后结合改进的Canny算法,优化和改进图像边缘检测效果.
3.1 算法基本思想
本文首先根据噪声像素点与相邻元素之间的关联关系,依据分区均值滤波算法,尽可能对噪声点进行剔除,从而计算检测窗口内像素点的平均梯度值,保留目标图像自身特征数据,如边缘、纹理等.然后使用改进的Canny算子提取目标图像的边缘特征[6].通过这些算法的有机结合,能够有效抑制图像噪声,精确检测图像边缘,为后续的图像检测、识别工作奠定基础.
3.2 分区均值滤波算法
图3 5×5检测窗口分区图
为了提高算法的计算效率,通过对数字图像中元素特征的分析,本文采用的检测窗口大小为5×5,并将其划分为8个子区域,每个方向划分为2个子区域,如图3所示.
每个5×5检测窗口中都以中心点(x,y)的四个方向,分别划分为两个子区域.其中黑色圆圈所在区域为子区域.
数字图像在生成、传输、处理等过程中,容易受到各类噪声因素的干扰,在图像中产生随机的黑白亮点.这些黑白亮点的灰度值较大,容易与周边的元素区分.在对像素点值进行计算时,为了方便计算,一般将像素点值设置为0或255.根据噪声点像素值的特点,利用公式(1)可以对检测窗口内每个噪声点进行判断.当遇到像素点的值为0时,自动剔除此像素点.通过计算,可以对检测窗口内所有的噪声点进行剔除,有效消除噪声点对像素梯度值的影响.
(1)
其中:δ为噪声强度值,表示噪声点强度大小.
3.3 改进的Canny算法
首先利用高斯滤波函数对目标图像进行平滑降噪处理,高斯滤波函数公式如下:
(2)
在对目标图像进行平滑处理,需要计算x和y方向的偏导函数Gx和Gy,如式(3)和式(4)所示.
(3)
(4)
其中,σ作为高斯滤波器的空间尺度系数,控制图像平滑的程度.将原始图像f(x,y)分别与式(5)和式(6)做卷积运算.
P(i,j)=Gx*f(i,j);
(5)
Q(i,j)=Gy*f(i,j).
(6)
通过计算,得到目标图像每个像素值的梯度方向θ(i,j)和梯度值,分别为:
(7)
(8)
经过分区均值算法的计算,虽然可以得到噪声图像的全局梯度值,但不能有效提取图像的边缘特征.为了得到精准、细化的图像边缘,还需要对经过噪声平滑处理后的目标图像进行非极大值抑制.本文采用双阈值法检测和连接噪声图像边缘.双阈值法能够有效检测噪声图像的边缘顶点.算法检测思想如下:
a.对图像上的每个像素点梯度方向θ(i,j)上的梯度值S(i,j)进行计算,判断其是否为边缘点;
b.以每个像素点为中心,与四个方向相邻的像素点的梯度值进行对比,如果该像素点的梯度值S(i,j)最大,则该点可能是边缘点,予以保留,否则将该点像素梯度值设置为零.
c.设置高低阈值Th和Tl,其中Th表示高阈值,Tl表示低阈值.在候选的噪声图像边缘点集中,如果像素点梯度值S(i,j)≥Th,则该像素点为图像边缘点;如果像素点梯度值S(i,j)
4 算法仿真验证分析
为了验证本文算法对噪声图像的边缘检测效果,利用Matalab 2014a软件对含噪声图像进行边缘检测,并将检测结果与常规边缘检测算法Sobel和Canny进行比较.图4(a)是原始图片,图4(b)是Sobel算子检测结果,图4(c)是Canny算子检测效果,图4(d)是本文算法边缘检测效果.图5(a)是高斯噪声方差σ2=0.072的图片,图5(b)是Sobel算子检测结果,图5(c)是Canny算子检测效果,图5(d)是本文算法边缘检测效果.图6(a)是高斯噪声方差σ2=0.36的图片,图6(b)是Sobel算子检测结果,图6(c)是Canny算子检测效果,图6(d)是本文算法边缘检测效果.
(a) 原始图像 (b) Sobel算法
(c) Canny算法 (d) 本文算法
图4几种算法对噪声图像的边缘检测效果
(a) σ2=0.072 (b) Sobel算法
(c) Canny算法 (d)本文算法
图5几种算法对噪声图像的边缘检测效果
(a)σ2=0.360 (b) Sobel算法
(c) Canny算法 (d) 本文算法
为了进一步验证本文算法的有效性,采用图像质量评价指标MSE(Mean square error)和SNR(Signal to noise ratio)对检测的图像进行验证:
(9)
其中:i和j为像素点的位置坐标,i,j=0,1,2,…,255,M和N表示图像像素点总共有M行N列.
(10)
不同噪声检测算法滤波结果的均方差和信噪比见表1和表2.从图片的检测结果以及表1和表2的仿真数据可以看出,不管是高强度噪声还是低强度噪声,本文提出的噪声图像边缘检测算法都具有更好的抗噪能力,同时能够有效保留图像边缘信息,即噪声图像边缘检测质量优于传统检测算法.
表1 不同噪声检测算法滤波结果的均方差
噪声密度0 720 36Sobel算法0 06540 2657Canny算法0 05980 2431本文算法0 01560 0429
表2 不同噪声检测算法滤波结果的信噪比 dB
噪声密度0 720 36Sobel算法5 36292 3651Canny算法5 48632 4693本文算法19 365817 2635
5 结语
本文在对数字图像噪声像素干扰分析的基础上,针对边缘检测的精度与抑制噪声之间的矛盾,提出一种新的噪声图像边缘检测算法.该算法采用分区均值噪声检测和改进的Canny算法相结合的边缘检测算法,其中分区均值噪声算法能够有效降低数字图像中噪声因素的干扰,而改进的Canny算法能够精确提取噪声图像边缘,两种算法的有机结合,能够有效抑制图像噪声,精确检测图像边缘,为后续的图像检测、识别工作奠定基础.实验结果表明,本文算法检测的边缘特征优于Sobel和Canny等经典图像检测算法,具有一定的应用价值.
[1]刘勍,魏弘博,应隽,等.一种基于粗糙集的脉冲噪声图像边缘检测算法[J].自动化与仪器仪表,2011(6):123-124.
[2]石跃祥,康蕴,刘海涛.基于数学形态学的彩色噪声图像边缘检测算法[J].计算机应用研究,2012,29(3):1172-1174.
[3]李敏花,柏猛,吕英俊.自适应阈值图像边缘检测方法[J].模式识别与人工智能,2016,29(2):177-184.
[4]白建军,张欣,陈其松.基于自适应滤波的噪声图像边缘检测方法[J].计算机仿真,2012,29(3):334-337.
[5]沈德海,侯建,鄂旭,等.分区均值的自适应噪声图像边缘检测算法[J].现代电子技术,2015(8):1-3.
[6]张志刚,郑冰.基于Sobel算法的细胞边缘提取技术[J].微计算机信息,2011(12):128-129.
[7]谭筠梅,王履程,鲁怀伟.一种有效去除图像中脉冲噪声的滤波算法[J].兰州交通大学学报,2011,30(1):18-21.