关于极座标下图像旋转与二维傅里叶变换的讨论

1、问题背景

此问题来源于冈萨雷斯的数字图像处理(第三版)5.19题,自己做的时候,没发现哪里有问题,一个同学的提问使我重新审视了这个问题,并感觉对傅里叶变换有了新的理解。
在这里插入图片描述根据下面一部分的基础知识,我们可以计算出线性运动对应的模糊滤波器H(u,v)H(u,v),但是对于图像的旋转,这种非线性的图像变换关系,并没有给出直接的计算方法分理出H(u,v)H(u,v)。比较自然地,我们考虑使用极座标变换(r,θ)(r,\theta),使得图像的旋转随着θ\theta线性变化,进而求出恢复后的图像。

2、基础知识

在图像获取的过程中,图像与传感器之间的线性运动会使最终得到的图像出现模糊现象。对于这种线性模糊,往往可以通过积分来处理:假设图像f(x,y)f(x,y)进行平面运动,x0(t)x_0(t)y0(t)y_0(t)分别是在xxyy方向上随时间变化的分量,那么在记录介质任意点的曝光总数是通过对时间间隔内瞬时曝光量的积分得到的,设TT为曝光时间,则有
g(x,y)=0Tf[xx0(t),yy0(t)]dt(2.1) g(x, y)=\int_{0}^{T} f\left[x-x_{0}(t), y-y_{0}(t)\right] \mathrm{d} t\tag{2.1}

其中,g(x,y)g(x,y)为模糊后的图像。

根据傅里叶变换的定义,可得
G(u,v)=g(x,y)ej2π(ux+vy)dxdy=[0Tf[xx0(t),yy0(t)]dt]ej2π(ux+vy)dxdy(2.2) \begin{aligned} G(u, v) &=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} g(x, y) \mathrm{e}^{-\mathrm{j} 2 \pi(u x+v y)} \mathrm{d} x \mathrm{d} y \\ &=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty}\left[\int_{0}^{T} f\left[x-x_{0}(t), y-y_{0}(t)\right] \mathrm{d} t\right] \mathrm{e}^{-\mathrm{j} 2 \pi(u x+v y)} \mathrm{d} x \mathrm{d} y \end{aligned}\tag{2.2}

改变积分顺序,可得
G(u,v)=0T[f[xx0(t),yy0(t)]ej2π(ux+vy)dxdy]dt(2.3) G(u, v)=\int_{0}^{T}\left[\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f\left[x-x_{0}(t), y-y_{0}(t)\right] \mathrm{e}^{-\mathrm{j} 2 \pi(u x+v y)} \mathrm{d} x \mathrm{d} y\right] \mathrm{d} t\tag{2.3}

外层方括号内的积分项是位移函数f[xx0(t),yy0(t)]f\left[x-x_{0}(t), y-y_{0}(t)\right]的傅里叶变换,由此可得
G(u,v)=0TF(u,v)ej2π[ux0(t)+vy0(t)]dt=F(u,v)0Tej2π[ux0(t)+vy0(t)]dt(2.4) \begin{aligned} G(u, v) &=\int_{0}^{T} F(u, v) e^{-j 2 \pi\left[u x_{0}(t)+v y_{0}(t)\right]} d t \\ &=F(u, v) \int_{0}^{T} e^{-j 2 \pi\left[u x_{0}(t)+v y_{0}(t)\right]} d t \end{aligned}\tag{2.4}


H(u,v)=0Tej2π[ux0(t)+vy0(t)]dt(2.5) H(u, v)=\int_{0}^{T} \mathrm{e}^{-\mathrm{j} 2 \pi\left[u x_{0}(t)+v y_{0}(t)\right]} \mathrm{d} t\tag{2.5}

则式(2.4)(2.4)可以表示为
G(u,v)=H(u,v)F(u,v)(2.6) G(u, v)=H(u, v) F(u, v)\tag{2.6}

这样,对于不考虑噪声的情况下,得到G(u,v)G(u,v)之后,我们根据已有经验(图像线性运动的轨迹函数x0(t)x_0(t)y0(t)y_0(t)),计算模糊函数H(u,v)H(u,v),经过逆滤波得到F(u,v)F(u,v),再进行逆傅里叶变换,得到恢复后的f(x,y)f(x,y)

3、问题解决

对于旋转造成的模糊,由于图像在X和Y方向上并非线性变化,因此不能直接使用上面的公式。为了使用式(2.5)(2.5),我们需要从线性的角度去刻画图像的旋转过程,即使用极座标:
x=rcosθy=rsinθr=x2+y2θ=atan(yx)(3.1) \begin{array}{c} x=r \cos \theta \\ y=r \sin \theta \\ r=\sqrt{x^{2}+y^{2}} \\ \theta=\operatorname{atan}\left(\frac{y}{x}\right)\tag{3.1} \end{array}

由上式,我们可以将图像由平面直角座标(x,y)(x,y)映射到极座标(r,θ)(r,\theta),将模糊图像在极座标系下进行复原处理之后,再由x=rcosθ,y=rsinθ即可得到复原后的方形图像,具体如下:
先进行极座标变换:
g(x,y)(3.1)g(r,θ)(3.2) g(x, y) \stackrel{(3.1)}{\longrightarrow} g(r, \theta)\tag{3.2}

定义傅里叶变换对及其对应的变量组合(r,θ)(u,v)(r,θ)↔(u',v')
G(u,v)=FT[g(r,θ)]=g(r,θ)ej2π(ur+vθ)drdθ(3.3) G\left(u^{\prime}, v^{\prime}\right)=F T[g(r, \theta)]=\iint g(r, \theta) e^{-j 2 \pi\left(u^{\prime} r+v^{\prime} \theta\right)} d r d \theta\tag{3.3}

根据式(2.5)(2.5),同时不妨设图像是逆时针旋转造成的模糊,即
r0(t)=0,θ0(t)=π12tT,0tT(3.4) r_{0}(t)=0, \quad \theta_{0}(t)=\frac{\pi}{12} \frac{t}{T}, \quad 0 \leq t \leq T\tag{3.4}

H(u,v)=0Tej2π[ur0(t)+vθ0(t)]dt(3.5) H\left(u^{\prime}, v^{\prime}\right)=\int_{0}^{T} e^{-j 2 \pi\left[u^{\prime} r_{0}(t)+v^{\prime} \theta_{0}(t)\right]} d t\tag{3.5}

求出H(u^’,v’)之后,可以通过逆滤波(3.6)(3.6)和逆傅里叶变换(3.7)(3.7),得到恢复后图像的极座标表示:
F(u,v)=G(u,v)H(u,v)(3.6) F\left(u^{\prime}, v^{\prime}\right)=\frac{G\left(u^{\prime}, v^{\prime}\right)}{H\left(u^{\prime}, v^{\prime}\right)}\tag{3.6}

f(r,θ)=IFT[F(u,v)]=F(u,v)ej2π(ur+vθ)dudv(3.7) f(r, \theta)=I F T\left[F\left(u^{\prime}, v^{\prime}\right)\right]=\iint F\left(u^{\prime}, v^{\prime}\right) e^{j 2 \pi\left(u^{\prime} r+v^{\prime} \theta\right)} d u d v\tag{3.7}

再经过座标系变换,即得到恢复后的图像f(x,y)f(x,y)
f(r,θ)(3.1)f(x,y) f(r, \theta) \stackrel{(3.1)}{\longrightarrow} f(x, y)

4、问题探讨

这里有同学问到一个问题,你这上面用的是极座标进行的傅里叶变换,那就应该在变换前后都用极座标来表示,课本上也给出了极座标下的傅里叶变换的性质(角度变化一致性),是不是应该按照课本上呢?但是按照课本上的好像无法分离出H(u,v)H(u,v),这怎么办呢?我们来分析一下

课本中的公式:
在这里插入图片描述按照课本来说,对傅里叶变换前后的f(x,y)f(x,y)F(u,v)F(u,v)分别进行极座标变换,得到f(r,θ)f(r,\theta)F(ω,φ)F(\omega,\varphi),然后就有f(r,θ+θ0)F(ω,φ+θ0)f\left(r, \theta+\theta_{0}\right) \Leftrightarrow F\left(\omega, \varphi+\theta_{0}\right),即空间域图像旋转多少度,频域图像也旋转多少度。

这实际上是有问题的,问题在于(4.6-5)式其实是一种不规范的傅里叶变换对表达方式。我们知道,傅里叶变换对应该满足定义式:
F(u,v)=f(x,y)ej2π(ux+vy)dxdy(4.1)F(u, v)=\iint f(x, y) e^{-j 2 \pi(u x+v y)} d x d y\tag{4.1}

但是经过极座标变换之后,变量(r,θ)(r,\theta)(ω,φ)(\omega,\varphi)之间满足的却是如下关系:
F(ω,φ)f(r,θ)ej2π(ωr+φθ)drdθ(4.2)F(\omega, \varphi) \neq \iint f(r, \theta) e^{-j 2 \pi(\omega r+\varphi \theta)} d r d \theta\tag{4.2}

F(ω,φ)=f(r,θ)ej2πωrcos(φθ)rdrdθ(4.3)F(\omega, \varphi)=\iint f(r, \theta) e^{-j 2 \pi \omega r \cos (\varphi-\theta)} r d r d \theta\tag{4.3}

可见,变量(r,θ)(r,\theta)(ω,φ)(\omega,\varphi)之间并不是真正意义上的傅里叶变换对的关系,那么它们就不能保证具有傅里叶变换对之间的各种性质(包括平移性质),事实上也就不应该用f(r,θ)F(ω,φ)f\left(r, \theta\right) \Leftrightarrow F\left(\omega, \varphi\right)来表示,因为它们不满足FT的定义。书中这样表示只是有助于我们观察和理解图像旋转后的频谱,并不是说它们之间是严格的傅里叶变换对。

反观 3、问题解决 中的变量对(r,θ)(r,\theta)(u,v)(u',v'),由于(u,v)(u',v')是根据FT的定义所决定的,
G(u,v)=FT[g(r,θ)]=g(r,θ)ej2π(ur+vθ)drdθ(3.3) G\left(u^{\prime}, v^{\prime}\right)=F T[g(r, \theta)]=\iint g(r, \theta) e^{-j 2 \pi\left(u^{\prime} r+v^{\prime} \theta\right)} d r d \theta\tag{3.3}

因而可以使用f(r,θ)F(u,v)f\left(r, \theta\right) \Leftrightarrow F\left(u', v'\right)表示变量之间的关系(如下图所示)。
在这里插入图片描述
这也告诉我们,傅里叶变换关系实际上指的是变量之间的关系,对于一组变量(a,b)(a,b),对这组变量构成的函数f(a,b)f(a,b)进行傅里叶变换,得到了结果F(c,d)F(c,d),那么可以说:
f(a,b)F(c,d)(4.4)f\left(a, b\right) \Leftrightarrow F\left(c, d\right)\tag{4.4}

如果对变量(c,d)(c,d)进行一些变换(特别是非线性变换),得到了新的变量(c,d)(c',d'),那么由于不满足傅里叶变换的定义,不能保证下式仍然成立
f(a,b)F(c,d)(4.5)f\left(a, b\right) \Leftrightarrow F\left(c', d'\right)\tag{4.5}

这即使是(a,b)(a,b)(c,d)(c,d)同时进行了相同的变换,得到了(a,b)(a',b')(c,d)(c',d')也不能保证下式的成立
f(a,b)F(c,d)(4.6)f\left(a', b'\right) \Leftrightarrow F\left(c', d'\right)\tag{4.6}

探索式(4.5)(4.5)(4.6)(4.6)的成立条件是个很有意思的研究方向,但是可以明确的是,这两个式子的成立条件应该十分苛刻。经过非线性座标变换之后,基本上无法保持原变量之间的傅里叶变换对的性质。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章