各类滤波器的MATLAB程序
一、理想低通滤波器
IA=imread('lena.bmp');
[f1,f2]=freqspace(size(IA),'meshgrid');
Hd=ones(size(IA));
r=sqrt(f1.^2+f2.^2);
Hd(r>0.2)=0;
Y=fft2(double(IA));
Y=fftshift(Y);
Ya=Y.*Hd;
Ya=ifftshift(Ya);
Ia=ifft2(Ya);
figure
subplot(2,2,1),imshow(uint8(IA));
subplot(2,2,2),imshow(uint8(Ia));
figure
surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');
二、理想高通滤波器
IA=imread('lena.bmp');
[f1,f2]=freqspace(size(IA),'meshgrid');
Hd=ones(size(IA));
r=sqrt(f1.^2+f2.^2);
Hd(r<0.2)=0;
Y=fft2(double(IA));
Y=fftshift(Y);
Ya=Y.*Hd;
Ya=ifftshift(Ya);