1. 均值滤波概述
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。再用模板中的全体像素的平均值来代替原来像素值。
均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m ∑f(x,y) m为该模板中包含当前像素在内的像素总个数。
均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。
2 调试
2.1 matlab调试结果及代码
MATLAB代码
I=imread('D:\Administrator\My Pictures\lenagray.bmp');
J1=imnoise(I,'salt & pepper',0.02);
%均值为0,方差为0.02 椒盐噪声
J2=imnoise(I,'gaussian',0.02);
%均值为0,方差为0.02 高斯噪声
subplot(2,2,1),imshow(J1);
subplot(2,2,2),imshow(J2);
%均值滤波
I1=avg_filter(J1,3)
I2=avg_filter(J2,3)