中值滤波器:
基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。中值滤波对椒盐噪声抑制很好,对高斯噪声抑制一般。 二维中值滤波可由下式表示:
程序代码如下:
clc %清除命令窗口的内容
close all %关闭所有的Figure窗口
clear all %清除工作空间的所有变量A = imread('Fig0507(a).tif');
figure,imshow(A),title('原图像');
B = Impulse_noise(A,0.2,0.2);%加入椒盐噪声
figure,imshow(B),title('对原图加上pa=0.2,pb=0.2的椒盐噪声后的图像');
C=Median_Filter(B);%对图像进行中值滤波
figure,imshow(C),title('使用大小为3×3的中值滤波器对图像进行滤波的结果');
中值滤波:
% 中值滤波
function v =Median_Filter(u) %中值滤波
u=im2double(u);
[m,n] = size(u);
v = zeros(m,n);for i = 2:m-1for j = 2:n-1A = [u(i-1,j-1),u(i-1,j),u(i-1,j+1),u(i,j-1),u(i,j),u(i,j+1),u(i+1,j-1),u(i+1,j),u(i+1,j+1)];v(i,j)=median(A); %取中值end
endend
实验结果:
使用中值滤波来处理椒盐噪声具有比较好的效果,因为中值滤波器是使用卷积模板的中值来代替像素值,而椒盐噪声的灰度值不是最小就是最大,所以它很容易被过滤掉。
通过实验分析,中值滤波器在处理被椒盐噪声污染后的图像后,依然存在一些噪声,这是由于其噪声概率密度较大的原因。标准中值滤波器使用图像中相应领域的中值代替该图像中的每一点,这会引起不必要的细节丢失。对第一次滤波后的图像进行再一次的滤波处理,图像将会变得光滑的许多,与原图像相差不大。