使用理想低通滤波器对图像进行处理显示

1、实验要求:对如下图像使用半径分别为5, 15, 30的理想低通滤波器进行处理,并分别显示结果图像。

使用理想低通滤波器对图像进行处理显示

2、实验过程:代码如下

%频率域滤波 

clc;close all; 

img=imread('1.tif'); 

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))<dist1) 

           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))<dist2) 

           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))<dist3) 

           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');


3、实验结果如下:


使用理想低通滤波器对图像进行处理显示