1
改变图像质量的几种滤波方法比较
一、概述
滤波是图像处理重要技术之一,是提高图像质量的主要手段。
对输入的图像实现直方图均衡化;设计完成同态滤波器,并用之改善图象质量;对某图像加入不同类型﹑不同强度的噪声(周期﹑椒盐噪声),并分别用空间域和频率域的方法抑制噪声。
二、图像处理过程
1.直方图均衡化
输入一幅图片,统计原图直方图数组,用一个数组hf 记录hf(i);i 从0到255,令pa(i)=pa(i-1)+hf(i),其中hf(i)为灰度值为i 的像素点占总像素点的概率;一个数组F 记录新的索引值,即令F(i,j)= (pa(f(i,j)+1))*255;依次循环每一个像素,取原图的像素值作为数组F 的下标值,取该下标对应的数组值为均衡化之后的像素值。
结果显示原图图像、原图直方图,均衡化后的图像和直方图,并用于对比。
其中图像中灰度级出现的概率近似为:
()n n r p k
k r =,k=0,1,2,…,L -1。
而变换函数为:00()(),0,1,2,,1
k k j k k r j j j n s T r p r k L n ======-∑∑
2.巴特沃斯同态滤波器:
图像f(x,y)是由光源照度场(入射分量)fi(x,y)和场景中物体反射光(反射分量)的反射场fr(x,y)两部分乘积产生,关系式为: f(x,y)=fi(x,y)*fr(x,y);
fi(x,y)的性质取决于照射源,fr(x,y)取决于成像物体的特性。
一般情况下,照度场f i ( x , y) 的变化缓慢,在频谱上其能量集中于低频;而反射场f r ( x , y) 包含了所需要的图像细节信息,它在空间的变化较快,其能量集中于高频. 这样就可以根据照度—反射模型将图像理解为高频分量与低频分量乘积的结果。
由于两个函数乘积的傅立叶变换是不可分的,故不能直接对照度和反射的频率部分分别进行操作。
2
因此定义:z(x,y)=lnf(x,y)=lnfi(x,y)+lnfr(x,y)
则Z(u,v)=Fi(u,v)+Fr(u,v)
这里,Z(u,v)、Fi(u,v)和Fr(u,v)分别是lnf(x,y)、lnfi(x,y)和lnfr(x,y)的傅立叶变换。
这样就把fi(x,y)、fr(x,y)两个相乘分量变为两个相加的分量,借助一个滤波函数H(u,v)处理Z(u,v),
S(u,v)=H(u,v)Z(u,v)=H(u,v)Fi(u,v)+H(u,v)Fr(u,v)
这里,S(u,v)是结果的傅立叶变换。
这样便可以在频域内对高频和低频分开处理,以期增强图像对比度,并可压缩图像信号的动态范围。
然后将S(u,v)进行反傅立叶变换并取指数得到符合要求的增强图像。
具体实现的流程图如下所示:
(,)f x y ->取log->傅里叶变换->滤波->逆傅里叶变换->exp->(,)g x y
3.滤波去噪
对一幅图像加入椒盐噪声和周期噪声,利用中值滤波器和带阻滤波器去除噪声。
其中中值滤波器是用该像素的灰度中值来替代该像素的值:()(){}t s g median y x f xy s t s ,,ˆ),(∈=。
本实验中采用了3×3的模板。
而带阻滤波器采用了n 阶的巴特沃斯带阻滤波器。
它的表达式为:()()()n D v u D W v u D v u H 2202,,11
,⎥⎦⎤⎢⎣⎡-+=。
它能削减或消除周期性噪声。
三、几种常用滤波方法
1. 直方图均衡化
通过直方图均衡化,将对比度拉伸,从而扩大前景和背景灰度的差别,以达到增强对比度的目的,试验结果如图1所示。
3
图1 图像直方均衡化
可以看出,直方图均衡化以后的图像和调用histeq 函数得到的效果十分相近,所以达到了预期的效果。
2. 巴特沃斯同态滤波器滤波
对图像进行巴特沃斯同态滤波器滤波后,所得图像如图2所示:
4
图2 同态滤波前后图像对比
由图像中可以看出,同态滤波器能减少低频的贡献,而增加高频的贡献。
结果是同时进行动态范围的压缩和对比度的增强。
显而易见,同态滤波以后图像的显示效果明显优于原图,细节更加清晰,而且对比度也被增强。
3.空域滤波:
先将读入的图片加入椒盐噪声,然后用自行设计的中值滤波器对有噪声的图片进行去噪,所得的结果如图3所示:
图3 中值滤波前后图像对比
由于中值滤波是将每一像素领域内的值进行排序,然后取最中间的值,而椒盐噪声非黑即白,在排序中总是位于最大值或最小值,从而通过取中值来有效的将噪声滤除。
4.频域滤波:
本实验采用了n 阶的巴特沃斯带阻滤波器,试验结果如图4所示:
5
图4 n 阶的巴特沃斯带阻滤波前后对比
由图中明显看出,这个实验没有达到预期的效果。
4.结果分析:
直方图均衡化、同态滤波器以及中值滤波器经过处理的图像比原图像的视觉效果要好的多,很显然,经过处理的图像能达到更让人满意的结果。
而巴特沃斯带阻滤波器的效果却不明显,原因有以下几点:a 、在matlab 中没有加周期噪声的函数,因而在网上搜到了试验中的图片,直观的看,图像背景呈现网格状,应该含有正弦噪声,但并不确定;b 、对带阻滤波器的相关参数把握不好,在傅立叶频谱图中并没有发现关于中心对称的正弦噪声的频率,因而对参数D0、W 以及n 的设置无从下手,所以处理后的图像效果不如人意。
但显而易见的,处理后图像的频谱图中有一个黑色圆环,它就是带阻滤波器所阻止的频率范围,如果真的存在周期性噪声的话,只要将噪声所处的频率恰好被这个圆环包围,则一定可以很好的滤除周期性噪声。