均值滤波和中值滤波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
均值滤波与自适应中值滤波的仿真与实现
摘要
图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵,然而在图像使用和传输过程中,不可避免会受到噪声的干扰,因此为了恢复原始图像,达到好的视觉效果,需要对图像进行滤波操作。
根据噪声种类不同,可以采用不同的滤波方法,均值滤波是典型的线性滤波算法,能够有效滤波图像中的加性噪声,而中值滤波器是能够有效滤除脉冲噪声的非线性滤波器,但传统中值滤波去脉冲噪声的性能受滤波窗口尺寸的影响较大, 在抑制图像噪声和保护细节两方面存在矛盾。
本文首先对不同均值滤波器在处理不同噪声方面的优缺点进行了分析,然后分别用中值滤波器和自适应中值滤波器对被椒盐噪声污染的图像进行了滤波操作,发现自适应中值滤波方法不仅可以有效滤波椒盐噪声,同时还可以有效地克服中值滤波器造成图像边缘模糊的缺点。
1.均值滤波
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素点和其本身像素点。
再用模板中的全体像素的平均值来代替原来像素值。
均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。
线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其邻近的若干像素组成,求模板中所有像素
的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度值g(x,y),即g(x,y)=1/m ∑f(x,y), m为该模板中包含当前像素在内的像素总个数。
均值滤波能够有效滤除图像中的加性噪声,但均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊。
均值滤波主要有算术均值滤波,几何均值滤波,谐波均值滤波以及逆谐波均值滤波,本文只对算术均值滤波,几何均值滤波和逆谐波均值滤波进行研究。
其中几何均值滤波器所达到的平滑度可以与算术均值滤波器相比,但在滤波过程中丢失更少的图象细节。
逆谐波均值滤波器更适合于处理脉冲噪声,但它有个缺点,就是必须要知道噪声是暗噪声还是亮噪声,以便于选择合适的滤波器阶数符号,如果阶数的符号选择错了可能会引起灾难性的后果。
下面分别对算术平均滤波,几何平均滤波和逆谐波均值滤波对不同噪声的滤波效果进行仿真分析。
1.1算术平均滤波,几何平均滤波和逆谐波均值滤波对高斯噪声进行滤波
A 原始图像
B 高斯噪声污染的图像
C 用3x3算术均值滤波器滤波后图像
D 用3x3几何均值滤波器滤波后图像
E Q=-1.5的逆谐波滤波器滤波后图像
F Q=1.5的逆谐波滤波器滤波后图像
图一均值滤波(高斯噪声)
如图一所示,图A为原始图像,图B为被高斯噪声污染的图像,图C为用3x3算术均值滤波处理后的图像,图D为用3x3几何均值滤波处理后的图像,图E为用Q=-1.5的逆谐波均值滤波处理后的图像,图F为用Q=1.5的逆谐波均值滤波处理后的图像。
与图B进行比较,图C,D,E,F经均值滤波处理后视觉效果明显改善,说明均值滤波能有效滤除图像中的高斯噪声。
将图C,D,E与图A进行对比可以看出,对图像进行均值滤波后,图像细节处变得模糊了,说明均值滤波在去除噪声的同时也破坏了图像的细节部分。
将图C与图D进行对比,可以发现,图D中的细节部分保留得较多,说明几何均值滤波与算术均值滤波器相比,在滤波过程中丢失更少的图像细节。
将图E,图F与图A进行对比可以发现,当Q为正数时,处理后图像中黑色线条比原图变细了,当Q为负数时,处理后图像中黑色线条比原图变粗了,说明当Q为正数时,
逆谐波滤波器会从黑色物体边缘移走一些黑色像素,而当Q为负数时,逆谐波滤波器会从亮色物体边缘移走一些白色像素。
1.2算术平均滤波,几何平均滤波和逆谐波均值滤波对椒盐噪声进
行滤波
A 原始图像
B 椒盐噪声污染的图像
C 用3x3算术均值滤波器滤波后图像
D 用3x3几何均值滤波器滤波后图像
E Q=-1.5的逆谐波滤波器滤波后图像
F Q=1.5的逆谐波滤波器滤波后图像
图二均值滤波(椒盐噪声)
如图二所示,图A为原始图像,图B为被椒盐噪声污染的图像,图C为用3x3算术均值滤波处理后的图像,图D为用3x3几何均值滤波处理后的图像,图E为用Q=-1.5的逆谐波均值滤波处理后的图像,图F为用Q=1.5的逆谐波均值滤波处理后的图像。
与图B进行比较,图C,D,E,F经均值滤波处理后的图像中仍有很多噪声点,椒盐噪声并没有完全去除,并且滤波后图像比原图要模糊,说明均值滤波不能很好的滤除椒盐噪声,这是因为椒盐噪声是幅值近似相等但随机分布在不同位置上,图像中有暗点也有亮点。
且其噪声的均值不为0,所以均值去滤波不能很好地除噪声点。
将图E,F分别于图B进行对比可以发现,当Q为负数时,图B 中的“盐噪声”(亮点)被滤除了,但“胡椒”(黑点)噪声保留
了下来;当Q为正数时,图B中的“胡椒噪声”被滤除了,但“盐”噪声保留了下来。
说明当Q为正数时,逆谐波均值滤波对“胡椒”噪声有很好的滤除作用,当Q为负数时,逆谐波均值滤波对“盐”噪声有很好的滤除作用。
但逆谐波均值滤波不能同时滤除“胡椒”噪声和“盐”噪声,因为Q值在一次处理过程中是确定的。
1.3算术平均滤波,几何平均滤波和逆谐波均值滤波对均匀分布噪
声进行滤波
A 原始图像
B 均匀分布噪声污染的图像
C 用3x3算术均值滤波器滤波后图像
D 用3x3几何均值滤波器滤波后图像
E Q=-1.5的逆谐波滤波器滤波后图像
F Q=1.5的逆谐波滤波器滤波后图像
图三均值滤波(均匀分布噪声)
如图三所示,图A为原始图像,图B为被均匀分布噪声污染的图像,图C为用3x3算术均值滤波处理后的图像,图D为用3x3几何均值滤波处理后的图像,图E为用Q=-1.5的逆谐波均值滤波处理后的图像,图F为用Q=1.5的逆谐波均值滤波处理后的图像。
与图B进行比较,图C,D,E,F经均值滤波处理后的图像,噪声分量明显减少了,图像效果有了很大改善,说明均值滤波能有效滤除图像中的均匀分布噪声。
1.4 结论
(1)均值滤波对高斯噪声和均匀分布噪声的抑制作用是比较好的,但对椒盐噪声的影响不大,在削弱噪声的同时整幅图像总体也变得模糊,其噪声仍然存在。
(2)经均值滤波处理后的图像边缘和细节处模糊变得模糊,说明均值滤波在去除噪声的同时也破坏了图像的细节部分。
(3)逆谐波均值滤波器能够减少和消除图像中的椒盐噪声。
当Q 为正数时,逆谐波均值滤波对“胡椒”噪声有很好的滤除作用,当Q为负数时,逆谐波均值滤波对“盐”噪声有很好的滤除作用。
但逆谐波均值滤波不能同时滤除“胡椒”噪声和“盐”噪声。
2.中值滤波
中值滤波是一种常用的非线性平滑滤波器,其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值来替换,其主要功能是让周围像素灰度值差别比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点,所以中值滤波对于滤除图像的椒盐噪声非常有效。
常规中值滤波器对长拖尾概率分布的噪声能起到良好的平滑效果。
不仅如此,它在消除噪声的同时还具有保护边界信息的优点,对图像中的某些细节起到保护作用,因而在图像去噪处理中得到了比较广泛的应用。
但是常规中值滤波去脉冲噪声的性能受滤波窗口尺寸的影响较大,而且它在抑制图像噪声和保护细节两方面存在一定的矛盾:取的滤波窗口越小,就可较好地保护图像中某些细节,但滤除噪声的能力会受到限制;反之,取的滤波窗口越大就可加强噪声抑制
能力,但对细节的保护能力会减弱。
这种矛盾在图像中噪声干扰较大时表现得尤为明显。
根据经验:在脉冲噪声强度大于0.2时常规中值滤波的效果就显得不令人满意了。
但是由于常规中值滤波器所使用的滤波窗口大小是固定不变的,所以我们在选择窗口大小和保护细节两方面只能做到二选一,这样矛盾始终得不到解决。
因此,单单采用常规中值滤波的方法在图像去噪应用中是远远不够的,这就需要寻求新的改进算法来解决这一矛盾。
自适应中值滤波器的滤波方式和常规的中值滤波器一样,都使用一个矩形区域的窗口Sxy,不同的是在滤波过程中,自适应滤波器会根据一定的设定条件改变(即增加)滤波窗的大小,同时当判断滤波窗中心的像素是噪声时,该值用中值代替,否则不改变其当前像素值。
这样用滤波器的输出来替代像素(x,y)处(即目前滤波窗中心的坐标)的值。
自适应中值滤波器可以处理噪声概率更大的脉冲噪声,同时能够更好地保持图像细节,这是常规中值滤波器做不到的。
下面我们分别用常规中值滤波和自适应中值滤波对被椒盐噪声污染的图像进行滤波后的效果进行分析。
2.1 利用中值滤波对被椒盐噪声污染的图像进行滤波
A 原始图像
B 被椒盐噪声污染的图像
C 常规中值滤波后的图像
D 自适应中值滤波后的图像
图四中值滤波
如图四所示,图A是原始图像,图B是加了椒盐噪声的图像,图C是经过常规中值滤波器滤波后的图像,图D是自适应中值滤波后的图像。
将图C,D与图B进行对比可以看出,中值滤波对滤除椒盐图像噪声效果比较明显。
将图C与图D进行对比可以看出,利用自适应中值滤波滤除椒盐噪声效果明显好于常规中值滤波,自适应中值滤波克服了中值滤波不能有效的保持图像细节的问题。
在去除图像椒盐噪声的同时,还能够保持图像比较清晰的轮廓。
自适应中值滤波器能够很好的处理图像的细节和边缘,使图像更加细腻,清晰,给人以良好的视觉冲击。
2.2 结论
(1)中值滤波对去除“椒盐”噪声可以起到很好的效果,因为椒盐噪声只在画面中的部分点上随机出现,所以根据中值滤波原理可知,通过数据排序的方法,将图像中未被噪声污染的点代替噪声点的值的概率比较大,因此噪声的抑制效果很好。
(2)中值滤波与均值滤波相比,在去除图像椒盐噪声的同时还能够保持图像比较清晰的轮廓。
(3)自适应中值滤波器与常规中值滤波相比,能够更好的处理图像的细节和边缘,使图像更加细腻,清晰,给人以良好的视觉冲击。
在图像处理过程中,消除图像的噪声干扰是一个非常重要的问题,本文利用matlab软件,采用中值和均值滤波的方式,对带有椒盐噪声的图像进行处理,经过滤波后的图像既适合人眼的视觉感觉又能够消除图像中的干扰影响。
通过本次试验我们可以看到中值滤波对于滤除图像的“椒盐”噪声非常有效,它可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果,尤其在滤除叠加白噪声和长尾叠加噪声方面显出极好的性能。
但均值滤波效果一般。
因此中值滤波是图像处理所不可缺少的,许多类型的图像噪声都可以利用中值滤波法加以除噪。
3.MATLAB 程序
3.1.I=imread('dianlu.tif');
subplot(231),imshow(I);title('A 原始图像');
I1=double(imnoise(I,'gaussian',0.06));
subplot(232),imshow(I1,[]);title('B 高斯噪声污染的图像');
I2=imfilter(I1,fspecial('average',3));
subplot(233),imshow(I2,[]);title('C 用3x3均值滤波器滤波后图像');
I3=exp(imfilter(log(I1),fspecial('average',3)));
subplot(234),imshow(I3,[]);title('D 用3x3几何滤波器滤波后图像');
Q=-1.5;
I4=imfilter(I1.^(Q+1),fspecial('average',3))./imfilter(I1.^Q,fspecial('average',3));
Q=1.5;
I5=imfilter(I1.^(Q+1),fspecial('average',3))./imfilter(I1.^Q,fspecial('average',3)); subplot(235),imshow(I4,[]);title('E Q=-1.5逆谐波滤波器滤波后图像');
subplot(236),imshow(I5,[]);title('F Q=1.5逆谐波滤波器滤波后图像');
3.2.I=imread('dianlu.tif');
subplot(231),imshow(I);title('A 原始图像');
I1=double(imnoise(I,'salt & pepper',0.02));
subplot(232),imshow(I1,[]);title('B 椒盐噪声污染的图像');
I2=imfilter(I1,fspecial('average',3));
subplot(233),imshow(I2,[]);title(' C 用3x3均值滤波器滤波后图像');
I3=exp(imfilter(log(I1),fspecial('average',3)));
subplot(234),imshow(I3,[]);title(' D 用3x3几何滤波器滤波后图像');
Q=-1.5;
I4=imfilter(I1.^(Q+1),fspecial('average',3))./imfilter(I1.^Q,fspecial('average',3)); Q=1.5;
I5=imfilter(I1.^(Q+1),fspecial('average',3))./imfilter(I1.^Q,fspecial('average',3)); subplot(235),imshow(I4,[]);title(' E Q=-1.5逆谐波滤波器滤波后图像'); subplot(236),imshow(I5,[]);title(' F Q=1.5逆谐波滤波器滤波后图像');
3.3.I=imread('dianlu.tif');
subplot(231),imshow(I);title(' A 原始图像');
I1=double(imnoise(I,'speckle',0.05));
subplot(232),imshow(I1,[]);title(' B 均匀分布噪声污染的图像');
I2=imfilter(I1,fspecial('average',3));
subplot(233),imshow(I2,[]);title(' C 用3x3均值滤波器滤波后图像');
I3=exp(imfilter(log(I1),fspecial('average',3)));
subplot(234),imshow(I3,[]);title(' D 用3x3几何滤波器滤波后图像');
Q=-1.5;
I4=imfilter(I1.^(Q+1),fspecial('average',3))./imfilter(I1.^Q,fspecial('average',3)); Q=1.5;
I5=imfilter(I1.^(Q+1),fspecial('average',3))./imfilter(I1.^Q,fspecial('average',3)); subplot(235),imshow(I4,[]);title(' E Q=-1.5逆谐波滤波器滤波后图像'); subplot(236),imshow(I5,[]);title(' F Q=1.5逆谐波滤波器滤波后图像');
3.4.I=imread('dianlu.tif');
J=imnoise(I,'salt & pepper',0.1);
[m,n]=size(J);
F=zeros(m,n);
for i=1:m
for j=1:n
if J(i,j)>190
F(i,j)=1;
end
if J(i,j)<40
F(i,j)=1;
end
end
end
R = medfilt2(J);
R1=R;
for i=1:m
for j=1:n
if F(i,j)==0
R1(i,j)=J(i,j);
end
end
end
subplot(2,2,1);imshow(I);title('A原始图像');
subplot(2,2,2);imshow(J); title('B 被椒盐噪声污染的图像'); subplot(2,2,3);imshow(R);title('C 常规中值滤波后的图像'); subplot(2,2,4);imshow(R1);title('D 自适应中值滤波后的图像');。