基于差分图像检测、多窗口滤波去除图像脉冲噪声的方法 【技术领域】
本发明涉及计算机图像处理技术,尤其涉及一种利用多方向差分图像检测脉冲噪点、多窗口滤波去除图像脉冲噪声的方法。
背景技术
数字图像处理技术是上世纪六七十年代发展起来的一门新兴学科。随着计算机技术的飞速发展,数字图像处理技术获得了飞速的发展,形成了许多分支,图像去噪是图像处理的一项重要内容。在数字图像的获取和传输过程中,传感器和传输通道经常会产生噪声。噪声的存在极大地降低了图像质量,使得图像的后处理和分割、特征提取和目标识别等变得很困难,因此图像去噪成为一项十分重要的工作,脉冲噪声是很多噪声的一种。在去噪过程中,要求尽量保留边缘和细节而滤除噪声。目前的技术来看,有效的去噪算法都是有针对性的,比如针对脉冲噪声或者高斯噪声等等,能去除多类噪声的算法的结果往往显得不尽人意。
对于脉冲噪声,中值滤波是当前应用最广的滤波方法,其效果一般较好,但由于其对所有像素没有区别的处理,会破坏和丢失相对于滤波窗口尺寸较小的图像细节,如边缘、尖角等,并使得未受噪声影响的像素也被处理了。
针对中值滤波(Median Filter:MF)算法在去除脉冲噪声方面存在的不足,近年提出了一些较为有效的改进算法,加权中值滤波器,极大极小中值滤波器,开关中值滤波器等等,但是这些算法对于不同程度的脉冲噪声,效果不相同,尤其当噪声增加到一定程度时,改进型方法的滤波效果也不太理想,在滤除噪点的同时将细节部分在很大程度上也平滑了,没有克服滤波算法对噪声强度的敏感性,具有很大的局限性。而一般情况下较好的多窗口自适应滤波由于不检测噪点位置,只是对整幅图像进行处理,导致部分不是噪点的位置也得到了平滑处理,并且噪声较大时容易产生结块,效果不好。
【发明内容】
本发明提出一种利用三个方向的差分图像检测脉冲噪点,而后使用多窗口滤波去除图像脉冲噪声的方法,经此图像去噪处理后结果很好。
本发明利用多方向差分图像检测脉冲噪点、多窗口滤波去除图像脉冲噪声的方法,包括如下步骤:
1、从脉冲噪声图中检测出噪点的位置。
在脉冲噪声图像中,其最大的特征之一就是,对于某个脉冲噪声点,相对于其周围的像素,它的灰度差异较大。灰度差异大的地方,差分值也大,因此,我们可以利用分析噪声图像在不同方向的差分图,来得到脉冲噪声点的位置
2、对噪点位置进行多窗口自适应滤波。
对于噪声的滤除,只选择处理那些检测出来噪声点,这是与传统中值滤波不同的。同时采用多窗口的滤波方法,窗口大小由小及大,既能滤除噪声,又能很好地保持边缘。
3、循环检测滤波处理。
对于噪声较大的图像,一次按照1~2一次处理之后必定还有剩余的噪点没有得到处理,但是相对于原始噪声图肯定滤除不少噪点了。需要重复操作检测噪点和多窗口滤波处理,这样多次之后能把剩余噪声点基本检测出来并处理,得到较好的结果。
本发明利用脉冲噪点灰度值相对于周围像素具有的灰度值差异大的特点,对水平、竖直、斜对角等三个方向的差分图像进行综合考虑,较好的确定脉冲噪点的位置,而后利用多窗口的自适应滤波手段,很好的去除了图像中的脉冲噪声,并且保留了边缘和细节。
本发明发明的多方向差分图像检测脉冲噪点、多窗口滤波去除图像脉冲噪声的方法,包括如下步骤:
(1)检测脉冲噪声点的位置
通过水平方向、竖直方向,斜对角45度方向的差分图像,分析而得到大致的噪声点图像。
这里设f为脉冲噪声图像,(i,j)处的像素灰度值为f(i,j)。H、V、X分别为水平方向、竖直方向,斜45度方向的差分图像:
H(i,j)=|f(i,j+1)-f(i,j)|
V(i,j)=|f(i+1,j)-f(i,j)|
X(i,j)=|f(i+1,j+1)-f(i,j)|
对于这三张差分图像,设阈值为T,大于T的点判定为噪声点,并Flag(i,j)用来标定像素(i,j)是否受到噪声的污染,初始化时都为零,于是有:
“&”表示“与”,Flag(i,j)若为1则表示受到噪声污染。
(2)多窗口自适应滤波
根据Flag标定的噪点位置,对于某个噪点Nij(其位置为(i,j)),设定以此噪点为中心,尺寸为D×D(D为奇数)的一个窗口,对于此窗口:Nmax表示最大灰度值,Nmin表示最小灰度值;Nmed表示灰度中值,Nij表示中心坐标(i,j)处的灰度值,Wmax为所允许的多窗口操作的最大窗口尺寸。
于是滤波地具体步骤如下:
若Nmin<Nmed<Nmax,则实施步骤3);否则实施步骤2)。
增加窗口尺寸D。若尺寸D≤Wmax,重复步骤1);否则输出Nmed。
若Nmin<Nij<Nmax,输出Nij;否则输出Nmed。
(3)多次循环检测滤波
重复步骤(1)与(2),其中设定的检测阈值T=255λ,满足0.05≤λ≤0.55,λ从大到小取值,间隔为0.05。
该方法利用脉冲噪声的主要特征将噪点提取出来,然后针对这些噪点位置进行多窗口的自适应滤波,并且为了克服大噪声情况下的噪点残余问题,使用了多次循环检测滤波,可以有效地去除图像中的脉冲噪声,同时尽量保持图像细节的完整。
【附图说明】
图1:本发明方法的操作流程框图
图2a~g:测试本发明去除脉冲噪声能力的一组灰度图--lena人像图其中:
图2a为原图-lena人像
图2b为加入5%的脉冲噪声图
图2c为中值滤波处理图2b所得的结果
图2d为本发明方法处理图2b所得的结果
图2e为加入密度为40%的脉冲噪声图
图2f为中值滤波处理图2e所得的结果
图2g为本发明方法处理图2f所得的结果
图3a~g:测试本发明去除脉冲噪声能力的另一组灰度图-遥感机场图其中:
图3a为原图-遥感机场图
图3b为加入密度为10%的脉冲噪声图
图3c为中值滤波处理图3b所得的结果
图3d为本发明方法处理图3b所得的结果
图3e为加入密度为35%的脉冲噪声图
图3f为中值滤波处理图3e所得的结果
图3g为本发明方法处理图3f所得的结果
【具体实施方式】
为验证算法的有效性,对不同内容、受不同噪声污染的图像进行了实验。实验中,窗口最大允许值Wmax为9(可以根据情况设定,一般取7、9、11足够实验处理了)。
利用本发明方法处理图像,如图1所示,输入脉冲噪声图,即可得到去噪后的图像。以图2b(含5%脉冲噪声的“Lena”图)为例:
(1)检测图中脉冲噪声点的位置。将图2b(以下称图像f)输入。
(i,j)处的像素灰度值为f(i,j)。H、V、X分别为水平方向、竖直方向,斜45度方向的差分图像,计算方式如下:
H(i,j)=|f(i,j+1)-f(i,j)|
V(i,j)=|f(i+1,j)-f(i,j)|
X(i,j)=|f(i+1,j+1)-f(i,j)|
对于这三张差分图像,有阈值为T,有T=255λ,初始λ=0.55,并Flag(i,j)用来标定噪声图f中像素(i,j)是否受到噪声的污染,初始化Flag时都为全零矩阵,定义:
“&”表示“与”,Flag(i,j)若为1则表示受到噪声污染。
(2)多窗口自适应滤波
根据Flag标定的噪点位置(噪点位置(i,j)满足Flag(i,j)=1),对于某个噪点Nij,设定以此噪点为中心,尺寸为D×D(这里我们取初始D为3)的一个窗口,对于此窗口中:Nmax表示最大灰度值,Nmin表示最小灰度值;Nmed表示灰度中值,Nij表示中心坐标(i,j)处的灰度值,Wmax为所允许的多窗口操作的最大窗口尺寸。于是滤波的具体步骤如下:
若Nmin<Nmed<Nmax,则实施步骤3);否则实施步骤2)。
增加窗口尺寸D。若尺寸D≤Wmax,重复步骤1);否则输出Nmed。
若Nmin<Nij<Nmax,输出Nij;否则输出Nmed。
(3)多次循环检测滤波
重复步骤(1)与(2),对于(1)中设定的检测阈值T=255λ,满足0.05≤λ≤0.55,λ从大到小取值,间隔为0.05。
经过(1)~(3)的操作,最后得到图2(d)的结果。
如上述操作例子,我们可以得到具体实验结果如下:
(1)对不同脉冲噪声图像去噪的仿真实验
图2是对“lena”图分别添加5%和40%的椒盐噪声(脉冲噪声)之后,分别用中值滤波和本发明方法处理得到的结果;图3是对遥感机场图分别添加10%和35%的椒盐噪声(脉冲噪声)之后,分别用中值滤波和本发明方法处理得到的结果。从图2与图3的实验结果不难看出,噪声率无论高还是低,中值滤波在去除噪声并保持细节能力方面欠缺较大;而本发明方法在这方面效果较好,尤其是对于噪声稍大的图像,在去除噪声和保持细节方面的性能远远优于中值滤波。实验证明无论针对噪声密度大还是小的图像,本发明方法具有很大的鲁棒性。
(2)对受噪声污染不同程度的图像的去噪仿真实验
我们使用客观评价指标峰值信噪比(PSNR,Peak Signal-to-noise Ratio)来测试算法的有效性,PSNR越大,图像质量越好。PSNR的表达式为:
PSNR=10log25521MNΣi=1MΣj=1N(fij-fij′)2]]>
其中fij、f′ij分别表示原始图像和去噪后图像,M,N分别表示图像的高与宽。PSNR越大,图像质量效果越好。
表1给出了不同噪声污染程度下的”lena”图像经中值滤波和本发明方法处理之后的PSNR。
从表中明显得出,同样噪声程度下本发明方法获得的PSNR最大,效果最好。
表1:不同方法得到的去噪图像的PSNR