matlab-均值滤波

均值滤波

主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声。
缺点:容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。

均值滤波器的缺点是存在着边缘模糊的问题。对椒盐噪声不起作用

 

 P5 = (P1+P2+P3+P4+P5+P6+P7+P8+P9)/9

 

 P5 = (P1+P2+P3+P4+P6+P7+P8+P9)/8   方便在硬件上做运算 >>3

matlab代码

 1 clc
 2 clear
 3 clear all 
 4 close all
 5 %%%对图像做均值滤波处理
 6 img = imread('1.png');
 7 figure(1)
 8 subplot(2,2,1),imshow(img),title('原始图像')
 9 %%%将彩色图像转灰度图像
10 img_gray = rgb2gray(img);
11 subplot(2,2,2),imshow(img_gray),title('RGB-GRAY灰度图像')
12 %%%加入椒盐噪声
13 img_salt=imnoise(img_gray,'salt & pepper',0.05);
14 subplot(2,2,3),imshow(img_salt),title('加入椒盐噪声后')
15 %%%系统自带的均值滤波  系统自带的均值滤波输入参数为2维图像
16 img_mid=filter2(fspecial('average',3),img_salt)/255;
17 subplot(2,2,4),imshow(img_mid),title('对噪声图像均值滤波后');

Mean_Img = img_salt;
[ROW,COL]= size(Mean_Img);
for r = 2:1:ROW-1
for c = 2:1:COL-1
Mean_Img(r,c) = (img_salt(r-1, c-1) + img_salt(r-1, c) + img_salt(r-1, c+1) + img_salt(r, c-1) + img_salt(r, c) + img_salt(r, c+1) + img_salt(r+1, c-1) + img_salt(r+1, c) + img_salt(r+1, c+1)) / 9;
end
end
figure(2)
imshow(img_mid),title(‘对噪声图像均值滤波后’);