王帅,刘光宇,曹禹,冯伟,赵恩铭,邢传玺
(1.大理大学 工程学院,云南 大理671003;2.云南民族大学 电气信息工程学院,云南 昆明 650504)
图像信息作为当前信息化时代的主要载体,在信息的传递和交流方面得到了较大的进步,但是图像信息也存在着一些不足.数字图像在获取、传输以及处理的过程中通常会受到外界噪声的干扰、数字化设备的硬件限制以及信号之间转换产生的误差影响,从而产生图像噪声,对图像质量产生不利影响,为图像后续的处理和研究带来很大不便[1].因此,图像噪声去除是图像处理中的一个重要领域.
图像噪声在图像中的分布和大小不规则,即具有随机性.根据图像噪声的概率分布类型进行分类可以分为高斯噪声、均匀分布噪声以及脉冲噪声.其中双极脉冲噪声也被称为椒盐噪声.椒盐噪声是数字图像处理中一种常见的典型噪声,类似于随机分布在图像上的胡椒和盐粉微粒.一般是由于图像采集过程中设备发生故障或信号传输过程出现误差而产生,它是一种随机出现的暗点(胡椒点)或亮点(盐点),可能是亮的区域有黑色像素,也有可能是在暗的区域有白色像素,会导致图像受损像素取最小或最大[2].
噪声的存在对图像产生诸多不利影响,所以在图像处理中,研究人员对去除椒盐噪声的研究从未停止过.如经典中值滤波(MF)计算过程简单、滤波处理速度快,但滤波效果随着椒盐噪声密度增加而变差[3];李瑞琦等[4]利用小波变换和中值滤波相结合的方法对图像进行去噪,得到比单独使用中值滤波或小波变换去噪效果要好的图像.兰霞等[5]提出了一种顾及影像细节信息的迭代中值滤波,对影像中的噪声像元进行逐步修复,进一步优化了噪声点;肖蕾等[6]通过建立噪声浓度与自适应中值滤波窗口尺寸之间的函数关系,根据噪声浓度确定自适应中值滤波窗口尺寸进行去噪,得到更好的去噪效果.
传统的自适应中值滤波算法根据经验设定最大最小窗口尺寸, 对不同噪声浓度的图像处理具有一定的局限性.本文在自适应中值滤波算法的基础上进行部分改进,添加一个限制条件,然后对实验图像添加不同噪声浓度的椒盐噪声,并通过仿真实验来对比中值滤波算法、自适应中值滤波算法以及本文改进的自适应中值滤波算法的去噪效果. 仿真实验结果显示中值滤波算法和自适应中值滤波算法以及改进的自适应中值滤波算法都可以在椒盐噪声浓度小的情况下去除添加的椒盐噪声,提升图片的质量,但是去除效果还是存在差别,总体上改进后的自适应中值滤波算法去噪效果更好.当添加的椒盐噪声密度大于0.5 时,改进后的自适应中值滤波算法有着比中值滤波算法、自适应中值滤波算法更好的去除椒盐噪声效果.
1971年,中值滤波由Turky 最先提出,它是一种抑制噪声的非线性滤波方法[7].中值滤波算法是通过排序选择的基本思想来消除孤立的噪声点,首先选择图像中一个邻域内的像素值并进行排序,然后用该邻域像素值排序得到的中值来代替待处理的像素,让邻域内的像素值更趋近于真实值.
中值滤波首先要定义一个长度为L 窗口,并且这个窗口的长度L 大部分情况下是奇数,因为当L 是偶数时候,中值滤波器识别效果较差,所以L 需等于2N+1,N 为正整数,因此中值用来表示[8].X(i)为邻域内的不同像素值,Y(i)为中值滤波器所输出的像素中值.则Y(i)等于
图1 中值滤波原理Fig.1 Schematic of median filtering
图2 中值滤波结果Fig.2 Median filtering results
通过图1中滤波结果可以得出,即使图像受到噪声浓度低的噪声干扰,也会使得图像质量大大降低,对后续的图像处理产生不利的影响.在噪声浓度低的情况下,中值滤波处理后的图像基本上将图像表面存在的噪声完全去除,但去噪后的图像清晰度有所下降.中值滤波算法无法同时兼并图像清晰度和去噪效果,这是中值滤波算法的缺点之一.
中值滤波算法因受窗口尺寸固定不变的影响,导致其在高浓度噪声的干扰下去噪效果并不显著.不同窗口尺寸的去噪效果是存在差异的,当过滤噪声的窗口尺寸越小,图像细节保存较为理想,但对噪声的过滤不是很理想;反之,虽然可以获得更好的去噪效果,但是在图像细节以及清晰度方面效果差强人意[11].
与中值滤波算法相比, 自适应中值滤波算法最关键的改进就是可以在已设置好滤波器参数的情况下改变滤波器窗口尺寸.改进后的自适应中值滤波算法对图像的滤波处理有更好的滤波效果,而且可以较大程度的将图像中的细节保存下来,这是中值滤波技术无法相比的[12].自适应中值滤波技术算法主要由两个方面组成,具体算法如下:
第一层ZA1=Zmed−Zmin,ZA2=Zmax−Zmed,如果ZA1>0且ZA2>0,则会转到第二层;否则增大窗口尺寸,如果窗口尺寸小于等于Smax则重复第一层,否则输出像素中值Zmed.
第二层为ZB1=Zxy−Zmin,ZB2=Zmax−Zxy,如果ZB1>0且ZB2>0,则输出当前像素值Zxy,否则输出Zmed.
其中Zmin为在Sxy滤窗内像素灰度最小值,Zmax是在Sxy滤窗内像素灰度最大值;Zmed是在Sxy滤窗内像素灰度中值;Zxy是图像像素点(x,y)处的灰度值;SmaxSxy表示中心像素点(x,y)在滤波时所对应的窗口尺寸大小(Smin为窗口尺寸的最小值,Smax为 窗口尺寸的最大值[13)].
自适应中值滤波算法流程图如图3所示.自适应中值滤波算法适应于椒盐噪声浓度较高的噪声去除,通过实时调整滤波窗口的大小,获得合适的窗口尺寸对图像进行去噪处理,可以同时兼顾去噪效果和保存图像细节.自适应中值滤波技术与中值滤波技术相比,不但受外界环境的影响小,而且提升了去噪之后的图片质量,图像去噪也更加简便快捷[14].
图3 自适应中值滤波算法流程Fig.3 Flowchart of the adaptivemedian filtering algorithm
由于椒盐噪声的分布往往处于极值位置,因此取中值往往可以有效避开噪声,这也是中值滤波能有效滤除椒盐噪声的原因[15].椒盐噪声识别方法如下:如果像素在最小灰度值0 和最大灰度值255 之间,则被视为非噪声像素并保持原像素值.如果像素为最小灰度值0 或最大灰度值255 的椒盐像素则进行噪声去除.但是随着噪声点的增多,去除噪声效果却越来越差,特别在高浓度噪声污染时,由于噪声的随机性,中值点与真实像素点的偏差越来越大,甚至有可能取到噪声点,导致图像中较多细节被误判为椒盐噪声.
因此,本文对自适应中值滤波算法进行部分改进,为了防止在取中值时取到噪声点,因此在自适应中值滤波技术第一层A1=Zmed−Zmin,A2=Zmax−Zmed的基础上,对像素邻域内判断滤窗内灰度的最大值Zmax与滤窗内灰度的最小值Zmin之差是否大于Zmed,当待处理图像中存在椒盐噪声时,则Zmax数值为255,Zmin数值为0,Zmax−Zmin>Zmed,进一步判定椒盐噪声的存在,并在原有算法输出中值Zmed的基础上进一步改进,改为输出当前窗口中除去极大、极小灰度值的其余像素的灰度均值,否则输出Zxy坐标(x,y)处的灰度值.具体实现步骤如下:
第一步:设初始化滤波窗口尺寸大小Sxy为3,并求出Zmax、Zmed、Zmin、Zxy的数值;
第二步:求出A1=Zmed−Zmin,A2=Zmax−Zmed,并求Zmax和Zmin的差值.若A1>0,A2>0且Zmax−Zmin>,Zmed则转第三步,否则增大窗口尺寸;并判断Sxy是否大于Smax是则输出Zxy,否则转第一步.
第三步:B1=Zxy−Zmin,B2=Zmax−Zxy,如果B1>0且B2>0,则输出Zxy,否则输出除去极大、极小灰度值的其余像素的灰度均值Zavg.
首先选取尺寸大小为323×323 的实验原图如图3所示,初始滤波窗口设为3,最大窗口尺寸设为9,然后在仿真实验中分别添加噪声密度为0.1 到0.7 的椒盐噪声处理,最后分别用中值滤波和自适应中值滤波以及改进的自适应中值滤波进行去噪处理,得到三种方法的去噪结果,如图4、图5所示.
图4 原图Fig.4 Original
图5 椒盐噪声密度0.1 的滤波图像Fig.5 Filtered image with a pretzel noise density of 0.1
图6 椒盐噪声密度0.7 的滤波图像Fig.6 Filtered image with a pretzel noise density of 0.7
通过观察图4可以看出,图像在添加噪声浓度不大的椒盐噪声情况下,三种不同的滤波算法都可以去除噪声,使图像变得更加清晰,并且可以较好的保存图像细节.但是观察图4-b,可以看出中值滤波后的图像边缘细节保留的不是很完整,仍然存在一些噪声.图5的结果可以明显看出中值滤波对于加入噪声密度越大的图像去噪的效果越来越差,自适应中值滤相较于中值滤波虽然可以去除大部分噪声,但仍然残留部分噪声,而改进的自适应中值滤波基本上可以去除掉噪声,保存图像细节.
为了可以清楚地比较不同方法去噪效果的优劣,本文通过使用峰值信噪比(PSNR)和均方误差(MSE)两种评价性能指标进行评价.峰值信噪比值越大、均方差值越小,则算法的去噪能力越强[16].
峰值信噪比(PSNR)、均方误差(MSE)定义为
其中m×n 为图像的尺寸大小,MSE 是原图与处理图像之间的均方误差;I(i,j)为原始图像;K(i,j)为添加椒盐噪声并滤波处理后的图像.
在不同噪声浓度干扰的情况下三种算法去噪性能如表1所示.
表1 仿真实验性能指标结果Tab.1 Simulation experimental performance index results
通过表1中仿真实验性能指标结果可以看出, 改进后的自适应中值滤波去噪后的峰值信噪比相较于中值滤波和自适应滤波有了明显的提高,均方误数值有了明显的下降,通过数据客观评价可以得出改进后的自适应中值滤波去噪效果得到了明显提升,图像质量得到了显著提升.虽然中值滤波技术和自适应中值滤波技术都具有去噪效果,但通过比较表1中的峰值信噪比和均方误差可以得出,改进后的自适应中值滤波技术比中值滤波技术和自适应中值滤波去噪效果好,可以去除噪声,使图像变得更加清晰,可以较好的保存图像细节.
本文基于中值滤波算法、自适应中值滤波算法以及改进后的自适应中值滤波算法对经典椒盐噪声进行去除,并比较采用不同噪声浓度的椒盐噪声来验证三种不同算法的去噪情况.通过主观肉眼辨别与客观数据评价可以得出,在椒盐噪声浓度小的情况下,经典的中值滤波算法可以去除图像表面大部分噪声斑点,但是存在一个缺点,去噪后图像边缘纹理保留的不是很完整,任然存在噪声点;当噪声浓度大到一定程度时,中值滤波算法去噪效果就会变差,去噪后的图像表面仍然被椒盐噪声斑点覆盖,只能大体辨别出目标轮廓;相较于中值滤波,自适应中值滤波对图像去噪效果更好,但当椒盐噪声浓度过大时,去噪后的图像仍然会残留部分噪声,但比中值滤波算法的去噪效果要强;而改进后的自适应中值滤波算法去噪效果比中值滤波算法和自适应中值滤波算法都要好,无论是在低浓度椒盐噪声干扰的情况下,还是噪声浓度不断增大的情况下,都可以达到较好的去噪效果,保留图像细节.从三种算法的PSNR、MSE 数值对比角度来看,在低密度的椒盐噪声干扰时,改进后的自适应中值滤波算法与另外两种算法相比去噪效果相差不大,但随着椒盐噪声浓度不断增大,改进后的自适应中值滤波算法与另外两种算法相比,去噪效果得到了很大提高.