正交变换时数字图像处理的一种有效工具。图像不仅可以在空间域表示,也可以对其进行正交变换到频域进行分析处理。在图像增强、图像复原、图像特征处理、图像编码中都经常采用图像变换技术。
离散傅里叶变换
一维离散傅里叶变换
对于有限长的数字序列 f(x),x=0,1,...,N−1 ,一维DFT定义为:
F(u)=∑N−1x=0f(x)e−j2πuxN
一维傅里叶反变换IDFT定义为:
f(x)=1N∑N−1x=0F(u)ej2πuxN
f(x)和F(u)为离散傅里叶变换对,表示为: f(x)⇆F(u)
设 W=e−j2πN ,则一维的DFT和IDFT表示为:
F(u)=∑N−1x=0f(x)Wux
f(x)=1N∑N−1x=0F(u)W−ux
一维快速傅里叶变换
FFT原理
Wu±rN=Wu
Wu±N2=−Wu
FFT算法推导
W因子如下特性:
Wk2N=Wk2N
DFT可以表示为:
F(u)=∑N/2−1x=0f(2x)W2uxN+∑N/2−1x=0f(2x+1)Wu(2x+1)N=∑N/2−1x=0f(2x)WuxN/2+∑N/2−1x=0f(2x+1)WuxN/2WuN
令M= N2 ,
F(u)=Fe(u)+WuNF0(u)
F(u+M)=Fe(u)−WuNF0(u)
将原函数分为奇数项和偶数项,通过不断的一个奇数一个偶数的相加减,得到最终结果。
二维离散傅里叶变换
代码:
I=imread('106.jpg');
subplot(1,3,1),imshow(I),title('106 原图');
grayI=rgb2gray(I);
%彩色图像灰度化
DFTI=fftshift(fft2(grayI));
%计算傅里叶变换并移位
ADFTI=abs(DFTI);
%求模
subplot(1,3,2),imshow(log(1+ADFTI),[]),title('106 频谱图1');
top=max(ADFTI(:));
%求模的最大值
bottom=min(ADFTI(:));
%求模的最小值
ADFTI=(ADFTI-bottom)/(top-bottom)*100;
%将模规格化到[0 100]
subplot(1,3,3),imshow(ADFTI),title('106 频谱图2');
DFTI中的数据是经过搬移的傅里叶变换系数,为复数,不能直接通过MATLAB函数显示,调用abs函数对其求模ADFTI,频谱图1是对ADFTI进行对数运算以观察图像DFT结果,频谱图2是将ADFT1归一化扩大100倍显示,对比明显
二维离散傅里叶变换的性质
1)可分性
F(u,v)=∑M−1x=0∑N−1y=0f(x,y)⋅e−j2πxuM⋅e−j2πyuN=Fx{
Fy[f(x,y)]}
2)线性
F[a1