陈家益, 董梦艺, 战荫伟, 曹会英, 熊刚强
(1.广东医科大学信息工程学院, 广东 湛江 524023; 2.南方医科大学第二临床学院,广州 510515;3.广东工业大学计算机学院, 广州 510006)
由于外部环境的干扰或硬件条件的限制,图像往往会被噪声污染,而脉冲噪声是主要的噪声.脉冲噪声类型主要有:随机值脉冲噪声和固定值脉冲噪声,后者也叫椒盐噪声.被随机值脉冲噪声污染的像素,其灰度值可以取介于最小灰度值和最大灰度值之间的任何值;被椒盐噪声污染的像素要么取最小灰度值,要么取最大灰度值[1].对于脉冲噪声,线性滤波算法[2-4]属于低通滤波,难以取得良好的去噪效果,而中值滤波算法[5]以其良好的去噪性能和简单的计算复杂度,被广泛应用.标准的中值滤波算法对所有像素的灰度,都用各自邻域的像素中值取代;加权中值滤波算法以及中心加权滤波算法[6-7],根据邻域像素的灰度差或距离差,赋予邻域像素加权系数,以提高滤波像素的相关性.以上算法的不足在于,统一处理所有像素,破坏了信号像素的原始信息.
为了保持信号像素的有效信息,仅对噪声作滤波处理,学者们提出了带噪声检测的滤波算法,比如开关中值滤波算法[8-9],先对图像进行噪声检测,再对检测出来的噪声作去噪处理.有研究提出一种基于简化的脉冲耦合神经网络的去噪方法,利用简化的脉冲耦合神经网络定位极端脉冲噪声点,并利用中值滤波去除噪声,并将此方法应用于乳腺癌超声图像去噪[10].但是算法的计算复杂度高,且其去噪方法未必有效.张思杰等[11]利用邻域的均值和标准差作为阈值对噪声进行检测,结合常规的中值滤波方法对加密图像进行去噪.算法虽然对噪声进行了有效的检测,但是对噪声像素处理的性能并不显著.高振清等[12]在开关中值算法中,运用最小相邻图像均方差参数自调整策略,对去噪算法中的参数进行选择并优化,以提高算法的鲁棒性和去噪性能.对于低密度的脉冲噪声,多数的算法都能够在保持图像的边缘和细节的同时,彻底地滤除噪声,但是对高密度的脉冲噪声,需要鲁棒的滤波算法,滤波策略需要根据条件自适应地变化.另有研究采用自适应的阈值对脉冲噪声进行判别,使用邻域中像素的中值或其邻域中已经处理的像素的中值代替噪声像素.阈值的选取是随滤波窗口的滑动而变化,体现了噪声检测的自适应性[13].周萌萌等[14]提出基于窗口的自适应中值滤波算法(adaptive median filtering algorithm based on window, AMF),运用混合窗口进行噪声检测,根据噪声密度运用自适应大小的邻域对噪声进行滤除,具有一定的鲁棒性,提高了去噪性能.
近年来,由于其鲁棒的噪声检测与噪声滤除策略,决策滤波算法被广泛关注.比如,文献[15]提出了基于模糊决策的滤波算法,先计算邻域中像素的模糊隶属度,根据置信区间去除疑似噪声像素,然后应用矢量中值滤波去除噪声像素.Balasubramanian等[16]提出了一种基于概率决策的滤波算法(probabilistic decision based filter to remove impulse noise, PDBF),算法将灰度取最值的像素识别为噪声,运用邻域的块中值取代噪声的灰度.简单地根据灰度最值检测噪声,会将图像中灰度取最值的部分信号像素也识别为噪声,进一步的滤波处理会破坏这部分信号像素的原始信息.相对于邻域中像素的中值,加权中值与像素的原始灰度具有更高的相关性和相似性.李迅波等[17]根据梯度相似性进行噪声检测,结合图像极值剪切技术,采用舍弃方差极大值的加权中值作为噪声像素的灰度.史再峰等[18]提出新的开关型加权中值滤波算法,利用邻域中未受污染的像素的加权中值进行滤波,加权系数同时考虑了空间距离与灰度的差异.算法的噪声检测准确性与去噪性能都很好,但是过多的操作增加了算法的计算复杂度高.为了进一步提高去噪性能,Faragallahac等[19]提出了自适应开关加权中值滤波算法(adaptive switching weighted median filter framework for suppressing salt-and-pepper noise, ASWMF),算法根据小邻域内像素的灰度以及分布进行噪声检测,提高了检测的准确性,并且其以距离测度为因子的加权系数,提高了加权中值与噪声像素的原始灰度的相关性和相似性.
为克服现有滤波算法的缺陷,提高噪声检测的准确性,以进一步提高去噪性能,我们提出了一种多邻域中值滤波算法(multi-neighborhood median filter, MMF).基于医学图像的实验结果证明,相对于现有算法,MMF算法具有更好的去噪性能.
根据脉冲噪声的灰度特征,如果像素的灰度是一定大小的邻域中的最小或最大值,将其识别为噪声.如此,可以将全部的噪声识别出来,但是邻域中灰度取最值的信号像素也被识别为噪声.因此,亟需作进一步的检测,将噪声与邻域中灰度取最值的信号像素进行区分.
在一个邻域中,信号像素之间具有相关性,其灰度的分布具有平滑过渡性,灰度之间相差不大;噪声是孤立的,其灰度与邻域中其他像素往往差别很大.基于以上分析,本研究采用基于邻域中值的检测方法.
如果当前像素的灰度取值为邻域中的最值,并且其灰度与邻域的中值相差不大,识别为信号,否则识别为噪声.具体的方法为:预设一个阈值T,灰度取邻域最值的像素,与邻域中值的绝对差不超过T,则此像素为信号,否则为噪声.
对于噪声检测所用的邻域大小k×k的最优取值,如果邻域太小,特别是噪声密度较高时,可参考的有效信息太少,缺乏统计意义;如果邻域太大,其中的信号像素的相关性和相似性降低,缺乏参考意义.对阈值T的最优取值也要体现邻域像素灰度的平滑变化特性.为了k和T的最优取值,将其他参数固定、(k,T)取不同数值组合的MMF算法应用于图像集BSD68 dataset.图像集中的所有图像被添加不同密度的脉冲噪声,每一个不同数值组合(k,T)的MMF算法对噪声图像进行去噪,然后求去噪结果的PSNR平均值.以取得最高的PSNR值为目标,如式(1),取(k,T)=(7,4)为最优值.
(1)
其中,f为原无噪图像,fnoise为噪声图像.
运用邻域中的全部像素对当前的噪声像素进行估测,会降低估测的准确性,因为邻域中的噪声与信号像素不具有相关性,噪声的局部分布不均匀性会影响对噪声的估测,使得估测值偏离原始值.因此,将剔除噪声像素后的邻域中的信号像素作为参考值,将信号像素的中值作为当前噪声像素的灰度估测值,其去噪效果更好.
当前邻域中的信号中值或者加权中值,与噪声像素的原始灰度往往偏差较大,以致对噪声像素的灰度估测不准确;并且,在噪声密度较高时,一个小邻域中往往没有信号像素或很少,如此,对噪声像素的灰度估测缺乏足够的有效的信息,以致估测所用的中值与原始灰度的相关性和相似性很微弱.为提高对噪声像素估测的准确性,必须提高估测值与原始值的相关性和相似性,本研究小组提出多邻域中值去噪方法.对一个特定的噪声像素,首先,我们在该像素的中心邻域、左右上下以及两个对角上的9邻域中,分别求取其信号像素的中值,然后取9个中值的中值作为噪声像素新的灰度.该估测方法不仅参考了中心邻域的有效信息,还参考了临近邻域的有效信息,提高了估测的准确性.
多邻域中值去噪的具体例子(图1).取邻域的大小为3×3.图1(a)为图像chest_xray图2(d)被密度0.5的脉冲噪声污染后的图像区域(201~205, 201~205),其中心像素的原始灰度为158,现已被噪声破坏;其中虚线围住的部分为中心邻域,左右上下以及两个对角上的邻域分别图1(b)~图1(i).9个邻域中信号像素的中值分别为:148,148,155,147,155,145,159,152,153.将中值152作为中心像素新的灰度.相对于现有算法所采用的中心邻域的信号中值148,新的灰度152更加接近原始灰度158.
在一遍3×3邻域的多邻域中值滤波处理时,如果9个邻域中都不存在信号像素,即全部像素是噪声,则不予处理;然后,对之前未作处理的噪声像素,用一遍5×5邻域的多邻域中值滤波进行处理,邻域中采用的有效信息为其中的信号像素与上一遍滤波处理过的像素.二遍多邻域中值滤波处理后,对余下的未经处理的噪声像素,用其5×5中心邻域内所有像素的中值取代.
图1 多邻域中值去噪的例子
设f(p)为像素p的灰度,Np(k)为以像素p为中心的大小为k×k的邻域,Npl(k)、Npr(k)、Npt(k)、Npb(k)、Nplt(k)、Nprb(k)、Nprt(k)和Nplb(k)分别为p的左邻域、右邻域、上邻域、下邻域、左上邻域、右下邻域、右上邻域和左下邻域,min()、max()和median()分别为最小值、最大值和中值的函数,R噪声识别矩阵,T为阈值,MMF的伪代码如下.
R=ones(size(f))
For eachpinf
If (f(p)= min(Np(7)) orf(p)=
max(Np(7))) and |f(p)-median(Np(7))|>T
R(p)=0
End if
End for
Setk=3, call SubPrograme
Setk=5, call SubPrograme
For eachpwithR(p)=0
f(p)= median(Np(5))
End
SubPrograme
For eachpwithR(p)=0
If exist pixels withR(p)=1 in(Np(k)∪Npl(k)∪Npr(k)∪Npt(k)∪Npb(k)…∪Nplt(k)∪Nprb(k)∪Nprt(k)∪Nplb(k))
med1=median of noise free pixels inNp(k)
med2=median of noise free pixels inNpl(k)
med3=median of noise free pixels inNpr(k)
med4=median of noise free pixels inNpt(k)
med5=median of noise free pixels inNpb(k)
med6=median of noise free pixels inNplt(k)
med7=median of noise free pixels inNprb(k)
med8=median of noise free pixels inNprt(k)
med9=median of noise free pixels inNplb(k)
S=[med1, med2, med3, med4, med5, med6, med7, med8, med9]
f(p)=median ofS
R(p)=1
End
End
根据视觉效果、峰值信噪比(peak signal to noise ratio, PSNR)以及结构相似性指数(structural similarity index, SSIM)[20],将所提出的MMF算法与部分最近提出的且去噪性能较好的算法进行比较,它们分别是AMF[14],PDBF[16]以及ASWMF[19].PSNR与SSIM分别定义为
(1)
(2)
其中,m与n为图像的大小,f为原始图像,g为滤波图像,C1与C2为平衡常数,L=255,K1与K2分别默认取0.01和0.03,uf和σf分别为图像f的均值和标准差,σfg为图像f与g的协方差.算法的PSNR与SSIM值越大,其去噪性能越好.实验图像为医学图像Hand_XRay、Spine_MRI、Stomach_CT与Chest_XRay(图2).
图2 实验图像
对图像Stomach_CT和Chest_XRay分别加密度为0.5和0.8的脉冲噪声.各算法对其滤波的效果分别(图3、4).医学图像的特征是纯黑色的
图3 各算法对噪声密度为0.5的图像Stomach_CT的去噪效果图
图4 各算法对噪声密度为0.8的图像Chest-XRay的去噪效果图
背景区域较多.AMF噪声滤波不彻底,滤波图像上存在明显的残余噪声,并且不能恢复纯黑色的背景.PDBF虽然能够彻底去除了噪声,但是破坏了纯色的背景,且其滤波图的边缘部分的模糊效果很明显.ASWMF能够很好地保持了图像的边缘和细节,滤波图像较清晰,但是纯黑色的背景出现少量的断线状伪影.相对于现有的算法,MMF算法不但彻底地去除了噪声,而且很好地保持了图像的纹理边缘和细节,纯黑色的背景得到很好的恢复.其背后的原因在于,MMF算法在噪声检测的时候,能够将纯黑色的像素与孤立的噪声准确地区分开,并且对噪声像素的原始灰度进行估测的策略合理有效,提高滤波像素与原始像素的相关性和相似性.
PSNR和SSIM可以更加准确而客观地度量算法的去噪性能.MMF算法与现有的算法对图像Hand_XRay滤波的PSRN和SSIM(表1).对于低密度和中等密度的噪声图像,AMF具有良好的去噪性能,但是对高密度的噪声图像,其性能骤然走向最低.对于低密度的噪声图像,PDBF的性能并不理想,而对于高密度的噪声图像,其性能与ASWMF接近.ASWMF的去噪性能总体上较好,在低密度时,与算法AMF与MMF接近.MMF相对于其他算法的优势,多数体现于中高密度的噪声图像的滤波,其PSNR和SSIM值相对于其他算法的差距更大.
表1 各算法对图像Hand_XRay滤波的PSNR和SSIMTable 1 PSNR and SSIM of each filter on image Hand_XRay
MMF算法与现有的算法对图像Spine-MRI滤波的PSRN和SSIM(表2).在噪声密度较低时,AMF表现出很好的去噪性能,但是一旦噪声密度增大,其PSRN和SSIM值骤然下降,走向最低,所以AMF只适合于低密度的噪声图像.PDBF在噪声密度较低时,在去噪性能上并没有优势,但是它对高密度的噪声图像,具有较好的去噪性能.ASWMF的PSNR和SSIM值总体上较高,仅在噪声密度很高时,去噪性能有所下降.总体上,除了AMF之外,MMF的去噪性能与其他算法的差距不是很大,但是MMF的PSNR和SSIM值一直保持最大.
表2 各算法对图像Spine-MRI滤波的PSNR和SSIMTable 2 PSNR and SSIM of each filter on image Spine-MRI
以上对各算法的去噪性能的评价(图5、6)可得到进一步的验证和支持.为了便于直接而形象的比较,图5和图6以图形曲线的方式显示各算法滤波的PSRN和SSIM值.
图5 各算法对图像Stomach_CT滤波的PSNR和SSIM
图6 各算法对图像Chest_XRay滤波的PSNR和SSIM
各算法对各种噪声密度的图像Stomach_CT进行去噪对应的PSNR和SSIM(图5).在噪声密度由低到高的变化过程中,不可避免地,各算法的PSNR和SSIM曲线均处于递减走势.其中,AMF的整体去噪性能较差,其PSNR和SSIM曲线均处于较低位置.相对于AMF,PDBF的去噪性能略好,但是并不理想,其PSNR和SSIM曲线依然处于较低的位置,原因在于,PDBF简单地根据灰度最值进行噪声检测,会破坏图像中灰度取最值的信号像素.有趣并且值得注意的是,AMF与PDBF的PSNR曲线的高度差不多,但是PDBF的SSIM曲线明显比AMF高,说明PDBF在保持图像的细节结构上的性能要好于AMF.在噪声密度较低时,ASWMF的去噪性能较好,但在噪声密度由中到高的变化时,其PSNR和SSIM曲线骤然下降,对高密度噪声的去噪性能没有优势.相对于其他算法,MMF算法的PSNR和SSIM曲线均处于其他算法之上,虽然处于递减走势,但是递减幅度缓慢.由此证明MMF算法具有更好的去噪性能.
各算法对各种噪声密度的图像Chest_XRay进行去噪对应的PSNR和SSIM如图6所示.很明显,AMF与PDBF的PSNR和SSIM曲线均处于较低位置,整体去噪性能较差,特别是AMF的SSIM曲线与其他算法拉开的距离比较大.在噪声密度较低时,ASWMF的去噪性能较好,但是在噪声密度较高时,其去噪性能骤然下降,特别是噪声密度极高时,ASWMF的PSNR曲线处于PDBF之下.相对于其他算法,MMF具有更好的去噪性能,其PSNR和SSIM曲线始终处于最高,特别是在噪声密度较高时,与其他算法拉开的差距更大,优越性更加显著.再一次验证MMF算法在去噪性能上的优越性.
根据对图像去噪的视觉效果以及客观度量指标PSNR和SSIM的比较分析,可以得出,相对于现有的算法,MMF算法具有更好的去噪性能,特别是在噪声密度较高时,具有显著的优越性.MMF的优越性源自于两方面,准确有效的噪声检测策略与充分利用邻近有效信息的灰度估测方法.
为了克服现有算法的缺陷,进一步改善去噪性能,提出了多邻域中值滤波算法.运用邻域中像素的极值以及中值进行噪声检测,较准确地对噪声进行检测和识别.用噪声像素临近的多个邻域的信号中值进行去噪,充分利用临近的有效信息,提高像素的新灰度与原始灰度的相关性和相似性,较准确地对噪声像素的灰度进行估测.基于医学图像的实验结果证明,相对于现有的算法,所提出的MMF算法具有更好的去噪性能,特别是在噪声密度较高时,具有更加显著的优越性.