呵呵,原来如此。看看这个是你想要的结果么?
im=imread('shiyan1.gif');
im=imadjust(im);
im1=imnoise(im,'salt & pepper',0.02);
F=fft2(double(im1));
Fshift=fftshift(F);
%F_magnitude=abs(Fshift);这句没必要的
figure(1)
imshow(log( F_magnitude),[]);
r = 30; %低通的中心半径,自己观察
m=256;n=256;
for i=1:m
for j=1:n
if (((i-m/2)^2+(j-n/2)^2) < r^2 )
mask(i,j) = 1;
else
mask(i,j) = 0;
end
end
end
im2_fft=Fshift.*mask;
im2=ifft2(ifftshift(im2_fft));
figure(2)
subplot(131),imshow(im),title('原图');
subplot(132),imshow(im1),title('加噪图');
subplot(133),imshow(uint8(real(im2)));
title('低通滤波图');
补充一点:如果对最后的滤波图效果不满意,还可以考虑进行对比度调节
[ 本帖最后由 花如月 于 2007-6-13 14:41 编辑 ] |