理想低通滤波器(频率域滤波)

%频率域滤波
clc;
close all;
img=imread(‘Fig3.10(b).jpg’);
img=im2double(img);
Fimg=fft2(double(img));%傅里叶变换
Fimg=fftshift(Fimg);%将变换的原点移到频率矩形的中心
[M,N]=size(img);
%半径为5的理想低通滤波处理
dist1=5;
z1=zeros(M,N);
for i=1:M
for j=i:N
if(sqrt(((i-M/2)2+(j-N/2)2)) z1(i,j)=1;
end
end
end
g1=Fimg.*z1;
g1=ifftshift(g1);
img1=real(ifft2(g1));
%半径为15的理想低通滤波处理
dist2=15;
z2=zeros(M,N);
for i=1:M
for j=i:N
if(sqrt(((i-M/2)2+(j-N/2)2)) z2(i,j)=1;
end
end
end
g2=Fimg.*z2;
g2=ifftshift(g2);
img2=real(ifft2(g2));
%半径为30的理想低通滤波处理
dist3=20;
z3=zeros(M,N);
for i=1:M
for j=i:N
if(sqrt(((i-M/2)2+(j-N/2)2))

z3(i,j)=1;
end
end
end
g3=Fimg.*z3;
g3=ifftshift(g3);
img3=real(ifft2(g3));
%图像显示
subplot(2,2,1);imshow(img);title(‘原图’);
subplot(2,2,2);imshow(img1);title(‘半径5的理想低通滤波’);
imwrite(img1,’./半径5的理想低通滤波.png’);
subplot(2,2,3);imshow(img2);title(‘半径15的理想低通滤波’);
imwrite(img2,’./半径5的理想低通滤波.png’);
subplot(2,2,4);imshow(img3);title(‘半径30的理想低通滤波’);
imwrite(img3,’./半径5的理想低通滤波.png’);
理想低通滤波器(频率域滤波)_第1张图片

你可能感兴趣的:(matlab)