Skip to content

正投影与反投影

1. 正投影

正投影(即Radon变换)

\[p(s,\theta)=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}f(x,y)\delta(x\cos\theta+y\sin\theta - s)dxdy\]

2. 反投影

\[b(x,y)=\int\limits_{0}^{\pi}p(s,\theta)|_{s=x\cos\theta+y\sin\theta}d\theta=\frac{1}{2}\int\limits_{0}^{2\pi}p(x\cos\theta+y\sin\theta,\theta)d\theta\]

\(\colorbox{Orange}{注意上述反投影过程并没有得到f(x,y),而是b(x,y),反投影运算不是正投影的逆运算。}\)

3. 矩阵简化示意

将被投影区域离散化后,平行束在各角度探测器上的正投影的过程可以表示为:

\[\vec{P}=A\vec{F}\]

其中,投影值的列向量\(\vec{P}\)元素个数为\((L_{\theta}\times K_{s})\),被投影域的值向量\(\vec{F}\)元素个数为\((M_{column}\times N_{row})\),为简单起见,认为投影矩阵\(A\)的元素为非0即1。

直接反投影的矩阵表示:

\[\vec{B}=A^T\vec{P}\]

反投影过程\(A^T\)只是正投影过程\(A\)的转置,并非\(A^{-1}\)(实际上\(A\)也不一定有\(A^{-1}\)),考虑到简化处理\(A\)中元素非1即0,反投影得到的\(\vec{B}\)只是\(\vec{P}\)中元素的简单相加(直接反投影操作)。

\(\colorbox{Orange}{实际上考虑到投影线与体素相交的线段长度不一,上述矩阵A的元素并非0即1}\)

\(\colorbox{Orange}{反投影矩阵在离散计算时有时却通常非0即1(即只要体素在反投影线上即可,不考虑相交线段长度)}\)

\(\colorbox{Orange}{因此反投影矩阵严格上也不是正投影矩阵的转置,此处仅简化考虑,具体参见重建的迭代算法}\)

4. 正投影的逆变换

那理论上如何基于\(p(s,\theta)\)得到\(f(x,y)\)呢,利用傅立叶变换。

Step1:

\[p(s,\theta)=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}f(x,y)\delta(x\cos\theta+y\sin\theta - s)dxdy\]

两侧同时关于\(s\)进行傅立叶变换

\[S(\omega,\theta)=\int\limits_{-\infty}^{+\infty}p(s,\theta)e^{-j\omega s}ds=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}f(x,y)\delta(x\cos\theta+y\sin\theta - s)dxdye^{-j\omega s}ds\]

交换右侧积分次序:

\[S(\omega,\theta)=\int\limits_{-\infty}^{+\infty}p(s,\theta)e^{-j\omega s}ds=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}[\int\limits_{-\infty}^{+\infty}f(x,y)\delta(x\cos\theta+y\sin\theta - s)e^{-j\omega s}ds]dxdy\]

利用\(\delta(x)\)函数性质,等式右侧等于:

\[S(\omega,\theta)=\int\limits_{-\infty}^{+\infty}p(s,\theta)e^{-j\omega s}ds=\int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}f(x,y)e^{-j\omega(x\cos\theta + y\sin\theta)}dxdy= \int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}f(x,y)e^{-j[(\omega \cos\theta)x +(\omega\sin\theta)y]}dxdy\]

由于的\(f(x,y)\)二维傅立叶变换\(F(u,v)\)为:

\[F(u,v) = \int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}f(x,y)e^{-j2\pi(ux+vy)}dxdy\]

对比可知:

\[S(\omega,\theta) = F(\omega \cos\theta,\omega \sin\theta)=F(u,v)|_{u=w\cos\theta,v=w\sin\theta}=F_{polar}(\omega,\theta)\]

(忽略对\(2\pi\)的处理,实际操作中保持正、逆变换的自洽一致即可)

\(F(u,v)\)平面的一条线(极径\(r =w\),极角为\(\theta\)的一条线),也即中心切片定理

Step2

再对上述进行二维傅立叶逆变换,即可得到\(f(x,y)\)

\[F(u,v) = \int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}f(x,y)e^{-j2\pi(ux+vy)}dxdy\]
\[f(x,y) = \int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}F(u,v)e^{j2\pi(ux+vy)}dudv\]

(上述公式形式上未考虑\(2\pi\)系数)

具体来说:

\[f(x,y) = \int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}F(u,v)|_{u=w\cos\theta,u=w\sin\theta}e^{j2\pi(ux+vy)}dudv\]

进行坐标变换:

\[u=\omega\cos\theta,v=\omega\sin\theta\]
\[dudv = \omega d\omega d\theta\]

可得

\[f(x,y) = \int\limits_{0}^{2\pi}\int\limits_{0}^{+\infty}F_{polar}(\omega,\theta)e^{j2\pi\omega(x\cos\theta +y\sin\theta)}\omega d\omega d\theta\]

考虑到

\[F_{polar}(\omega,\theta + \pi) = F_{polar}(-\omega,\theta)\]

则:

\[f(x,y) = \int\limits_{0}^{\pi}\int\limits_{-\infty}^{+\infty}F_{polar}(\omega,\theta)e^{j2\pi\omega(x\cos\theta +y\sin\theta)}|\omega| d\omega d\theta=\int\limits_{0}^{\pi}\int\limits_{-\infty}^{+\infty}S(\omega,\theta)e^{j2\pi\omega(x\cos\theta +y\sin\theta)}|\omega| d\omega d\theta\]

令:

\[s= x\cos\theta +y\sin\theta\]
\[q(s,\theta)=\int\limits_{-\infty}^{+\infty}S(\omega,\theta)e^{j2\pi\omega s}|\omega| d\omega\]

\(\colorbox{Orange}{最终得到原投影域的值为:}\)

\[f(x,y)=\int\limits_{0}^{\pi}\int\limits_{-\infty}^{+\infty}S(\omega,\theta)e^{j2\pi\omega(x\cos\theta +y\sin\theta)}|\omega| d\omega d\theta=\int\limits_{0}^{\pi}q(s,\theta)|_{s=x\cos\theta+y\sin\theta}d\theta\]

5. 总结

对比上述过程:

\[b(x,y)=\int\limits_{0}^{\pi}p(s,\theta)|_{s=x\cos\theta+y\sin\theta}d\theta\]
\[f(x,y)=\int\limits_{0}^{\pi}q(s,\theta)|_{s=x\cos\theta+y\sin\theta}d\theta\]

其中:

\[p(s,\theta)=\int\limits_{-\infty}^{+\infty}S(\omega,\theta)e^{j2\pi\omega s}d\omega\]
\[q(s,\theta)=\int\limits_{-\infty}^{+\infty}S(\omega,\theta)e^{j2\pi\omega s}|\omega| d\omega=\int\limits_{-\infty}^{+\infty}|\omega|S(\omega,\theta)e^{j2\pi\omega s} d\omega\]
\[S(\omega,\theta)=\int\limits_{-\infty}^{+\infty}p(s,\theta)e^{-j\omega s}ds\]

\(S(\omega,\theta)\)为原始投影数据\(p(s,\theta)\)的直接傅立叶变换(再逆变换回来得到的仍为原始数据\(p(s,\theta)\)),若在逆变换前进行\(|\omega|\)滤波后再进行傅立叶逆变换,则得到\(q(s,\theta)\)。如果直接使用投影数据\(p(s,\theta)\)进行反投影操作,则得到是\(b(x,y)\),若用\(q(s,\theta)\)进行直接反投影操作,则得到的为最终所求的\(f(x,y)\)

获取\(b(x,y)\)的直接反投影过程等价于:

  1. 傅立叶变换
  2. 对1中结果傅立叶逆变换
  3. 反投影

上述前两步实际上是抵消的,等效于只有第3步

获取\(f(x,y)\)的滤波反投影过程等价于

  1. 傅立叶变换
  2. 对1中结果进行滤波\(|\omega|\)
  3. 对2中结果傅立叶逆变换
  4. 反投影

\(\colorbox{green}{总之,理论上反投影操作本身并不妨碍还原得到原始f(x,y)的值}\)

\(\colorbox{green}{关键在于不能直接用投影数据直接反投影,对投影数据进行加工后再进行反投影,理论上可以还原得到f(x,y)}\)

理论上通过\(|\omega|\)滤波反投影过程可以还原得到\(f(x,y)\),但实际过程中由于离散化等因素,不可能完全还原得到\(f(x,y)\),因此也发展出各种类型的滤波核。

Ref