资源描述:
《二维傅里叶变换变换、性质和频域滤波》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三二维傅里叶变换变换、性质和频域滤波一、实验目的1、了解图像傅里叶变换的物理意义;2、掌握频域滤波原理;3、熟悉傅里叶变换的基本性质;4、熟练掌握FFT的变换方法及应用;5、通过实验了解二维频谱的分布特点;二、实验平台计算机和Matlab语言环境三、实验内容1、数字图像二维傅里叶变换及其对数显示2、频域滤波器处理图像3、二维傅里叶变换的性质(比例变换性、旋转、可分性)四、实验步骤1、二维傅里叶变换的性质1>二维傅里叶变换构造一幅图像,在64×64的黑色背景中产生一个5个白条纹,对其进行傅里叶变换f=zer
2、os(64,64);forj=1:5f(:,j*10:j*10+1)=1;endF=fft2(f);Fc=fftshift(F);subplot(1,2,1),imshow(f,[]);title('原始图像');subplot(1,2,2),imshow(abs(Fc),[]);title('图像傅里叶变换');2>比例变换性将图像扩大到原来的2倍后对其进行傅里叶变换,观察图像与原始图像的差异、频谱的差异fresize=imresize(f,2);fresize=fresize(31:94,31:94);F
3、resize=fft2(fresize);Fc1=fftshift(Fresize);subplot(1,2,1),imshow(fresize,[]);title('图像扩大2倍');subplot(1,2,2),imshow(abs(Fc1),[]);title('图像扩大2倍后傅里叶');3>旋转将图像旋转45度后对其进行傅里叶变换,观察图像与原始图像的差异、频谱的差异frotate=imrotate(f,45);%图像旋转Frotate=fft2(frotate);Fc2=fftshift(Frota
4、te);%图像旋转后做傅里叶变换subplot(1,2,1),imshow(frotate,[]);title('图像旋转');subplot(1,2,2),imshow(abs(Fc2),[]);title('图像旋转后傅里叶');4>可分性首先沿着图像的每一行计算一维变换,然后沿着中间结果的每一列计算一维变换,以此计算二维傅里叶fori=1:64fft_row(i,:)=fft(f(i,:));%沿着图像的每一行计算一维变换endforj=1:64fft_col(:,j)=fft(fft_row(:,j)
5、);%沿着中间结果的每一列计算一维变换endFc3=fftshift(fft_col);figure,imshow(abs(Fc3),[]);title('两次fft');2、数字图像二维傅里叶变换及其对数显示1>首先构造一幅图像,对其进行傅里叶变换f=zeros(30,30);f(5:24,13:17)=1;%构造一幅图像fF=fft2(f);%对f作二维傅里叶变换S=abs(F);%因为F是复数,显示其模值subplot(1,2,1),imshow(f,[]);title('原始图像');subplot(
6、1,2,2),imshow(S,[]);title('二维傅里叶频谱');2>把低频分量移到图象中心,而把高频分量移到四个角上Fc=fftshift(F);figure,imshow(abs(Fc),[]);title('居中的频谱');3>利用图象增强中动态范围压缩的方法增强2DFTS2=log(1+abs(Fc));%使用对数变换后的频谱ff=ifft2(F);%逆变换ff_real=real(ifft2(F));%取实部figure,imshow(abs(S2),[]);title('使用对数变换后的频
7、谱');3、频域滤波器1>理想低通滤波读取一幅图像,傅里叶变换后作中心变换,取低频模板HLPF与原图像相乘;clcf=imread('C:Users 00000Desktopexpexp3a.tif');F=fft2(f);Fc=fftshift(F);[MN]=size(f);HLPF=zeros(M,N);HLPF(M/2-50:M/2+50,N/2-50:N/2+50)=1;%保留低频成分Fc1=Fc.*HLPF;%理想低通滤波器处理F1=ifftshift(Fc1);%逆中心变换ff1=i
8、fft2(F1);%理想低通滤波后逆变换subplot(1,2,1),imshow(f,[]);title('原始图像');subplot(1,2,2),imshow(abs(ff1),[]);title('理想低通滤波器处理后的图像');2>巴特沃斯低通滤波器函数dftuv提供了距离计算的网格数组输出为[U,V],D0=0.1*N;D=sqrt(U.^2+V.^2);[U,V]=dftuv(M,N