资源描述:
《(精心整理)图像的傅里叶变换》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、图像的傅里叶变换FourierTransformationForImage时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简谐波外,很难明确揭示信号的频率组成和各频率分量大小。图例:受噪声干扰的多频率成分信号时间幅值频率时域分析频域分析信号频谱X(f)代表了信号在不同频率分量成分的大小,能够提供比时域信号波形更直观,丰富的信息。一维FT及其反变换连续函数f(x)的傅立叶变换F(u):傅立叶变换F(u)的反变换:一维DFT及其反变换离散函数f(x)(其中x,u=0,1,2,…,N-1)的傅立叶变换:F(u)的反变换的反变换:计算F(u):在指数项中代
2、入u=0,然后将所有x值相加,得到F(0);2)u=1,复对所有x的相加,得到F(1);3)对所有M个u重复此过程,得到全部完整的FT。离散傅里叶变换及其反变换总存在。用欧拉公式得每个F(u)由f(x)与对应频率的正弦和余弦乘积和组成;u值决定了变换的频率成份,因此,F(u)覆盖的域(u值)称为频率域,其中每一项都被称为FT的频率分量。与f(x)的“时间域”和“时间成份”相对应。傅里叶变换的作用傅里叶变换将信号分成不同频率成份。类似光学中的分色棱镜把白光按波长(频率)分成不同颜色,称数学棱镜。傅里叶变换的成份:直流分量和交流分量信号变化的快慢与频率域的频率有
3、关。噪声、边缘、跳跃部分代表图像的高频分量;背景区域和慢变部分代表图像的低频分量二维DFT傅里叶变换一个图像尺寸为M×N的函数f(x,y)的离散傅立叶变换F(u,v):F(u,v)的反变换:二维DFT傅里叶变换(u,v)=(0,0)位置的傅里叶变换值为即f(x,y)的均值,原点(0,0)的傅里叶变换是图像的平均灰度。F(0,0)称为频率谱的直流分量(系数),其它F(u,v)值称为交流分量(交流系数)。二维连续傅里叶变换1)定义2)逆傅里叶变换3)傅里叶变换特征参数频谱/幅度谱/模能量谱/功率谱相位谱傅里叶变换中出现的变量u和v通常称为频率变量,空间频率可以理
4、解为等相位线在x,y坐标投影的截距的倒数。xy0XY相应的空间频率分别为对图像信号而言,空间频率是指单位长度内亮度作周期性变化的次数。思考:噪声、线、细节、背景或平滑区域对应的空间频率特性?傅里叶变换的意义傅里叶变换好比一个玻璃棱镜棱镜是可以将光分成不同颜色的物理仪器,每个成分的颜色由波长决定。傅里叶变换可看做是“数学中的棱镜”,将函数基于频率分成不同的成分。一些图像的傅里叶变换是g(x,y)的频谱,物函数g(x,y)可以看作不同方向传播的单色平面波分量的线性叠加。为权重因子。空间频率表示了单色平面波的传播方向。对于xy平面上一点的复振幅分布g(x,y)可由
5、逆傅里叶变换表示成:二维离散傅里叶变换1)定义2)逆傅里叶变换离散的情况下,傅里叶变换和逆傅里叶变换始终存在。例设一函数如图(a)所示,如果将此函数在自变量并重新定义为图(b)离散函数,求其傅里叶变换。取样(a)(b)xy1-1j-j图像的频谱幅度随频率增大而迅速衰减许多图像的傅里叶频谱的幅度随着频率的增大而迅速减小,这使得在显示与观察一副图像的频谱时遇到困难。但以图像的形式显示它们时,其高频项变得越来越不清楚。解决办法:对数化2526主极大的值用Fmax表示,第一个旁瓣的峰值用Fmin表示例题:对一幅图像实施二维DFT,显示并观察其频谱。解:源程序及运行结
6、果如下:%对单缝进行快速傅里叶变换,以三种方式显示频谱,%即:直接显示(坐标原点在左上角);把坐标原点平%移至中心后显示;以对数方式显示。f=zeros(512,512);f(246:266,230:276)=1;subplot(221),imshow(f,[]),title('单狭缝图像')F=fft2(f);%对图像进行快速傅里叶变换S=abs(F);subplot(222)imshow(S,[])%显示幅度谱title('幅度谱(频谱坐标原点在坐上角)')Fc=fftshift(F);%把频谱坐标原点由左上角移至屏幕中央subplot(223)Fd=a
7、bs(Fc);imshow(Fd,[])ratio=max(Fd(:))/min(Fd(:))%ratio=2.3306e+007,动态范围太大,显示器无法正常显示title('幅度谱(频谱坐标原点在屏幕中央)')S2=log(1+abs(Fc));subplot(224)imshow(S2,[])title('以对数方式显示频谱')运行上面程序后,结果如下:二维离散傅里叶变换的性质线性性证明:%imagelinear.m%该程序验证了二维DFT的线性性质f=imread('D:chenpcdatathrychpt4Fig4.04(a).jpg')
8、;g=imread('D:chenpcdata