许春和1 张宇2 孙广明2
(1. 绥化学院,黑龙江 绥化 152000;2. 哈尔滨理工大学自动化学院,黑龙江 哈尔滨 150080)
摘 要 本文提出了一种混合噪声的滤波方法。首先通过设定阈值,将椒盐噪声和高斯噪声加以区分。然后先对椒盐噪声使用一种改进的中值滤波方法进行滤波,再对高斯噪声使用近邻域均值滤波法进行滤波。仿真结果表明,本文提出的混合去噪声算法计算简单,对数字图像中存在的混合噪声有较好的滤波效果。 关键词 椒盐噪声;高斯噪声;混合噪声;混合滤波
1 引言
在数字图像采集和传输的过程中,会产生噪声,这将严重影响视觉效果。将噪声有效的滤除对图像的边缘检测、图像分割、特征提取、模式识别等后续工作都有着重要的意义。
目前工程中最常见的两种滤波方法是中值滤波法[1]~[5]和均值滤波法[1][6]。两者在算法上存在着很大的差异,并且针对的噪声也不一样。中值滤波法主要用来抑制椒盐噪声,均值滤波法主要用来抑制高斯噪声。当图像中既有椒盐噪声又有高斯噪声时,两种方法均无法达到令人满意的效果。Lee和Kassam将这两种方法结合起来,提出了一种改进的均值滤波方法(MTM)[7],希望能同时滤除椒盐噪声和高斯噪声,但效果并不理想。
本文通过分析传统滤波方法的优点和缺点,对二者进行改进,并将二者结合。提出一种可以消除图像中混合噪声的滤波方法。
2 传统算法分析及改进
在图像中,椒盐噪声为灰度值极大或极小的点,表现为纯黑或纯白的点,高斯噪声为零
均值高斯分布的噪声。两种噪声有着明显的区别,所以在滤波的过程中,应先对二者进行区分,再分别进行滤除是较为有效的方法[8]。
2.1 中值滤波算法分析及改进
针对椒盐噪声,传统的中值滤波方法在低噪声率的情况下有较好的滤波效果,但缺点是对所有像素点采取统一的处理方法,在滤除噪声的同时,也改变了信号点的灰度值,造成图像的模糊。理想的滤波方法是先对噪声点进行检测,再对可能的噪声点进行处理,而对信号点不进行处理,使其灰度值保持不变。
本文通过设定阈值α,先将噪声点的大致范围确定在[0,α]和[255-α,255]之间,再对可能的噪声点进行判断和滤除。
由于椒盐噪声的灰度值表现为极大或极小,所以在设定阈值α后,椒盐噪声点和高斯噪声点将区别开来。高斯噪声点暂且被当作信号点处理。在滤除完椒盐噪声后,再对高斯噪声进行滤除。
2.2 均值滤波算法分析及改进
传统的均值滤波算法是将像素点的灰度值用其周围一定范围内所有像素点灰度值的平均值代替。其优点是算法简单,对高斯噪声有较好的平滑作用。但该方法的主要缺点是在图像的边缘和细节处,模板越大,虽然噪声抑制效果越好,但同时画面模糊也更加严重。
因此,要保持图像的清晰,希望在进行平滑处理的同时,检测出图像的边界,然后只对噪声部分进行平滑处理。本文采用文献[9]中的对称近邻均值滤波算法,算法仍然简单,且对图像的边缘细节保护上有了很大的提高。
3 算法实现
3.1 改进中值滤波算法实现
设为一幅图像(其中表示各点的位置),表示对中的点取窗口操作 (一般取为(2N+1)×(2N+1)),为对中的所有点取中值,yy为滤波输出值,N为噪声点,S为信号点。
Step1:设定阈值α
Step2:设定图像白椒盐噪声的灰度范围为[255-α,255],黑椒盐噪声的灰度范围为[0,α]
Step3:如果窗口范围内的中心像素在[255-α,255]或[0,α]范围内,并且为窗口范围内的最大值或最小值,那么点视为噪声点,输出灰度值用代替,否则输出原值。
即当[255-α,255]或[0,α压缩机论坛]时,
输出值两国一制yy为:
Step4:如果窗口范围内的中心像素不在[255-α,255]或[0,α]范围内,则输出原值。
3.2 对称近邻均值滤波算法实现
Step1:以待处理像素为中心,构造一个(2N+1)×(2N+1)的模板,这(2N+1)×(2N+1) 个像素,除中心点之外,可以构成2N·(N+1 )对点,坐标为及,如图1中的。
tep2:获得对称点之后,在每一对对称点中选择一个灰度值与接近的点。
Step3:将2N·(N+1 )个选择点的灰度值替代原灰度值作为处理结果。如例1所示。
图1
例1
到12对对称点为
在这12对点中,出与灰度值相近的点为[8,6,7,5,5,8,6,6,4,5,4,3];求均值得(取整)。可以看到,噪声点得到了抑制。
4 仿真结果分析
本文采用256×256的一幅Lena图像为例,如图2。加入p=20%的椒盐噪声、δ=10的高斯噪声后的图像如图3。用本文算法分别和传统中值滤波、均值滤波做比较,如图4。(第一步窗口取3×3,第二步取5×5)
图2 Lena原图 图3 加入混合噪声
(a)中值滤波 (b)均值滤波 (c)本文算法第一步滤波后 (d)本文算法最终滤波结果
图4 各滤波算法与本文混合滤波算法的比较
由图4可以看出,对于图像中的混合噪声,中值滤波和均值滤波的效果都十分模糊,并且不能完全消除椒盐噪声对图像的影响。本文算法在经过第一步滤波之后,椒盐噪声基本被全部滤除,再进行第二步后,高斯噪声也得到了有效的抑制。
5 性能分析
表1给出了Lena图像分别加入p=20%的椒盐噪声、δ=10的高斯噪声以及二者混合的图像经中值滤波、均值滤波和本文混合滤波后图像输出的归一化均方误差()[10]。 由如下定义得到:
式中为未受污染的原始图像和滤波后输出图像。值越小,则滤波效果越好。
由于本文滤波算法是分成两步进行,当图像中只含有椒盐噪声或高斯噪声时,只对图像进行相应的滤除椒盐噪声或高斯噪声操作,可以避免不必要的模糊现象发生。从表1可以看出,在单独滤除椒盐噪声和高斯噪声的效果上,本文的滤波算法均好于传统的均值滤波和中值滤波,并且对图像中的混合噪声也有很强的抑制作用。
表1 不同噪声污染滤波输出的归一化均方误差()
噪声源 中值滤波 平安培训管理系统均值滤波 混合滤波 |
椒盐噪声 0.0201 0.0482 0.0044 |
高斯噪声 0.0289 0.0263 0.0230 |
混合噪声 0.0452 0.0652 0.0238 |
昆明闪电 |
6 结论
本文提出了一种针对图像中混合噪声的滤除算法。通过分析椒盐噪声和高斯噪声的特点,先将二者进行区分,再分别滤除。仿真结果表明,本文提出的算法计算简单,在单独滤除椒盐噪声、高斯噪声或是二者的混合噪声时,都有较好的滤波效果。
图4 Trainscg训练示意图
表1列出了不同学习算法的训练所需的时间、网络测试的检测率、训练步数和均方误差四项指标的数据。
表1 三种算法的测试结果
博尔赫斯学习 函数 | 训练时间 (s) | 检测率 | 训练 步数 | 均方差 |
都市星主播trainlm | 约为0 | 95.37% | 7 | 3.0281 * 10 -5 |
trainoss | 2.35 * 10 -8 | 92.59% | 21 | 7.1425*10 |
trainscg | 1.58833 * 10 -7 | 93.52% | 345 | 0.0642 |
| | | | |
根据仿真实验的训练误差性能曲线图以及表1的测试数据,分析得出结论,学习算法为 trainlm的综合性能最佳,训练时间和检测率相对于其它算法均有优势,不仅训练时间大大缩短,提高了训练的速度;从准确率上看,也取得了令人满意的效果,可见,识别精度依赖于系统的训练数据、训练方法及训练精度;神经网络拓扑结构只有经过相当的尝试后才能确定下来。所以在这种情况下,trainlm算法的网络结构是最佳选择。