matlab傅立叶变换和图像的频域处理.doc
文本预览下载声明
实验六 傅立叶变换及图像的频域处理
一、实验目的
1、理解离散傅立叶变换的基本原理;
2、掌握应用MATLAB语言进行FFT及逆变换的方法;
3、熟悉图像在频域中处理方法,应用MATLAB语言作简单的低通滤波器。
二、实验原理
1、傅立叶变换的基本知识
2、MATLAB提供的快速傅立叶变换函数
三、实验要求
读取图像girl.bmp,显示这幅图像,对图像作傅立叶变换,显示频域振幅图像。作傅立叶逆变换,显示图像,看是否与原图像相同。
A=imread(F:\1\girl.bmp,bmp);
subplot(1,3,1),imshow(A);title(原图像);
B=fftshift(fft2(A));
subplot(1,3,2),imshow(log(abs(B)), [ ], notruesize);title(二维傅立叶变换);
C= ifft2(B);
subplot(1,3,3),imshow(log(abs(C)), [ ], notruesize);title(逆变换后图像);
设计一个简单的理想低通滤波器(截止频率自选),对图像作频域低通滤波,再作反变换,观察不同的截止频率下反变换后的图像与原图像的区别。
A=imread(F:\1\girl.bmp,bmp);
subplot(3,2,1),imshow(A);title(原图像);
B=fftshift(fft2(A));
E= ifft2(B);
subplot(3,2,2),imshow(log(abs(E)), [ ], notruesize);title(未滤波的逆变换图像);
[X,MAP]=imread(F:\1\girl.bmp,bmp);
[m,n]=size(X);
H1=zeros(m,n);
H1(m/2:m, n/2:n)=1;
LOWPASS1=B.* H1;
C=ifft2(LOWPASS1);
subplot(3,2,3),imshow(log(abs(LOWPASS1)), [ ], notruesize);title(低通1);
subplot(3,2,4),imshow(log(abs(C)), [ ], notruesize);title(低通1逆变换图像);
H2=zeros(m,n);
H2(m/10:m, n/10:n)=1;
LOWPASS2=B.* H2;
D=ifft2(LOWPASS2);
subplot(3,2,5),imshow(log(abs(LOWPASS2)), [ ], notruesize);title(低通2);
subplot(3,2,6),imshow(log(abs(D)), [ ], notruesize);title(低通2逆变换图像);
设计一个简单的理想高通滤波器(截止频率自选),对图像作频域高通滤波,再作反变换,观察不同的截止频率下反变换后的图像与原图像的区别。
A=imread(F:\1\girl.bmp,bmp);
subplot(3,2,1),imshow(A);title(原图像);
B=fftshift(fft2(A));
E= ifft2(B);
subplot(3,2,2),imshow(log(abs(E)), [ ], notruesize);title(未滤波的逆变换图像);
[X,MAP]=imread(F:\1\girl.bmp,bmp);
[m,n]=size(X);
H1=ones(m,n);
H1(m/3:m*2/3, n/3:n*2/3)=0;
LOWPASS1=B.* H1;
C=ifft2(LOWPASS1);
subplot(3,2,3),imshow(log(abs(LOWPASS1)), [ ], notruesize);title(高通1);
subplot(3,2,4),imshow(log(abs(C)), [ ], notruesize);title(高通1逆变换图像);
H2=ones(m,n);
H2(m*3/5:m, n*3/5:n)=0;
LOWPASS2=B.* H2;
D=ifft2(LOWPASS2);
subplot(3,2,5),imshow(log(abs(LOWPASS2)), [ ], notruesize);title(高通2);
subplot(3,2,6),imshow(log(abs(D)), [ ], notruesize);title(高通2逆变换图像);
(选做内容):对一幅图像作傅立叶变换,显示一幅频域图像的振幅分布图和相位分布图,分别对振幅分布和相位分布作傅立叶逆变换,观察两幅逆变换后的图像,体会频域图像中振幅与位相的作用。
I=imread(girl.bmp);
A=f
显示全部