结合循环迭代方法的自适应中值去噪新模型
2022-07-22陈庆利秦亚琦彭乙翠
许 黎,侯 杰,陈庆利,秦亚琦,彭乙翠, 黄 果
(乐山师范学院互联网自然语言智能处理四川省高等学校重点实验室,乐山 614000)
1 引 言
图像去噪是数字图像处理中一个基础且重要的研究部分,具有一定的理论价值和实际意义.为了达到后续图像处理所要求的清晰度和准确度,我们需要在进行模式识别、边界检测、提取以及分割图像[1-5]之前进行图像噪声消除.在采集、传输和处理图像的过程中,外界环境、自身设备性能以及在信息传输转换阶段的影响会导致图像的细节部分丢失和质量下降[6-10].椒盐噪声是一种比较常见的图像噪声,通常是图像在生成过程中或者在传输过程中产生的[11].椒盐噪声的产生与图像内容并没有联系,它是一种随机出现的像素极值点,导致图像产生大量白点和黑点,从而降低图像视觉质量.高密度的椒盐噪声会完全遮挡原始图像的信息内容,严重影响图像质量,也给图像的后续研究和分析造成困难[12].
针对椒盐噪声的去除,近年来研究人员提出了许多有效的去噪算法.其中,Nodes等最早提出一种非线性标准中值滤波器[13](Median Filter,MF).该滤波器的去噪效果只能针对噪声浓度在30%以内的含噪图像进行去噪,若图像的噪声浓度超出这个范围,该算法将会丢失原图像大量边缘信息,导致去噪效果差.之后为了克服高密度噪声去噪性能差这一缺点, Yu等提出了一种自适应中值滤波器[14](Adaptive Median Filter,AMF).该滤波器根据预设条件,动态地改变工作时滤波窗口尺寸,达到兼顾去噪性能和保护图像细节的效果.该滤波器在处理低密度噪声时去噪效果不错,但是在噪声出现概率比较高时,需要通过增大滤波器预设窗口尺寸.这样将会导致图像变得模糊不清,降低图像的视觉效果.以上两种传统算法既没有考虑到保护图像的细节信息,也没有对极值像素点是否为噪声进行判断,全部认定为噪声进行处理,这样就会丢失部分有用信息,破坏原始图像的像素信息[15].为了改善以上缺点,Srinivasan 等提出一种基于决策的中值滤波器[16](Decision-Based Algorithm Median Filter,DBAMF).该算法使用3*3的滤波窗口进行去噪,首先对像素进行识别处理,如果像素值是0或255,则定为噪声像素,在噪声点的滤波窗口内使用邻域的中值替换噪声像素.但是对高密度噪声的图像,中值可能是噪声像素0或255,而且这种重复的处理方式会使降噪后的图像产生条纹效应[17].针对该问题,Esakkirajan等提出一种基于改进决策的非对称修正中值滤波器[18,19](Modified Decision Based Unsymmetric Trimmed Median Filter,MDBUTMF).该算法对于高密度噪声中3*3邻域窗口内像素值都为0或255的情况采用所有像素的均值代替中值,达到了良好的去噪效果,但在较高噪声情况下的去噪效果仍不太理想.
上述所有去噪算法,都只是基于遍历思想进行处理,即只对图像的每个像素依次滤波得到去噪图像.与这类算法相比,基于循环迭代的思想,能够更好地去除高密度噪声图像.即通过多次判断,对已滤波输出的图像进行再次处理,直到符合条件停止循环.这种方式能够更好地恢复噪声图像的原始细节信息[20,21].针对上述问题和基于循环迭代思想,本文提出了结合循环迭代方法的自适应中值去噪新模型(New Adaptive Median Denoising,NAMD).该模型在固定的滤波窗口尺寸内,通过计算窗口内非椒盐噪声的中值和均值,算法自适应选择其一替换噪声像素,根据现存噪声数量自适应进行算法迭代,从而达到基本消除椒盐噪声的效果,提高了对高密度噪声的滤波性能;同时使用固定的小窗口尺寸,克服了现有算法不能更好地保留图像细节的缺点.通过大量的仿真实验表明,与中值滤波等传统算法相比,本文所提算法对各种密度噪声图像都有更好的去噪性能和视觉效果.
2 相关理论及算法
2.1 标准中值滤波
MF算法是一种非线性滤波器,它是以噪声点为中心建立一个滤波模板,把对该点周围3*3或者5*5为窗口的邻域Sxy中的像素点按照灰度值大小排序生成数组gs,t,最后用gs,t的中间值替换模板的中心噪声点fx,y[22],即
fx,y=median{gs,t|(s,t)∈Sxy}
(1)
该算法使用像素邻域得到的中值更加接近噪声点的真实值,从而达到去除图像中的噪声点效果.因为中值滤波的输出灰度值是由邻域窗口内中值大小决定的,所以其对于窗口中的脉冲噪声处理效果较好,可以在有效去除脉冲噪声的同时,减小图像的模糊.标准中值滤波虽然是一种最简单而且能有效去除椒盐噪声的方法,但是会引起图像少量的不连续性,从而致使图像处理达不到预期效果.图1是以3*3窗口为例表示的滤波原理.
(a)为待处理像素
2.2 自适应中值滤波
AMF算法对像素窗口内最值进行识别,通过自适应判断选择滤波窗口尺寸,兼顾去噪声作用和保护细节的效果,去噪能力提升较大.但是其判断噪声的方式过于简单,在实际应用中容易产生误检和漏检,而且如果滤波窗口过大,图像的细节保护效果会降低.我们首先计算滤波窗口内的中值、最大值和最小值,当窗口内中值为噪声点,不作处理,进行窗口尺寸扩大,在更大的范围内寻找一个合适的非噪声点[23].当窗口内中值为非噪声点时,我们判断待处理像素为噪声点(待处理像素为最大值或最小值),则使用中值代替该像素.若待处理像素为非噪声点,则保留当前像素点灰度值.图2为AMF算法滤波方式说明.
(a)待处理像素
2.3 一种基于改进决策的非对称修正中值滤波器
MDBUTMF算法首先检测脉冲噪声来处理损坏的图像,检查处理像素是否为噪声点.如果待处理像素位于最大灰度值和最小灰度值之间,那么它是非噪声像素,则保持不变;如果待处理像素为最大或最小灰度值,则它为噪声像素需作如下处理.以该点为中心,建立3*3的滤波窗口,将窗口内所有元素按递增或递减顺序排列,并删除其中像素为0和255的值,然后取剩余像素的中值,取代噪声像素;若窗口内全是0和255,则求取窗口内所有像素值均值,取代噪声像素[18].这种处理方式,因为提前删除窗口内0和255的像素值,提高了去除噪声的能力.图3为对两种去噪方式的举例说明.
(a)待处理像素
3 NAMD算法
NAMD算法按照先检测后滤波的步骤,在进行噪声识别时,采用像素极值法进行检测,将像素点分为非噪声点和疑似噪声点两种.下一步我们对疑似噪声和非噪声点进行不同的操作处理,通过自适应循环迭代滤波,从而有效地去除图像噪声.极值法进行噪声识别步骤如下:在uint8图像中,若像素值是最小灰度值0或最大灰度值255时,则将其视为疑似噪声点,需要进行二次判断;若像素值处于0和255之间,则将其视为非噪声像素(信号点),不进行任何处理,输出原像素值.该类噪声点的模型可描述为
(1)
其中,Susn为疑似噪声点;Iclean为非噪声点.
由于噪声检测模型可能出现误检测噪声情况,所以NAMD算法对检测出的疑似噪声点设置了二次自适应判断.首先我们采用3*3的滤波窗口进行复检,统计窗口内非噪声点的个数设为count.如果count为0,说明该疑似噪声点可能为误检噪声点,标记该点Flag=1,继续完成待处理点的滤波工作.在第一次处理完噪声图像后,我们将得到的含有可能为误检噪声的图像带入算法,再次进行处理.如果在可能为误检噪声点滤波窗口内所统计非噪声点的个数count为0,则说明该点确定为误检噪声点,非图像噪声,直接输出像素值;如果count不为0,则为噪声点,进行去噪处理.
如图4所示,本文先对图像疑似噪声点预处理,通过极值判断法,将待处理像素点进行区分得到疑似噪声点;再确定噪声点处理,将已确定噪声点用邻域内的中值或均值自适应替换,从而完成去噪;最后对疑似噪声点二次处理,通过算法内置参数和条件,进一步判断疑似噪声点是否为噪声点,如果是噪声点则重复上面操作,否则去噪结束.
图4 NAMD算法流程图
3.3 算法具体步骤
如算法1所示,NAMD算法对图像疑似噪声点预处理,区分得到疑似和确定噪声点,再对确定噪声点处理,最后对疑似噪声点二次处理,进一步对疑似噪声点进行判断,如果是噪声点则重复以上操作,否则去噪结束.
算法1NAMD算法
步骤1:输入一副M*N含椒盐噪声的图像I,初始化一个与待处理图像等大小的全0矩阵Flag.
步骤2:对图像I中待处理像素Ix,y进行判断,如果符合0 (2) 步骤3:以Ix,y为中心,建立3*3尺寸滤波窗口记为模板P,统计模板P中符合0 (1)若count=0,判断Flagx,y值是否等于1,选择进行两种操作如式(3)所示. ① 若Flagx,y=0,则该点为疑似噪声点,保持像素值不变输出,并改变Flagx,y=1. ②Flagx,y=1,则该点为非噪声点,保持像素值不变输出,并改变Flagx,y=0.该步骤公式表示为 (3) (2)若count>0,判断Mod(count,2)值是否为0,选择进行如下两种操作. ① Mod(count,2)=0,则使用模板P中所有非噪声点的均值代替噪声点Ix,y输出; ② Mod(count,2)=1,则使用模板P中所有非噪声点的中值代替噪声点Ix,y输出;均值公式和该步骤公式如下. (4) (5) 步骤4:判断是否需要再次对已处理图像Y进行去噪处理.通过判断Flag数组是否为全0矩阵,若Flag为全0矩阵,则说明当前图像Y已不含噪声,直接结束滤波并输出去噪图像Y.如果Flag中含有非0元素,则说明处理生成的当前图像Y含有噪声点,需再次进行滤波处理,进入步骤5. 步骤5:将当前初步去噪图像Y,再次带入算法,重复步骤2~5,迭代至Flag成为全0矩阵,即最初输入含噪图像I中的椒盐噪声已经被完全去除. 通过上述处理步骤可知,NAMD算法选择固定3*3尺寸的滤波窗口,这样不仅可以在去除噪声时提高滤波效率,还可以最大程度地恢复图像细节部分.另外本文引入Flag矩阵和疑似噪声的思想后,可以提高噪声的去除率,并且可以大幅降低噪声误处理率(噪声误处理率=非噪声点当作噪声点处理的像素数/总像素数).步骤3中使用Mod(count,2)思想,是由于count如果是偶数则中值为该组数据中位数的平均值,所以NAMD将这种情况改中值为均值,使用整组数据的均值代替噪声点,从而使处理后的数据与图像原始数据的关联性更高. 为验证本文提出的NAMD算法的去噪效果,我们与现有算法进行仿真实验比较.实验选取了3幅图像512*512 Lena、512*512 Baboon和512*512 Woman的8位灰度图像进行实验,对比了MF算法,AMF算法,MDBUTMF算法和NAMD算法的去噪性能.对MF算法设置3*3的窗口尺寸,AMF算法设置最大窗口尺寸为7*7,MDBUTME算法设置3*3的窗口尺寸,NAMD算法采用3*3的窗口尺寸,以相应去噪参数作为实验数据进行对比.实验环境为Intel(R)Core(TM)i5-1035G1 CPU @ 1.00 GHz,内存为8 GB,操作系统为64位Windows10,仿真所用软件Matlab R2014a. 为了比较本文提出的NAMD算法与对照滤波算法的去噪性能,本实验采用文献[24]提出的峰值信噪比(PSNR)和文献[25]中的结构相似性指数(SSIM)两种参数作为衡量各滤波算法对照试验的评价指标. (1)峰值信噪比原图像与被滤波处理后的图像之间的均方误差相对于(2n-1)2的对数值(信号最大值的平方,n是每个采样值的比特数),PSNR值越大,代表滤波后的图像失真越少,滤波效果越好.峰值信噪比公式定义为 (6) (7) 其中,M和N表示图像的长和宽;Ii,j,Yi,j分别表示原始图像和滤波后的图像所对应图像第i行第j列像素点的灰度值;EMSE代表图像的均方误差.在8位灰度图像中n表示8,即信号最大值为255. (2)结构相似性是一种衡量两幅图像相似度的指标,代入原图和滤波后的两幅图像,结构相似性数值越大,说明算法的滤波效果越好.结构相似性公式定义为 (8) 其中,μI,μY表示原图像I和滤波后图像Y的均值;σI,σY表示图像I和图像Y的标准差;σIY表示图像I和图像Y的协方差;式中C1=(K1×L),C2=(K2×L),其中,K1=0.01,K2=0.03,L=255.SSIM的取值范围为-1到1,当输入同一幅图像计算时,SSIM的值等于1. 实验1:本文使用Lena,Baboon和Woman灰度图像,分别添加密度为10%、50%和90%的椒盐噪声. 图5~图7中(a)~(e)依次为含噪图像、MF滤波、AMF滤波、MDBUTMA滤波和NAMD滤波去噪效果对比图.由图可知,MF和AMF在含有较小噪声情况时,去噪效果较好;但在高密度噪声下,去噪效果非常不理想;尤其是MF算法在90%噪声下滤波后的图像仍是噪声图像,原图像信息几乎全部丢失.MDBUTMF和NAMD算法在低噪声下,去噪效果比较好,而且对于图像的细节信息还原度非常高;在高噪声中,MDBUTMF滤波图像效果较好,但是相比NAMD算法,还原图像细节纹理信息能力较差.综合来看,NAMD算法无论在低噪声还是高噪声中,去噪效果和纹理信息还原能力上均表现优异. (a)Noise-image (b)MF (c)AMF (d)MDBUTMF (e)NAMD (a)Noise-image (b)MF (c)AMF (d)MDBUTMF (e)NAMD (a)Noise-image (b)MF (c)AMF (d)MDBUTMF (e)NAMD 图8为Lena,Baboon和Woman三幅图像含有90%椒盐噪声的滤波局部放大区域.从图中所标记的矩形框内,我们对比发现,NAMD算法处理得到的图像去噪效果更强,细节还原能力更强,处理后的图像所包含的纹理信息更多,更加接近原始图像. (a)Original-image (b)MDBUTMF (c)NAMD 实验2:本文使用原图像像素区域性全为0或255的极值点的图像,加入20%的噪声. 图9是AMF和NAMD算法滤波后的图像,图10是图9局部放大图.与图9对照后发现AMF算法中误将原像素当作噪声处理,使图像去噪处理后得到的效果非常差.由于AMF算法进行噪声判断时,需要不断扩大窗口尺寸,而在较小的尺寸下,无法判断像素点是否为原始图像像素,以致类似实验2所选特殊图像的去噪性能大大下降.而在NAMD算法中,通过相应算法判断,识别出极值点并非噪声点,从而大幅降低噪声误处理率. (a)Original-image (b)Noise-image (c)AMF (d)NAMD (a)Original-image (b)Noise-image (c)AMF (d)NAMD 实验3:为定量对照试验,我们在基于Lena图像中加入密度为10%~90%的椒盐噪声,然后使用4种滤波算法进行处理.表1和表2分别是Lena图像去噪后的PSNR值和SSIM值.评价指标数值进一步证明NAMD算法的滤波效果更好. 表1 10%~90%椒盐噪声密度下SSIM值对比 表2 10%~90%椒盐噪声密度下PSNR值对比 由表1、表2及图11可知,MF和AMF两种算法的去噪性能较差,不能有效去除噪声,同时也无法保留图像的细节信息;无论在低密度还是高密度噪声,MF算法的SSIM和PSNR两个评价指标的数值,都与其他3种去噪算法数值差距较大;而AMF算法,在低密度噪声中,其两种指标数值较于MDUTMF和NAMD算法差距较小,但在高密度噪声中,评价指标数值仍差距过大.本文所提NAMD算法在含60%以下噪声和MDBUTMF的去噪性能基本一致,PSNR数值相差0.6~2 dB不等,SSIM数值差距不大;但在高密度噪声下去噪声效果尤为显著,PSNR相差达到3 dB,SSIM数值也差了0.1,明显优于其他3种算法.在引入噪声二次判断和循环迭代的思想后,NAMD算法在有效去除噪声的同时,还能更好地保留图像的细节纹理信息.综上所述,本文NAMD算法的主观感受和客观数值方面都优于其他算法,有较好的去噪效果. (a) 由于图像处理技术快速发展,其在医学影像、遥感技术和生物识别等领域应用需求持续增大,所以高质量的图像成为这些领域应用图像的基础条件,但是图像在采集传输的过程中不可避免会被噪声所污染,因此去除噪声,恢复图像原有信息成为研究热点[26,27].针对已有椒盐噪声滤波算法去噪性能差和容易使滤波后图像模糊的问题,本文基于循环迭代的思想,提出NAMD算法,该算法首先进行噪声检测,对噪声像素和非噪声像素区别处理来保护非噪声像素;然后,再通过固定3*3小尺寸的滤波窗口,更好地保护了图像细节;最后,采用循环迭代思想处理噪声像素,从而达到完全去除椒盐噪声目的,进而使高密度椒盐噪声图像的去噪性能大幅提升.通过仿真实验与其他算法进行对比,从主观视觉和客观数据两方面进行比较分析,本文NAMD算法具有更强的去噪性能和更好的恢复图像细节能力,尤其是在高密度噪声下,去噪性能更加突出.然而,本文只是针对椒盐噪声图像做去噪处理,因此还要优化.去除其他类型噪声方法是今后的研究方向.4.1 仿真实验设计
4.2 仿真结果及数据说明