clear;
clc;
% 生成高斯模板
[x,y] = meshgrid([-3:3],[-3:3]);
sigma = 0.5;
h = exp(-(x.*x+y.*y)./(2*sigma^2))/(2*pi*sigma^2)
% 接着进行归一化处理
sumh = sum(h(:))
h = h/sumh;
% 模板已经生成,接下来开始模板处理图像
img = imread('lena.jpg');
[M,N] = size(img);
img = imnoise(img,'salt & pepper',0 ,0.02);
[hh,hw] = size(h);
H_size = floor(hh/2);
l_img = zeros(M+H_size*2,N+H_size*2);
l_img(H_size+1:H_size+M,H_size+1:H_size+N) = img;
new_img = zeros(M,N);
for i =1:M
for j=1:N
% 下面这一步是精华
t = l_img(i:i+hh-1,j:hw+j-1).*h;
new_img (i,j) = sum(t(:));
end
end
new_img = uint8(new_img);
figure,imshow(img)
figure,imshow(new_img)
看来降噪还是不太行,哈哈