%de_noi_img 空间滤波
ori_img=imread('photo3.bmp');
% figure,imshow(ori_img,[]);title('original image')
noi_img=imnoise(ori_img,'salt & pepper',0.002);
r=double(noi_img(:,:,1));
g=double(noi_img(:,:,2));
b=double(noi_img(:,:,3));
% w1=double(ones(20)); %blur 模糊 smooth average
w2=double(kron([1,4,6,4,1]'/256,[1,4,6,4,1])); % 高斯平滑
w3=double([0,0.2,0;0.2,0.2,0.2;0,0.2,0]); % blur 邻域加权
gr1=conv2(r,w3,'same');
gg1=conv2(g,w3,'same');
gb1=conv2(b,w3,'same');
gr2=conv2(r,w2,'same');
gg2=conv2(g,w2,'same');
gb2=conv2(b,w2,'same');
% gr3=conv2(r,w3,'same');
% gg3=conv2(g,w3,'same');
% gb3=conv2(b,w3,'same');
grg=mat2gray(gr1);
ggg=mat2gray(gg1);
gbg=mat2gray(gb1);
grg2=mat2gray(gr2);
ggg2=mat2gray(gg2);
gbg2=mat2gray(gb2);
filtered_img1=cat(3,grg,ggg,gbg); % 邻域加权
filtered_img2=cat(3,grg2,ggg2,gbg2); % 邻域加权
subplot(2,2,1),imshow(ori_img,[]),title('original_img');
subplot(2,2,2),imshow(noi_img,[]),title('noi_img');
subplot(2,2,3),imshow(filtered_img1,[]);title('filtered img 邻域')
subplot(2,2,4),imshow(filtered_img2,[]);title('filtered img 高斯')
滤波测试