DFT方法的计算优势
如3.4节所述,傅里叶变换用大小为 m × n m×n m×n 的核对 M × N M×N M×N 的图像滤波时,运算次数为 M N m n MNmn MNmn (乘法和加法)。若核是可分离的,运算次数减少 M N ( m + n ) MN(m+n) MN(m+n)。在4.11节中,会发现在频率域中执行等效滤波的运算次数仅为 2 M N log 2 M N 2MN\log_2MN 2MNlog2MN,系数 2 2 2 表示计算一次正FFT和一次反FFT。
分别考虑大小为 M × M M×M M×M 和 m × m m×m m×m 的方形图像与核。与采用不可分离的核相比,采用 FFT 对图像滤波的计算优势(它是核大小的函数)定义为:
C n ( m ) = M 2 m 2 2 M 2 log 2 M 2 = m 2 4 log 2 M C_{\mathrm{n}}(m)=\frac{M^{2} m^{2}}{2 M^{2} \log _{2} M^{2}}=\frac{m^{2}}{4 \log _{2} M} Cn(m)=2M2log2M2M2m2=4log2Mm2
如果核是可分离的,那么这一优势变为:
C s ( m ) = 2 M 2 m 2 M 2 log 2 M 2 = m 2 log 2 M C_{\mathrm{s}}(m)=\frac{2 M^{2} m}{2 M^{2} \log _{2} M^{2}}=\frac{m}{2 \log _{2} M} Cs(m)=2M2log2M22M2m=2log2Mm
类似于一维取样,二维取样可用一个取样函数建模(即一个二维冲击串)
s Δ T Δ Z ( t , z ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ δ ( t − m Δ T , z − n Δ Z ) s_{\Delta T \Delta Z}(t, z)=\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} \delta(t-m \Delta T, z-n \Delta Z) sΔTΔZ(t,z)=m=−∞∑∞n=−∞∑∞δ(t−mΔT,z−nΔZ)
二维取样定理称,若取样间隔满足:
1 Δ T > 2 μ max 1 Δ Z > 2 ν max \begin{array}{l} \frac{1}{\Delta T}>2 \mu_{\max }\\ \\ \frac{1}{\Delta Z}>2 \nu_{\max } \end{array} ΔT1>2μmaxΔZ1>2νmax
则连续带限函数可由一组样本无误地复原。
在区间 [ − μ m a x , μ m a x ] [-μ_{\mathrm{max}},μ_{\mathrm{max}}] [−μmax,μmax] 和 [ − v m a x , v m a x ] [-v_{\mathrm{max}},v_{\mathrm{max}}] [−vmax,vmax] 建立的频率域矩形之外, f ( t , z ) f(t,z) f(t,z) 的傅里叶变换是零, 则称该函数为 带限函数 。
F ( μ , ν ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) e − j 2 π ( μ t + ν z ) d t d z F(\mu, \nu)=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(t, z) e^{-j 2 \pi(\mu t+\nu z)} d t d z F(μ,ν)=∫−∞∞∫−∞∞f(t,z)e−j2π(μt+νz)dtdz
假定对连续函数 f ( t , z ) f(t, z) f(t,z) 取样生成了一幅数字图像 f ( x , y ) f(x, y) f(x,y),它由分别在 t t t 和 z z z 方向,所取的 M × N M×N M×N 个样本组成。令 Δ T ΔT ΔT 和 Δ Z ΔZ ΔZ 表示样本间的间隔(见图4.15),那么,频率域对应的离散变量间的间隔 Δ u Δu Δu、 Δ v Δv Δv 分别为:
Δ u = 1 M Δ T Δ v = 1 N Δ Z \begin{aligned} \Delta u & =\frac{1}{M \Delta T} \\ \\ \Delta v & =\frac{1}{N \Delta Z} \end{aligned} ΔuΔv=MΔT1=NΔZ1
这里其实很容易理解,因为 1 Δ T \frac{1}{ \Delta T} ΔT1 就是采样率,离散傅里叶变换就是将采样率分为 M M M 份来研究。
如果 f ( x , y ) f(x, y) f(x,y) 旋转 θ 0 θ_0 θ0 角度, F ( u , v ) F(u, v) F(u,v) 也旋转相同的角度。
在一维的DFT中有这个公式:
f ( x ) e j 2 π ( u 0 x / M ) ⟷ F T F ( u − u 0 ) f(x) \mathrm{e}^{\mathrm{j} 2 \pi\left(u_{0} x / M\right)} \stackrel{\mathrm{FT}}{\longleftrightarrow} F\left(u-u_{0}\right) f(x)ej2π(u0x/M)⟷FTF(u−u0)
在二维中,我们可以利用下面的公式进行频谱中心化.
f ( x , y ) ( − 1 ) x + y ⟷ F T F ( u − M / 2 , v − N / 2 ) f(x, y)(-1)^{x+y} \stackrel{\mathrm{FT}}{\longleftrightarrow} F(u-M / 2, v-N / 2) f(x,y)(−1)x+y⟷FTF(u−M/2,v−N/2)
利用该式移动数据,使 F ( 0 , 0 ) F(0, 0) F(0,0) 位于由区间 [ 0 , M – 1 ] [0, M–1] [0,M–1] 和 [ 0 , N – 1 ] [0, N–1] [0,N–1] 在频率域中定义的矩形的中心处。图4.22(b)显示了该结果。
f ( x , y ) ⋆ h ( x , y ) ⟷ F T F ( u , v ) H ( u , v ) f ( x , y ) h ( x , y ) ⟷ F T 1 M N F ( u , v ) ⋆ H ( u , v ) \begin{array}{c} f(x, y) \star h(x, y) \stackrel{\mathrm{FT}}{\longleftrightarrow} F(u, v) H(u, v) \\ \\ f(x, y) h(x, y) \stackrel{\mathrm{FT}}{\longleftrightarrow} \frac{1}{M N} F(u, v) \star H(u, v) \end{array} f(x,y)⋆h(x,y)⟷FTF(u,v)H(u,v)f(x,y)h(x,y)⟷FTMN1F(u,v)⋆H(u,v)
上式是线性滤波的基础,是本章所有滤波技术的基础。
因为比例常数 M N MN MN 通常很大,因此, ∣ F ( 0 , 0 ) ∣ |F(0,0)| ∣F(0,0)∣ 通常是频谱的最大成分。因为原点处的频率分量 u u u 和 v v v 都是0,所以 F ( 0 , 0 ) F(0,0) F(0,0) 有时称为变换的直流(Direct Current, DC)分量。
在确定一幅图像的特性内容时相角所起的支配作用。
交叠错误
右列中各个周期靠得太近,互相干扰。IDFT得到的是线性卷积循环叠后的周期卷积结果。因此必须要先进行零填充。
零填充
交叠错误很容易解决。考虑两个函数 f ( x ) f(x) f(x) 和 h ( x ) h (x) h(x) 它们分别由 A A A 个样本和 B B B 个样本组成 。 可以证明,如果在这两个函数中 填充零 使它们的长度 P P P 相同,按式 (4.97) 可避免交叠问题:
P ≥ A + B − 1 (4.97) P \geq A+B-1\tag{4.97} P≥A+B−1(4.97)
频率泄漏
这类似于用一个 盒式函数 与一个函数相乘 在 频率域 它意味着 原变换与一个 sinc \operatorname{sinc} sinc 函数的卷积 见(例 4.1),这将造成一个由 sinc \operatorname{sinc} sinc 函数的高频分量产生所谓的 频率泄漏 (frequency leakage) 。频率泄漏会在图像上产生块效应 (blocking artifact) 。
虽然频率泄漏无法完全消除但让取样后的函数 乘以 另一个 两端平滑地过渡到 0 的函数(加窗,教材 P175),可明显降低频率泄漏。
空间域滤波和频率域滤波间的纽带是卷积定理。
频率域中的滤波概念更加直观,且频率域中的滤波器设计也更容易。 取两个域中特性的优点的一种方法是:在频率域规定一个滤波器核, 计算其IDFT, 然后利用生成的全尺寸空间核的性质, 指导构建较小的核。
ILPF的模糊和振铃性质可用卷积定理来解释。 图4.42(a)显示了半径为15、 大小为 1000 × 1000 1000× 1000 1000×1000 像素的一个频率域 ILPF 传递函数的图像。 图4.42(b)是 ILPF 的空间表示 h ( x , y ) h(x,y) h(x,y), 它是取图4.42(a)的IDFT得到的(注意振铃效应)。 图4.42(c)显示了过图4.42(b)的中心的一个灰度剖面, 其形状类似于 s i n c sinc sinc 函数。
s i n c sinc sinc 函数的中心波瓣是引起模糊的主因, 而外侧较小的波瓣是造成振铃效应的主因。因为空间函数的“分布”与 H ( u , v ) H(u,v) H(u,v) 的半径成反比, D 0 D_0 D0 越大, 空间函数就越趋近于一个与图像卷积时根本不会导致模糊的冲激。
如表4.4所示, 频率域高斯函数的傅里叶反变换也是高斯的。 这意味着计算式(4.115)或式(4.116)的IDFT得到的空间高斯滤波器核将没有振铃效应。
空间域一阶巴特沃斯滤波器没有振铃效应。 在2阶和3阶滤波器中, 振铃效应通常难以察觉, 但更高阶滤波器中的振铃效应很明显。
h H P ( x , y ) = J − 1 [ H H P ( u , v ) ] = J − 1 [ 1 − H L P ( u , v ) ] = δ ( x , y ) − h L P ( x , y ) \begin{aligned} h_{\mathrm{HP}}(x, y) & =\mathfrak{J}^{-1}\left[H_{\mathrm{HP}}(u, v)\right] \\ & =\mathfrak{J}^{-1}\left[1-H_{\mathrm{LP}}(u, v)\right] \\ & =\delta(x, y)-h_{\mathrm{LP}}(x, y) \end{aligned} hHP(x,y)=J−1[HHP(u,v)]=J−1[1−HLP(u,v)]=δ(x,y)−hLP(x,y)
4.48
J − 1 [ A e − ( μ 2 + v 2 ) / 2 σ 2 ] = A 2 π σ 2 e − 2 π 2 σ 2 ( t 2 + z 2 ) . \mathfrak{J}^{-1}\left[A e^{-\left(\mu^{2}+v^{2}\right) / 2 \sigma^{2}}\right]=A 2 \pi \sigma^{2} e^{-2 \pi^{2} \sigma^{2}\left(t^{2}+z^{2}\right)} . J−1[Ae−(μ2+v2)/2σ2]=A2πσ2e−2π2σ2(t2+z2).
我们先从单变量的开始证明,也就是要证明下式:
h ( t ) = J − 1 [ H ( μ ) ] = ∫ − ∞ ∞ e − μ 2 / 2 σ 2 e j 2 π μ t d μ = 2 π σ − 2 π 2 σ 2 t 2 \begin{aligned} h(t) & =\mathfrak{J}^{-1}[H(\mu)] \\ & =\int_{-\infty}^{\infty} e^{-\mu^{2} / 2 \sigma^{2}} e^{j 2 \pi \mu t} d \mu \\ & =\sqrt{2 \pi} \sigma^{-2 \pi^{2} \sigma^{2} t^{2}} \end{aligned} h(t)=J−1[H(μ)]=∫−∞∞e−μ2/2σ2ej2πμtdμ=2πσ−2π2σ2t2
经过简单的配方法,我们可以得到:
h ( t ) = e − ( 2 π ) 2 σ 2 t 2 2 ∫ − ∞ ∞ e − 1 2 σ 2 [ μ 2 − j 4 π σ 2 μ t − ( 2 π ) 2 σ 4 t 2 ] d μ = e − ( 2 π ) 2 σ 2 t 2 2 ∫ − ∞ ∞ e − 1 2 σ 2 [ μ − j 2 π σ 2 t ] 2 d μ = 2 π σ e − ( 2 π ) 2 σ 2 t 2 2 [ 1 2 π σ ∫ − ∞ ∞ e − r 2 2 σ 2 d r ] \begin{aligned} h(t) & =e^{-\frac{(2 \pi)^{2} \sigma^{2} t^{2}}{2}} \int_{-\infty}^{\infty} e^{-\frac{1}{2 \sigma^{2}}\left[\mu^{2}-j 4 \pi \sigma^{2} \mu t-(2 \pi)^{2} \sigma^{4} t^{2}\right]} d \mu \\ & =e^{-\frac{(2 \pi)^{2} \sigma^{2} t^{2}}{2}} \int_{-\infty}^{\infty} e^{-\frac{1}{2 \sigma^{2}}\left[\mu-j 2 \pi \sigma^{2} t\right]^{2}} d \mu\\ &=\sqrt{2 \pi} \sigma e^{-\frac{(2 \pi)^{2} \sigma^{2} t^{2}}{2}}\left[\frac{1}{\sqrt{2 \pi} \sigma} \int_{-\infty}^{\infty} e^{-\frac{r^{2}}{2 \sigma^{2}}} d r\right] \end{aligned} h(t)=e−2(2π)2σ2t2∫−∞∞e−2σ21[μ2−j4πσ2μt−(2π)2σ4t2]dμ=e−2(2π)2σ2t2∫−∞∞e−2σ21[μ−j2πσ2t]2dμ=2πσe−2(2π)2σ2t2[2πσ1∫−∞∞e−2σ2r2dr]
括号内的积分和是高斯随机概率密度的积分,和为1。因此,我们可以有下面的结果:
h ( t ) = 2 π σ e − 2 π 2 σ 2 t 2 h(t)=\sqrt{2 \pi} \sigma e^{-2 \pi^{2} \sigma^{2} t^{2}} h(t)=2πσe−2π2σ2t2
4.49
K次经过高斯低通滤波器,他就会相当于是一个陷波滤波器。
G K ( u , v ) = e − K D 2 ( u , v ) / 2 D 0 2 F ( u , v ) G_{K}(u, v)=e^{-K D^{2}(u, v) / 2 D_{0}^{2}} F(u, v) GK(u,v)=e−KD2(u,v)/2D02F(u,v)
实际上,只有 ∣ F ( 0 , 0 ) ∣ |F(0,0)| ∣F(0,0)∣ 分量能通过这个滤波器。
4.53
不能,傅里叶变换是一个线性变换。他无法处理平方和平方根运算。
4.56
H H P = 1 − H L P = 1 − 1 1 + [ D ( u , v ) / D 0 ] 2 n = [ D ( u , v ) / D 0 ] 2 n 1 + [ D ( u , v ) / D 0 ] 2 n = 1 1 [ D ( u , v ) / D 0 ] 2 n + [ D ( u , v ) / D 0 ] 2 n [ D ( u , v ) / D 0 ] 2 n = 1 1 + [ D 0 / D ( u , v ) ] 2 n \begin{aligned} H_{\mathrm{HP}} & =1-H_{\mathrm{LP}} \\ & =1-\frac{1}{1+\left[D(u, v) / D_{0}\right]^{2 n}} \\ & =\frac{\left[D(u, v) / D_{0}\right]^{2 n}}{1+\left[D(u, v) / D_{0}\right]^{2 n}} \\ & =\frac{1}{\frac{1}{\left[D(u, v) / D_{0}\right]^{2 n}}+\frac{\left[D(u, v) / D_{0}\right]^{2 n}}{\left[D(u, v) / D_{0}\right]^{2 n}}} \\ & =\frac{1}{1+\left[D_{0} / D(u, v)\right]^{2 n}} \end{aligned} HHP=1−HLP=1−1+[D(u,v)/D0]2n1=1+[D(u,v)/D0]2n[D(u,v)/D0]2n=[D(u,v)/D0]2n1+[D(u,v)/D0]2n[D(u,v)/D0]2n1=1+[D0/D(u,v)]2n1
4.57
其实,高通滤波之后是应该只有戒指的边缘是亮的。但是,低通滤波之后又平均掉了,所以看起来中心部分明亮且实心。
4.63
下面这种图是我从DSP老师的课件里截的,在这里默默感谢叶老师一秒钟。很明显能看到 N N N 个离散点的的FFT计算数量级是 N log 2 N N\log_2N Nlog2N。