搜档网
当前位置:搜档网 › 二维傅里叶变换变换、性质和频域滤波

二维傅里叶变换变换、性质和频域滤波

二维傅里叶变换变换、性质和频域滤波
二维傅里叶变换变换、性质和频域滤波

实验三二维傅里叶变换变换、性质和频域滤波

一、实验目的

1、了解图像傅里叶变换的物理意义;

2、掌握频域滤波原理;

3、熟悉傅里叶变换的基本性质;

4、熟练掌握FFT的变换方法及应用;

5、通过实验了解二维频谱的分布特点;

二、实验平台

计算机和Matlab语言环境

三、实验内容

1、数字图像二维傅里叶变换及其对数显示

2、频域滤波器处理图像

3、二维傅里叶变换的性质(比例变换性、旋转、可分性)

四、实验步骤

1、二维傅里叶变换的性质

1> 二维傅里叶变换

构造一幅图像,在64×64的黑色背景中产生一个5个白条纹,对其进行傅里叶变换

f = zeros(64,64);

for j=1:5

f(:,j*10:j*10+1)=1;

end

F=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);

Fresize=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(Frotate);%图像旋转后做傅里叶变换subplot(1,2,1),imshow(frotate,[ ]);title('图像旋转');

subplot(1,2,2),imshow(abs(Fc2),[ ]);title('图像旋转后傅里叶');

4> 可分性

首先沿着图像的每一行计算一维变换,然后沿着中间结果的每一列计算一维变换,以此计算二维傅里叶

for i=1:64

fft_row(i,:)=fft(f(i,:));%沿着图像的每一行计算一维变换 end

for j=1:64

fft_col(:,j)=fft(fft_row(:,j));%沿着中间结果的每一列计算一维变换

end

Fc3=fftshift(fft_col);

figure,imshow(abs(Fc3),[ ]);title('两次fft');

2、数字图像二维傅里叶变换及其对数显示

1> 首先构造一幅图像,对其进行傅里叶变换

f = zeros(30,30);

f(5:24,13:17) = 1; %构造一幅图像f

F=fft2(f); %对f作二维傅里叶变换

S=abs(F); %因为F是复数,显示其模值

subplot(1,2,1),imshow(f,[ ]);title('原始图像');

subplot(1,2,2),imshow(S,[ ]);title('二维傅里叶频谱');

2> 把低频分量移到图象中心,而把高频分量移到四个角上

Fc=fftshift(F);

figure,imshow(abs(Fc),[ ]);title('居中的频谱');

3> 利用图象增强中动态范围压缩的方法增强2DFT

S2=log(1+abs(Fc)); %使用对数变换后的频谱

ff=ifft2(F); %逆变换

ff_real=real(ifft2(F)); %取实部

figure,imshow(abs(S2),[ ]);title('使用对数变换后的频谱');

3、频域滤波器

1> 理想低通滤波

读取一幅图像,傅里叶变换后作中心变换,取低频模板HLPF与原图像相乘;

clc

f = imread(' C:\Users\000000\Desktop\exp\exp3\a.tif');

F=fft2(f);

Fc=fftshift(F);

[M N]=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=ifft2(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);

D0=0.1*N;D=sqrt(U.^2+V.^2);

n=5;

HBLPF=1./(1+(D/D0).^(2*n));HBLPF=fftshift(HBLPF);

Fc2=Fc.*HBLPF;

F2=ifftshift(Fc2);ff2=ifft2(F2);

figure,imshow(abs(ff2),[ ]);title('巴特沃斯低通滤波器处理后的图像');

3> 高斯低通滤波器

HGLPF=exp(-(U.^2+V.^2)/(2*D0^2));

HGLPF=fftshift(HGLPF);

Fc3=Fc.*HGLPF;

F3=ifftshift(Fc3);ff3=ifft2(F3);

figure,imshow(abs(ff3),[ ]);title('高斯低通滤波器处理后的图像');

4> 3种高通滤波器

理想高通滤波器、巴特沃斯高通滤波器、高斯高通滤波器

HHPF=1-HLPF;%理想高通滤波器传递函数

HBHPF=1-HBLPF;%巴特沃斯高通滤波器传递函数

HGHPF=1-HGLPF;%高斯高通滤波器传递函数

Fc4=Fc.*HHPF;%理想高通滤波器处理

Fc5=Fc.*HBHPF;%巴特沃斯高通滤波器处理

Fc6=Fc.*HGHPF;%高斯高通滤波器处理

F4=ifftshift(Fc4);ff4=ifft2(F4);%理想高通滤波后逆变换

F5=ifftshift(Fc5);ff5=ifft2(F5);%巴特沃斯高通滤波后逆变换

F6=ifftshift(Fc6);ff6=ifft2(F6);%高斯高通滤波后逆变换

figure(3),

subplot(2,2,1),imshow(f,[ ]);title('原始图像');

subplot(2,2,2),imshow(abs(ff4),[ ]);title('理想高通滤波后的图像'); subplot(2,2,3),imshow(abs(ff5),[ ]);title('巴特沃斯高通滤波后的图像'); subplot(2,2,4),imshow(abs(ff6),[ ]);title('高斯高通滤波后的图像');

六、思考题

1.二维DFT的可分离性的意义?

答:二维DFT的可分离性为我们提供了计算二维DFT的方法,即将一个二维傅里叶变换的运算分解为水平方向和垂直方向上的两次一维DFT运算。

2.对图像旋转某个角度,其Fourier变换谱有什么变换?对图像进行尺度伸缩变换,其对应在Fourier变换谱有什么变换?

,即:原图像旋转,其傅里叶频谱也旋转相同角度

3.对图像的Fourier相位谱,进行Fourier逆变换,其结果怎样?对图像的Fourier变换再求Fourier变换,其结果怎样?

相位谱包含图像的纹理结构信息,Fourier逆变换后,图像的细节结构保存下来,而图像的明暗对比不明显;对图像的Fourier变换再求Fourier变换,图像与原图成镜像。

4.频域理想LPF和频域巴特沃斯LPF处理效果有什么不同?

理想低通滤波器由于是锐截止的,处理后的图像中出现不应有的亮环——“振铃”效应,图像也变得模糊一些;巴特沃斯低通滤波器是非锐截止的,可以提高图像的细节清晰度。

七、实验报告要求

1、写出二维DFT变换的公式,并解释其含义。

二维DFT :,其中,f(x,y)表示一幅大小为M*N的图像

2、写出FFT算法的思想。

主要利用了的对称性和周期性,即()﹦和﹦,把一个N项序列(设N=2k,k为正整数)分为两个N/2项的子序列,每个N/2点DFT 变换需(N/2)2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换,将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT 运算单元。

文档已经阅读完毕,请返回上一页!

相关主题