实验5傅立叶变换.docx
《实验5傅立叶变换.docx》由会员分享,可在线阅读,更多相关《实验5傅立叶变换.docx(20页珍藏版)》请在冰豆网上搜索。
![实验5傅立叶变换.docx](https://file1.bdocx.com/fileroot1/2022-11/27/12175fb1-6a35-46fd-998e-a2f9b9fda8e6/12175fb1-6a35-46fd-998e-a2f9b9fda8e61.gif)
实验5傅立叶变换
实验五傅立叶变换与频率域滤波
一、实验目的
1.理解傅立叶变换;
2.熟悉MATLAB中各种傅立叶变换相关的函数;
3.掌握频域滤波的步骤以及MATLAB的实现方法;
4.理解频域滤波器与空域滤波器的关系。
二、实验内容及步骤
1、傅立叶变换及傅立叶反变换
(1)傅立叶变换相关函数
MATLAB提供了几个和傅立叶变换相关的函数。
其说明如下:
F=fft2(f);二维傅立叶变换
real(F);傅立叶变换的实部
imag(F);傅立叶变换的虚部
abs(F);获得傅立叶频谱
fftshift(F);将变换的原点移至频率矩形的中心
ifft2(F);二维傅立叶反变换
iffshift(F);反中心平移
(2)傅立叶频谱
傅立叶频谱(傅立叶变换的幅度)反映了图像的频率成分。
幅值谱的能量往往集中于中低频部分,并且中低频部分的能量反映了图像的实体。
图像的噪声往往集中于高频部分。
下面的例子对课本中123页的图Fig4.03(a).jpg进行傅立叶变换,得到傅立叶频谱。
例:
x=imread('Fig4.03(a).jpg');
F=fft2(x);%二维傅立叶变换
FP=sqrt(real(F).^2+imag(F).^2);%计算傅立叶频谱,或者使用abs()函数
imshow(uint8(FP))%显示傅立叶频谱,直流成分分布在四个边角
figure
(2);imshow(uint8(fftshift(FP)))%中心平移的频谱图
思考题1:
对课本125页的图Fig4.04(a).jpg进行傅立叶变换,得到傅立叶频谱,为清楚地显示该谱,将其进行对数变换处理,增强其灰度细节。
结果类似于图5_1。
图5_1Fig4.04(a)的傅立叶谱
x=imread('Fig4.04(a).jpg');
F=fft2(x);
FP=sqrt(real(F).^2+imag(F).^2);
PP=fftshift(FP)
imshow(x)
figure
(2);
imshow(log(abs(PP)+1),[])
(3)傅立叶变换对
将一幅图像进行傅立叶变换,再进行傅立叶反变换,可以得到原始图像。
下面的例子对课本中134页的图Fig4.11(a)进行傅立叶变换,然后再进行傅立叶反变换,观察并了解实现过程。
理论上,经过傅立叶变换和傅立叶反变换,应该得到原始图像。
比较fa和f,基本差不多。
查看变量C的内容,可以看到他们之间还是有细微的差别的。
例:
closeall
f=imread('Fig4.11(a).jpg');
F=fft2(f);%傅立叶变换
ff=ifft2(F);%反傅立叶变换
fa=real(ff);%取实部
subplot(2,2,1),imshow(f);
subplot(2,2,2),imshow(F);%只显示变换的实部
subplot(2,2,3),imshow(ff,[]);
subplot(2,2,4),imshow(fa,[]);
figure
(2)
C=fa-double(f);%反变换回来的图像和原图相减
imshow(C,[]);%两者是有差别的
2、频率域滤波
按照频域滤波的步骤,在MATLAB中是很容易编程实现频域滤波。
由于滤波器就是频率域中的函数,关键是如何构造滤波器函数。
频域滤波的步骤为:
Ø对图像进行傅立叶变换DFT,即F(u,v);
Ø傅立叶变换原点中心平移;
Ø用滤波器函数H(u,v)乘以F(u,v);
Ø将原点反中心平移;
Ø傅立叶反变换;
Ø取上一步结果中的实部,即频域滤波后的结果。
(1)低通滤波
低通滤波是使低频部分通过,而使高频部分受到抑制,从而使图像变得平滑。
常用的低通滤波有理想低通滤波、巴特沃斯低通滤波和高斯低通滤波。
下面的例子实现了对课本135页图Fig4.11(a)进行理想低通滤波处理,截止频率D0=30。
例:
closeall
clearall
f=imread('Fig4.11(a).jpg');
%------构造理想低通滤波器----------
[HhHw]=size(f);%以图像的行列值作为滤波器的行列
H(1:
Hh,1:
Hw)=0;%滤波器的初值为0
x0=Hh/2;y0=Hw/2;%滤波器的中心点
forx=1:
Hh
fory=1:
Hw
if(sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0))<30)%理想低通滤波器D0=30
H(x,y)=1;
end
end
end
%-----------傅立叶变换及频域滤波---------
F=fft2(f);
F=fftshift(F);%中心平移
FF=F.*H;%频域滤波。
注意必须是点乘
FFS=ifftshift(FF);
g=ifft2(FF);%傅立叶反变换
g=abs(real(g));%取变换后的实部,并取绝对值
%显示并比较结果
figure
(1),imshow(f);title('原图')
figure
(2),imshow(H);title('理想低通滤波器')
figure(3),imshow(log(abs(F)+1),[]);title('频率谱')%对数变换,便于显示结果
figure(4),imshow(log(abs(FF)+1),[]);title('频域滤波')
figure(5),imshow(g,[]);title('滤波结果')
思考题2:
参考上例,使用理想低通滤波器对图Fig4.11(a).jpg进行频域滤波。
将理想低通滤波器的截止频率D0分别设为50、70、90,对结果进行分析与比较。
(1).50:
(2)70:
(3)90:
(2)高通滤波
高通滤波是使高频部分通过,而使低频部分受到抑制,从而使图像边缘锐化。
常用的高通滤波有理想高通滤波、巴特沃斯高通滤波和高斯高通滤波。
思考题3:
参考理想低通滤波器的构造方法,构造理想高通滤波器,并使用它对图Fig4.11(a).jpg进行理想高通滤波处理。
截止频率D0分别为15、30、80,对结果进行分析和比较。
closeall
clearall
f=imread('Fig4.11(a).jpg');
%------构造理想高通滤波器----------
[HhHw]=size(f);%以图像的行列值作为滤波器的行列
H(1:
Hh,1:
Hw)=0;%滤波器的初值为0
x0=Hh/2;y0=Hw/2;%滤波器的中心点
forx=1:
Hh
fory=1:
Hw
if(sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0))>30)%理想高通滤波器D0=15,D1=30,D2=80
H(x,y)=1;
end
end
end
%-----------傅立叶变换及频域滤波---------
F=fft2(f);
F=fftshift(F);%中心平移
FF=F.*H;%频域滤波。
注意必须是点乘
FFS=ifftshift(FF);
g=ifft2(FF);%傅立叶反变换
g=abs(real(g));%取变换后的实部,并取绝对值
%显示并比较结果
subplot(2,3,1),imshow(f);title('原图')
subplot(2,3,2),imshow(H);title('理想高通滤波器')
subplot(2,3,3),imshow(log(abs(F)+1),[]);title('频率谱')%对数变换,便于显示结果
subplot(2,3,4),imshow(log(abs(FF)+1),[]);title('频域滤波')
subplot(2,3,5),imshow(g,[]);title('滤波结果')
(1)15:
(2)30:
(3)80:
思考题4:
构造巴特沃思高通滤波器,并使用它对图Fig4.11(a).jpg进行高通滤波处理。
其中阶数n=2,截止频率D0分别为15、30、80,和思考题3使用理想高通滤波器滤波结果进行比较和分析。
注:
巴特沃思高通滤波器(BHPF)的传递函数为:
closeall
clearall
f=imread('Fig4.11(a).jpg');
%------构造理想高通滤波器----------
[HhHw]=size(f);%以图像的行列值作为滤波器的行列
H(1:
Hh,1:
Hw)=0;%滤波器的初值为0
x0=Hh/2;y0=Hw/2;%滤波器的中心点
forx=1:
Hh
fory=1:
Hw
if(sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0))>D)%理想高通滤波器D0=15,D1=30,D2=80
H(x,y)=1/(1+[D/sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0))]^4);
end
end
end
%-----------傅立叶变换及频域滤波---------
F=fft2(f);
F=fftshift(F);%中心平移
FF=F.*H;%频域滤波。
注意必须是点乘
FFS=ifftshift(FF);
g=ifft2(FF);%傅立叶反变换
g=abs(real(g));%取变换后的实部,并取绝对值
%显示并比较结果
subplot(2,3,1),imshow(f);title('原图')
subplot(2,3,2),imshow(H);title('理想高通滤波器')
subplot(2,3,3),imshow(log(abs(F)+1),[]);title('频率谱')%对数变换,便于显示结果
subplot(2,3,4),imshow(log(abs(FF)+1),[]);title('频域滤波')
subplot(2,3,5),imshow(g,[]);title('滤波结果')
(1)15:
(2)30:
(3)80:
三、频域滤波器的空间形式
由卷积定理我们知道,空间域滤波和频域滤波之间存在对应关系。
频域滤波器在空间域存在对应的空间域滤波器。
例:
closeall
clear
%-------构造理想低通滤波器----
H(1:
256,1:
256)=0;
x0=256/2;y0=256/2;
forx=1:
256
fory=1:
256
if(sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0))<30)%注1
H(x,y)=1;
end
end
end
figure
imshow(H,[])
fh=ifft2(H);%频域滤波器进行傅立叶反变换
fh=fftshift(fh);
figure
imshow(log(1+abs(real(fh))),[])
title('理想低通滤波器的空间形式')
程序:
closeall
clear
%-------构造理想低通滤波器----
H(1:
256,1:
256)=0;
x0=256/2;y0=256/2;
forx=1:
256
fory=1:
256
if(sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0))<30)%注1
H(x,y)=1;
end
end
end
subplot(1,2,1),imshow(H,[])
fh=ifft2(H);%频域滤波器进行傅立叶反变换
fh=fftshift(fh);
subplot(1,2,2),imshow(log(1+abs(real(fh))),[])
title('理想低通滤波器的空间形式')
思考题5:
观察截止频率分别为15、30、50时,理想低通滤波器的空间形式。
了解:
频域滤波器越窄,在空域的滤波器越宽,即空域滤波模板越大,滤除的低频成分越多,图像越模糊;以及理想低通滤波器的截止频率越小振铃现象越明显。
15:
30:
50:
四、实验报告及要求
1、按照上述实验步骤把实验结果截图,并附上文字说明。
2、回答思考题,写出实现的命令及实验结果截图。
3、使用word文档写报告,交电子文档;