图像处理学习笔记-04-频率域滤波04

图像处理领域的计算要求并不是微不足道的,需要一些基本方法简化傅里叶变换的计算,并加快计算速度

二维DFT的可分性

F(u,v)=x=0M1ej2πux/My=0N1f(x,y)ej2πvy/N=x=0M1F(x,v)ej2πux/MF(x,v)=y=0N1f(x,y)ej2πvy/N

过程基本如下:首先对f(x,y)所有行计算一维DFT,然后沿着计算结果的每一列计算一维变换

用DFT算法计算IDFT

二维离散的反傅里叶变换

f(x,y)=1MNμ=0M1v=0N1F(μ,v)ej2π(μx/M+vy/N)

取两边的复共轭:

MNf(x,y)=u=0M1v=0N1F(u,v)ej2π(ux/M+vy/N)

所以基本过程是计算F(u,v)的二维傅里叶正变换,得到MNf(x,y),之后取其复共轭并将结果乘以1/MN,就得到了F(u,v)的傅里叶反变换f(x,y)

快速傅里叶变换FFT

快速傅里叶变换将乘法和加法的次数降低到MNlog2MN,因为二维傅里叶变换可以通过一维变换的方法来执行,所以只需要关注一个变量的FFT:

F(u)=x=0M1f(x)WMux,u=0,1,,M1

其中:

WM=ej2π/M

且假设M有如下形式:

M=2n

M也可以表示为:

M=2K

式子变为:

F(u)=x=02K1f(x)W2Kux=x=0K1f(2x)W2Ku(2x)+x=0K1f(2x+1)W2Ku(2x+1)

可以证明W2K2ux=WKux,所以上式:

F(u)=x=0K1f(2x)WKux+x=0K1f(2x+1)WKuxW2Ku

定义:

Feven(u)=x=0K1f(2x)WKux,u=0,1,2,,K1Fodd(u)=x=0K1f(2x+1)WKux,u=0,1,,K1

得到下式:

F(u)=Feven(u)+Fodd(u)W2Ku

WMu+M=WMu,W2Mu+M=W2Mu可得:

F(u+K)=Feven(u)Fodd(u)W2Ku

计算过程基本如下:首先完成K个点的计算Feven(u),Fodd(u),另外的K个点可以通过F(u+K)直接得到,这个过程可以递归计算,假设m(n),a(n)分别代表实现算法所要求的复数乘法次数和加法次数,样本数目为2n:

m(n)=2m(n1)+2n1,n1a(n)=2a(n1)+2n,n1m(0)=0a(0)=0

所以:

m(n)=12Mlog2Ma(n)=Mlog2M

posted @   eryo  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示