资源描述:
《matlab傅立叶变换及图像的频域处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六傅立叶变换及图像的频域处理一、实验目的1、理解离散傅立叶变换的基本原理;2、掌握应用MATLAB语言进行FFT及逆变换的方法;3、熟悉图像在频域中处理方法,应用MATLAB语言作简单的低通滤波器。二、实验原理1、傅立叶变换的基本知识2、MATLAB提供的快速傅立叶变换函数三、实验要求1、读取图像girl.bmp,显示这幅图像,对图像作傅立叶变换,显示频域振幅图像。作傅立叶逆变换,显示图像,看是否与原图像相同。A=imread('F:1girl.bmp','bmp');subplot(1,3,1),imshow(A);title('原图
2、像');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('逆变换后图像');2、设计一个简单的理想低通滤波器(截止频率自选),对图像作频域低通滤波,再作反变换,观察不同的截止频率下反变换后的图像与原图像的区别。A=imread('F:1girl.bmp','bmp');subplo
3、t(3,2,1),imshow(A);title('原图像');B=fftshift(fft2(A));6E=ifft2(B);subplot(3,2,2),imshow(log(abs(E)),[],'notruesize');title('未滤波的逆变换图像');[X,MAP]=imread('F:1girl.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(lo
4、g(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
5、(log(abs(D)),[],'notruesize');title('低通2逆变换图像');1、设计一个简单的理想高通滤波器(截止频率自选),对图像作频域高通滤波,再作反变换,观察不同的截止频率下反变换后的图像与原图像的区别。A=imread('F:1girl.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('未
6、滤波的逆变换图像');[X,MAP]=imread('F:1girl.bmp','bmp');6[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逆变换图像')
7、;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逆变换图像');1、(选做内容):对一幅图像作傅立叶变换,显示一幅频域图像的振幅分布图和相位分布图,分别对振幅分布和相位分布作傅立叶逆变换,观察两幅
8、逆变换后的图像,体会频域图像中振幅与位相的作用。I=imread('girl.bmp');A=fftshift(fft2(I));A1=angle(A