img = rgb2gray(imread('d:\test.bmp'));
r=10;
sigma=20;
block=2*r+1;
%方法1
sum=0.0;
for i=1:block
for j=1:block
gauss(i,j)=exp((-((i-r-1)^2+(j-r-1)^2))/(2*sigma*sigma))/(2*pi*sigma);
sum=sum+gauss(i,j);
end
end
for i=1:block
for j=1:block
gauss(i,j)=gauss(i,j)/sum;
end
end
K=imfilter(img,gauss,'conv', 'replicate');
figure(2);
imshow(K);
%方法2
H = fspecial('gaussian',[block,block],20);
G=imfilter(img, H, 'conv', 'replicate');
figure;
imshow(G);