高密度噪声和混合噪声的图像去噪算法

2020-07-01 11:02郭慧娟岳云霄白雪飞
关键词:椒盐像素点高斯

郭慧娟,岳云霄,林 菲,白雪飞

(1.太原师范学院 计算机系,山西 晋中 030619;2.太原师范学院汾河流域科学发展研究中心,山西 晋中 030619;3.山西大学计算机与信息技术学院,山西 太原 030006)

0 引言

由于噪声具有多样和复杂的特点,去除噪声一直是图像处理的一个挑战性任务.在传统滤波算法中,均值滤波和中值滤波为广大学者熟悉和应用.中值滤波器因有效去除椒盐噪声而著名,均值滤波也是一种直观、易于实现的图像平滑方法,也常用于降低图像中的噪声.传统的中值滤波和均值滤波对高密度噪声或混合未知噪声的滤波效果较弱,因此一些研究学者不断提出新方法[1-4].为了弥补中值滤波和均值滤波算法单一的不足,本文将中值滤波和均值滤波算法进行融合,提出一种混合中值均值算法MMM,获得了更好恢复的效果.

在实际应用中,图像往往更易受到高密度噪声和混合噪声的影响.文献[5-6]中的算法目的是去除高密度脉冲噪声,文献[7-9]用于去除混合噪声.降低图像噪声的方法还有很多,如维纳滤波[10]和小波阈值和小波阈值去噪[11].图像去噪应用广泛,如医学、采矿和通讯等领域[12-13].另外,一些特殊的算法,如遗传规划,可以与滤波算法相结合,改进去噪效果[14].本文主要针对高密度单一噪声和混合噪声去噪.

论文的第二部分介绍中值滤波和均值滤波.MMM算法的详细描述见论文第三部分.第四节给出了详细的实验结果.

1 传统去噪算法

中值滤波的主要思想是通过对每个像素周边像素的处理来估计噪声点的像素值,具体由一个滑动窗口来实现.对于一个3×3的滑动窗口(如图1所示),参与运算的共有9个点,位于中间的待估计像素点及周围相邻6个像素点.实现过程是将9个像素点排序,中间点为待估像素点的值.

图1 3×3滑动窗口

窗口的选择与信号的自身特点有密切联系.在图像处理领域,通常使用3×3和5×5窗口.此外,如果窗口中像素总数为奇数,那么中位数的定义为:窗口中所有元素排序后的中间值.对于偶数项,可能有多个中位数,可随机选择中间两位数的任何一个作为中间值,具体细节请参阅文献[1].中值滤波器可以描述为一个算术表达式:

yij=MF{xst|s,t∈w}

(1)

图2 领域窗口

其中,MF代表中值滤波过程(本节后半部分将通过一个例子来阐述),w表示用户定义的窗口区域,区域中心为待估计的像素点yi,j.下标代表二维平面内像素点的位置,i,j分别代表像素点所在的行和列.周围8个像素点的位置为xi-1,j-1,xi-1,j,xi-1,j+1,xi,j-1,xi,j+1,xi+1,j-1,xi+1,j,xi+1,j+1,如图2所示.

均值过滤器也是一个滑动窗口空间过滤器,它用所有相邻像素值的平均值代替窗口中的中心值.窗口可以是方形的,也可以是任何形状.均值滤波器可以表示为:

(2)

其中,a和b代表窗口的长和宽.对于3×3的窗口,a和b的值都为3,对于5×5的窗口,a、b的取值为5.

图3 (a)3×3窗口(b)中值滤波(c)均值滤波

下面通过一个例子来说明中值滤波和均值滤波的去噪过程,选择窗口大小为3×3,如图3所示.窗口内的9个像素值{1,9,78,13,16,1,12,14,9},其中待估计像素点的值为16.对于中值滤波,首先将窗口区域像素点按值的大小排序,排序后的像素序列为[1,1,9,9,12,13,14,16,78],然后取中位点的值12为带估计点中值滤波后的值;对于均值滤波,将窗口区域所有像素点值求和sum=1+9+78+13+16+1+12+14+9=153,然后除以元素个数,即153/9=17.均值滤波后待估像素点值为17.

2 本文算法

本文提出的算法包含3个步骤:

Step1:将窗口邻域内的像素点排序,得到有序像素序列.

Step2:用序列中值代替序列特定位置的值.

Step3:求替换后的序列所有像素值的平均值.算法描述如下:

MMM Algorithm输入:噪声图像A超参数k/*算法中设k=2*/初始化:array=[]/*用来存储滑动窗口内的像素值*/输出:滤波后的图像A'算法迭代过程:for i=1:n for j=1:nxij=MMM(array) endend算法处理过程(以3×3滑动窗口为例,此时a=b=3):1.获取滑动窗口内的像素值赋予array.array={xi-1,j-1,xi-1,j,xi-1,j+1,xi,j-1,xi,j,xi,j+1,xi+1,j-1,xi+1,j,xi+1,j+1}2.将窗口内的邻域值排序,求得中值x5array'=[x1,x2,x3,x4,x5,x6,x7,x8,x9]这里x1

图4 MMM算法过程

算法中超参数k的取值与窗口大小有关,即与窗口邻域内元素个数有关.在3x3的滑动窗口中,元素个数为9,则k的取值为1~4,且超参数k=0时算法等价于均值滤波算法,k=4时算法效果同中值滤波;在5×5的滑动窗口中,元素个数为25,则k的取值为1~12,且当超参数k=0时算法等价于均值滤波算法,k=12时算法效果同中值滤波.实际应用中,可以根据去噪效果调整超参数k的值,以获得最佳效果.

图4为MMM算法的实例,数据同图2.滑动窗口大小为3x3,窗口邻域像素集array={1,9,78,13,16,1,12,14,9},待恢复像素值xi,j=16.排序后窗口邻域元素序列为array'=[1,1,9,9,12,13,14,16,78],中值为12,因超参数k=2,故替换后的序列array′′=[12,12,9,9,12,13,14,12,12],本文算法执行后xi,j=11.

3 实验结果及分析

本节将提出的MMM算法与中值滤波和均值滤波进行比较.模拟噪声有高斯噪声、脉冲噪声、泊松噪声和乘性噪声.实验环境为Windows 7、3.4GHZ处理器、4GB随机存取存储器(RAM)和Matlab 2012a.所有实验结果均为算法执行500次后的平均值.利用峰值信噪比PSNR(Peak Signal-to-Noise Ratio)来评价图像质量,单位dB.PSNR的计算公式为

(3)

在式(3),MAXI表示图像点颜色的最大数值,如果每个采样点用 8 位表示,那么就是 255,MSE表示原图像与去噪后图像的均方误差.

3.1 高密度单噪声

在本实验中,用椒盐噪声来模拟脉冲噪声,其中噪声密度和方差为变量.图片Haiqing来源于数据堂(www.shujutang.com).所有测试图像大小均为256×256.

图5展示了随着噪声密度的增加,中值滤波和均值滤波的去噪能力下降迅速,MMM算法明显超出二者.而且,噪声密度越大,优势越明显.实践证明,MMM算法更适合于处理高密度噪声.细节参看表1.

图5 单密度噪声图像恢复

在图5中,对于椒盐噪声,横坐标表示噪声密度,且从0.05逐渐增大到0.5,对于高斯噪声和乘性噪声,横坐标表示方差,即方差变化范围[0.05,0.5],默认均值为0.纵坐标显示图像恢复效果PSNR值.

表1 单密度噪声图像恢复PSNR值

表1表明,MMM优于均值和中值滤波,最大增益约为11 dB(27.0105-16.3832≈11(dB)).对于三种类型的噪声,去除椒盐噪声的能力最好;高斯噪声的去噪效果好于乘性噪声.实验结果如图6所示.

图6 最左边一列(从上到下):原始图像Haiqing,Shepp-Logan和Lena.第2列为污染后的图像(从上到下):Haiqing(椒盐噪声,噪声密度为0.3),Shepp-Logan(乘性噪声,均值为0,方差为0.1),Lena(高斯噪声,方差为0.1).接下来3列依次为均值滤波、中值滤波和MMM算法的恢复结果.

3.2 混合噪声

在这一节中,我们考虑了多种混合噪声的组合,如脉冲噪声与高斯噪声,脉冲噪声与乘性噪声,高斯噪声与乘性噪声,脉冲噪声、高斯与乘法噪声.实验对于两个参数,采用固定其中一个,另一个由小到大变化;对于三个参数,选择其中两个参数固定不变,另一个参数值由小到大变化.表2展示了部分实验结果,恢复后的图像如图7所示.结果表明,对于混合噪声,MMM算法效果显著.

图6 单密度图像恢复效果

图7 混合噪声恢复

图7显示了不同混合噪声下的图像恢复效果,纵坐标代表PSNR值.Haiqing:a)椒盐噪声为0.1,高斯噪声和乘性噪声的方差变化范围[0.01,0.05];b)高斯噪声的方差固定为0.1,椒盐噪声密度和乘性噪声的方差变化范围[0.01,0.05];c) 乘性噪声方差固定为0.1,椒盐噪声密度和高斯噪声的方差变化范围[0.01,0.05];d)椒盐噪声密度固定为0.1,高斯噪声方差变化范围[0.01,0.05];e) 高斯噪声方差固定为0.1,椒盐噪声密度变化范围[0.01,0.05];f)椒盐噪声密度固定为0.4,高斯噪声方差变化范围[0.01,0.05];g) 乘性噪声方差固定为0.1,椒盐噪声密度变化范围[0.01,0.05].图6显示在不同噪声组合下,MMM算法还是明显优于其它两种算法,表2列出了几组混合噪声下恢复PSNR值.

表2 混合噪声图像恢复

图8 混合噪声恢复效果

图8中,最左列为原始图像,第2列(从上到下)Haiqing:椒盐噪声(噪声密度0.04)和高斯噪声(均值为0,方差为0.04);Shepp-Logan:乘性噪声(均值为0,方差为0.04)和高斯噪声(均值为0,方差为0.04);Lena:椒盐噪声(密度0.1)、高斯噪声(均值为0,方差为0.04)和乘性噪声(均值为0,方差为0.04).接下来的3列分别为均值、中值滤波和MMM滤波效果.

4 结论

本文提出了一种高效的图像去噪算法.该算法在去除单一高密度噪声和混合噪声时,效果明显优于传统中值滤波和均值滤波算法.算法通过引入超参数k,在去噪过程中有效调整窗口邻域内像素值,既保留了中值滤波和均值滤波的优点,同时也弥补了其缺陷.另外,实际应用中可调节k的值,以获取最佳效果.

本文考虑了三种噪声:脉冲噪声、高斯噪声、乘性噪声,包括单一噪声及其不同组合比例下的混合噪声.仿真结果显示随着噪声密度的增加,MMM去噪能力较之中值滤波和均值滤波优势明显,可见,算法对去除高密度噪声更加有效.

猜你喜欢
椒盐像素点高斯
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
学做椒盐虾
数学王子高斯
天才数学家——高斯
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
从自卑到自信 瑞恩·高斯林
椒盐芝麻烧饼
椒盐卷饼