您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > matlab傅立叶变换及图像的频域处理
1实验六傅立叶变换及图像的频域处理一、实验目的1、理解离散傅立叶变换的基本原理;2、掌握应用MATLAB语言进行FFT及逆变换的方法;3、熟悉图像在频域中处理方法,应用MATLAB语言作简单的低通滤波器。二、实验原理1、傅立叶变换的基本知识2、MATLAB提供的快速傅立叶变换函数三、实验要求1、读取图像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('逆变换后图像');2、设计一个简单的理想低通滤波器(截止频率自选),对图像作频域低通滤波,再作反变换,观察不同的截止频率下反变换后的图像与原图像的区别。A=imread('F:\1\girl.bmp','bmp');subplot(3,2,1),imshow(A);title('原图像');B=fftshift(fft2(A));2E=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逆变换图像');3、设计一个简单的理想高通滤波器(截止频率自选),对图像作频域高通滤波,再作反变换,观察不同的截止频率下反变换后的图像与原图像的区别。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');3[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逆变换图像');4、(选做内容):对一幅图像作傅立叶变换,显示一幅频域图像的振幅分布图和相位分布图,分别对振幅分布和相位分布作傅立叶逆变换,观察两幅逆变换后的图像,体会频域图像中振幅与位相的作用。I=imread('girl.bmp');A=fftshift(fft2(I));A1=angle(A);B=ifft2(A);B1=ifft2(A1);4C=ifft2(abs(A));figure;subplot(2,3,1),imshow(I);title('原图像');subplot(2,3,2),imshow(A1,[],'notruesize');title('相位谱');subplot(2,3,3),imshow(log(abs(A)),[],'notruesize');title('傅立叶振幅频谱');subplot(2,3,4),imshow(log(abs(B)),[],'notruesize');title('直接图像逆变换');subplot(2,3,5),imshow(log(abs(B1)),[],'notruesize');title('相位逆变换');subplot(2,3,6),imshow(log(abs(C)),[],'notruesize');title('傅立叶振幅逆变换');原图像相位谱傅立叶振幅频谱直接图像逆变换相位逆变换傅立叶振幅逆变换5、(选做内容):设计一个其它类型(如巴特沃思、指数、梯形等)的低通滤波器,对图像作频域低通滤波,比较这一滤波器和理想滤波器滤波结果的差异。频域低通滤波:I=imread('girl.bmp');A=fftshift(fft2(I));d0=100;N=8;[m,n]=size(A);h=zeros(m,n);[a,b]=size(I);H=zeros(a,b);H(a/4:3*a/4,b/4:3*b/4)=1;fori=1:mforj=1:nd(i,j)=sqrt(i^2+j^2);h(i,j)=1/(1+(d(i,j)/d0)^(2*N));5endendlow1=A.*H;B=ifft2(low1);low2=A.*h;C=ifft2(low2);figure;subplot(2,3,4),imshow(I);title('原图像');subplot(2,3,2),imshow(log(abs(low1)),[],'notruesize');title('理想低通滤波频谱');subplot(2,3,3),imshow(log(abs(low2)),[],'notruesize');title('巴特沃思低通滤波频谱');subplot(2,3,1),imshow(log(abs(A)),[],'notruesize');title('傅立叶振幅频谱');subplot(2,3,5),imshow(uint8(abs(B)),[],'notruesize');title('理想低通滤波后图像');subplot(2,3,6),imshow(uint8(abs(C)),[],'notruesize');title('巴特沃思低通滤波后图像');原图像理想低通滤波频谱巴特沃思低通滤波频谱傅立叶振幅频谱理想低通滤波后图像巴特沃思低通滤波后图像时域低通滤波:I=imread('girl.bmp');A=fftshift(fft2(I));[m,n]=size(I);H=zeros(m,n);H(m/4:3*m/4,n/4:3*n/4)=1;low=A.*H;B=ifft2(low);[b,a]=butter(8,0.7);C=filter(b,a,double(I));figure;6subplot(1,3,1),imshow(I);title('原图像');subplot(1,3,2),imshow(uint8(abs(B)));title('理想低通滤波后图像');subplot(1,3,3),imshow(uint8(C));title('巴特沃思低通滤波后图像');原图像理想低通滤波后图像巴特沃思低通滤波后图像
本文标题:matlab傅立叶变换及图像的频域处理
链接地址:https://www.777doc.com/doc-4234568 .html