(11 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[Category:HonorsContractECE438Fall14]][[Category:HonorsContractECE438Fall14]][[Category:HonorsContractECE438Fall14]][[Category:HonorsContractECE438Fall14]][[Category:HonorsContractECE438Fall14]][[Category:HonorsContractECE438Fall14]][[Category:HonorsContractECE438Fall14]]
+
[[Category:ECE637]]
 +
[[Category:Slecture]] [[Category:ECE438Fall2014Boutin]] [[Category:ECE]] [[Category:ECE438]] [[Category:Signal_processing]]
 +
[[Category:honors project]]
  
=HonorsContractECE438CBP=
+
<center><font size="5"></font>
 +
<font size="5">Convolution/Fourier Back Projection Algorithm</font>
  
 +
A [https://www.projectrhea.org/learning/slectures.php slecture] by [[ECE]] student Sahil Sanghani
  
 +
Partly based on the ECE 637 material of Professor Bouman.
 +
</center>
 +
----
 +
=Introduction=
 +
Convolution Back Projection (CBP) offers a reconstruction method that is not computationally expensive. Although the method is based on the Fourier Slice Theorem, there's never a transformation to the frequency domain. Theoretically CBP involves extruding every projection back through the origin and then summing the results. This operation is called back projection. In Figure 1b, the extrusion is demonstrated.
  
Put your content here . . .
+
[[Image:CBP_3D_back_projection.jpg|700px|thumb|left|Fig 1: A Projection Being Back Projected]]
  
 +
----
 +
=Summary=
 +
There are 3 steps to reconstructing an object from its projections using CBP. <br />
 +
1. Measure the projections <math>p_{\theta}(r)</math>. (i.e. using CT)<br />
 +
2. Filter the projections <math>g_{\theta}(r) = h(r) * p_{\theta}(r)</math><br />
 +
3. Back project filtered projections<br />
 +
<math>f(x,y) = \int_0^{\pi}g_{\theta}(x\cos(\theta)+x\sin(\theta))d\theta</math><br />
  
 +
An infinite number of filtered back projections will result in a perfect reconstruction of the original image of the object given it is band limited. Since it is impossible to take that many projections, a good practice is to take at least <math>n</math> back projections for a <math>n</math> by <math>n</math> image.
  
 +
----
 +
=Derivation=
  
[[ HonorsContractECE438Fall14|Back to HonorsContractECE438Fall14]]
+
From the Fourier Slice Theorem, we get the following relationships.<br />
 +
<math>\begin{align}
 +
u &= \rho\cos(\theta) \\
 +
v &= \rho\sin(\theta)
 +
\end{align}</math> <br />
 +
 
 +
Now let's calculate the Jacobian of the polar coordinate transformation.<br />
 +
 
 +
<math>dudv = \left | \frac{\partial (u,v)}{\partial (\theta,\rho)} \right \vert d\theta d\rho</math>
 +
<br />
 +
<math>\begin{align}
 +
\left | \frac{\partial (u,v)}{\partial (\theta,\rho)} \right \vert
 +
&= det\begin{bmatrix}
 +
\frac{\partial u}{\partial \theta} & \frac{\partial u}{\partial \rho} \\
 +
\frac{\partial v}{\partial \theta} & \frac{\partial u}{\partial \rho}
 +
\end{bmatrix} \\
 +
&= det\begin{bmatrix}
 +
\frac{\partial (\rho\cos(\theta))}{\partial \theta} & \frac{\partial (\rho\cos(\theta))}{\partial \rho} \\
 +
\frac{\partial (\rho\sin(\theta))}{\partial \theta} & \frac{\partial (\rho\sin(\theta))}{\partial \rho}
 +
\end{bmatrix} \\
 +
&= det\begin{bmatrix}
 +
-\rho\sin(\theta) & \cos(\theta) \\
 +
\rho\cos(\theta) & \sin(\theta)
 +
\end{bmatrix} \\
 +
&= |-\rho\sin^{2}(\theta) - \rho\cos^{2}(\theta)| \\
 +
&= |-\rho(\sin^{2}(\theta) + \cos^{2}(\theta))| \\
 +
&= |-\rho| \\
 +
&= |\rho| \\
 +
\end{align}</math><br />
 +
<math>\Rightarrow dudv = |\rho|d\theta d\rho</math><br />
 +
Starting with the formula for the inverse CSFT and using the Fourier Slice theorem, we will end up with<br />
 +
<math>\begin{align}
 +
f(x,y) &= \int_{-\infty}^{\infty}\int_{-\infty}^{\infty}F(u,v)e^{2\pi j(xu+yv)}dudv \\
 +
&= \int_{-\infty}^{\infty}\int_{0}^{\pi}F(\rho\cos(\theta),\rho\sin(\theta))e^{2\pi j(x\rho\cos(\theta) +y\rho\sin(\theta))}|\rho|d\theta d\rho \\
 +
&= \int_0^{\pi}\underbrace{[\int_{-\infty}^{\infty}|\rho|P_{\theta}e^{2\pi j\rho(x\cos(\theta) +y\sin(\theta))}d\rho]}_{g_{\theta}(x\cos(\theta) + y\sin(\theta))}d\theta
 +
\end{align}
 +
</math>
 +
<br />
 +
Pulling out <math>g_{\theta}(t)</math>,<br />
 +
<math>\begin{align}
 +
g_{\theta}(t)
 +
&= \int_{-\infty}^{\infty}|\rho | P_{\theta}(\rho )e^{2\pi j\rho t} d\rho \\
 +
&= CTFT^{-1}\{|\rho |P_{\theta}(\rho)\}  \ \text{, by comparison with the CTFT formula}\\
 +
&= h(t) * p_{\theta}(r) \\
 +
\end{align}</math>
 +
<br />
 +
----
 +
=Projection Filter Analysis=
 +
Now let's focus on <math>g_{\theta}(r)</math>.<br />
 +
<math>g_{\theta}(r) = h(r) * p_{\theta}(r) \ </math><br />
 +
The frequency response of the filter is<br />
 +
<math>H(\rho) = CTFT{(h(r))} = |\rho| \ </math><br />
 +
After graphing the frequency response, it is apparent that the filter is a high pass filter. <br />
 +
 
 +
[[Image:CBP_freqresponse.jpg|400px|thumb|left|Fig 2: Frequency Response of CBP Filter]]
 +
 
 +
This filter can be represented by a rect function minus a triangle function, so its equation is<br />
 +
<math>\begin{align}
 +
H(\rho) &= f_c[rect(f/(2f_c))-\wedge(f/f_c)] \\
 +
h(r) &= f_c^2[2sinc(2f_c t)-sinc^2(tf_c)]
 +
\end{align}</math>
 +
----
 +
=Back Projection Analysis=
 +
As mentioned above, the back projection function is<br />
 +
<math>f(x,y) = \int_{0}^{\pi} b_{\theta}(x,y)d\theta</math><br />
 +
<math>b_{\theta}(x,y) = g_{\theta}(x\cos(\theta)+y\sin(\theta)) \ </math><br />
 +
For each angle <math>\theta</math>, the back projection value is constant along lines of angle <math>\theta</math> and takes on the value of <math>g_{\theta}(r)</math>. This is shown in Figure 1 and 3. The complete back projection is formed by integrating(essentially summing) back projections for various <math>\theta</math>. These angles range from <math>0</math> to <math>\pi</math> because the values start repeating after <math>\pi</math>. An approximation of the CBP is shown below.<br />
 +
<math>\begin{align}
 +
f(x,y) &= \int_0^{\pi}b_{\theta}(x,y)d\theta \\
 +
&\approx \frac{\pi}{M} \sum_{m=0}^{M-1} b_{\frac{m\pi}{M}}(x,y)
 +
\end{align}</math>
 +
 
 +
[[Image:CBP_smearing.jpg|400px|thumb|left|Fig 3: Relationship of <math>(x,y)</math> to the Value of the Back Projection]]
 +
 
 +
----
 +
 
 +
References:<br />
 +
[1] C. A. Bouman. ECE 637. Class Lecture. Digital Image Processing I. Faculty of Electrical Engineering, Purdue University. Spring 2013. <br />
 +
----
 +
=Questions and Comments=
 +
Please post your questions and comments on the [[ECE438HonorsContractDiscuss|discussion page.]]
 +
----
 +
[[ HonorsContractECE438Fall14|Back to Honors Contract Main Page]]

Latest revision as of 18:26, 9 February 2015


Convolution/Fourier Back Projection Algorithm

A slecture by ECE student Sahil Sanghani

Partly based on the ECE 637 material of Professor Bouman.


Introduction

Convolution Back Projection (CBP) offers a reconstruction method that is not computationally expensive. Although the method is based on the Fourier Slice Theorem, there's never a transformation to the frequency domain. Theoretically CBP involves extruding every projection back through the origin and then summing the results. This operation is called back projection. In Figure 1b, the extrusion is demonstrated.

Fig 1: A Projection Being Back Projected

Summary

There are 3 steps to reconstructing an object from its projections using CBP.
1. Measure the projections $ p_{\theta}(r) $. (i.e. using CT)
2. Filter the projections $ g_{\theta}(r) = h(r) * p_{\theta}(r) $
3. Back project filtered projections
$ f(x,y) = \int_0^{\pi}g_{\theta}(x\cos(\theta)+x\sin(\theta))d\theta $

An infinite number of filtered back projections will result in a perfect reconstruction of the original image of the object given it is band limited. Since it is impossible to take that many projections, a good practice is to take at least $ n $ back projections for a $ n $ by $ n $ image.


Derivation

From the Fourier Slice Theorem, we get the following relationships.
$ \begin{align} u &= \rho\cos(\theta) \\ v &= \rho\sin(\theta) \end{align} $

Now let's calculate the Jacobian of the polar coordinate transformation.

$ dudv = \left | \frac{\partial (u,v)}{\partial (\theta,\rho)} \right \vert d\theta d\rho $
$ \begin{align} \left | \frac{\partial (u,v)}{\partial (\theta,\rho)} \right \vert &= det\begin{bmatrix} \frac{\partial u}{\partial \theta} & \frac{\partial u}{\partial \rho} \\ \frac{\partial v}{\partial \theta} & \frac{\partial u}{\partial \rho} \end{bmatrix} \\ &= det\begin{bmatrix} \frac{\partial (\rho\cos(\theta))}{\partial \theta} & \frac{\partial (\rho\cos(\theta))}{\partial \rho} \\ \frac{\partial (\rho\sin(\theta))}{\partial \theta} & \frac{\partial (\rho\sin(\theta))}{\partial \rho} \end{bmatrix} \\ &= det\begin{bmatrix} -\rho\sin(\theta) & \cos(\theta) \\ \rho\cos(\theta) & \sin(\theta) \end{bmatrix} \\ &= |-\rho\sin^{2}(\theta) - \rho\cos^{2}(\theta)| \\ &= |-\rho(\sin^{2}(\theta) + \cos^{2}(\theta))| \\ &= |-\rho| \\ &= |\rho| \\ \end{align} $
$ \Rightarrow dudv = |\rho|d\theta d\rho $
Starting with the formula for the inverse CSFT and using the Fourier Slice theorem, we will end up with
$ \begin{align} f(x,y) &= \int_{-\infty}^{\infty}\int_{-\infty}^{\infty}F(u,v)e^{2\pi j(xu+yv)}dudv \\ &= \int_{-\infty}^{\infty}\int_{0}^{\pi}F(\rho\cos(\theta),\rho\sin(\theta))e^{2\pi j(x\rho\cos(\theta) +y\rho\sin(\theta))}|\rho|d\theta d\rho \\ &= \int_0^{\pi}\underbrace{[\int_{-\infty}^{\infty}|\rho|P_{\theta}e^{2\pi j\rho(x\cos(\theta) +y\sin(\theta))}d\rho]}_{g_{\theta}(x\cos(\theta) + y\sin(\theta))}d\theta \end{align} $
Pulling out $ g_{\theta}(t) $,
$ \begin{align} g_{\theta}(t) &= \int_{-\infty}^{\infty}|\rho | P_{\theta}(\rho )e^{2\pi j\rho t} d\rho \\ &= CTFT^{-1}\{|\rho |P_{\theta}(\rho)\} \ \text{, by comparison with the CTFT formula}\\ &= h(t) * p_{\theta}(r) \\ \end{align} $


Projection Filter Analysis

Now let's focus on $ g_{\theta}(r) $.
$ g_{\theta}(r) = h(r) * p_{\theta}(r) \ $
The frequency response of the filter is
$ H(\rho) = CTFT{(h(r))} = |\rho| \ $
After graphing the frequency response, it is apparent that the filter is a high pass filter.

Fig 2: Frequency Response of CBP Filter

This filter can be represented by a rect function minus a triangle function, so its equation is
$ \begin{align} H(\rho) &= f_c[rect(f/(2f_c))-\wedge(f/f_c)] \\ h(r) &= f_c^2[2sinc(2f_c t)-sinc^2(tf_c)] \end{align} $


Back Projection Analysis

As mentioned above, the back projection function is
$ f(x,y) = \int_{0}^{\pi} b_{\theta}(x,y)d\theta $
$ b_{\theta}(x,y) = g_{\theta}(x\cos(\theta)+y\sin(\theta)) \ $
For each angle $ \theta $, the back projection value is constant along lines of angle $ \theta $ and takes on the value of $ g_{\theta}(r) $. This is shown in Figure 1 and 3. The complete back projection is formed by integrating(essentially summing) back projections for various $ \theta $. These angles range from $ 0 $ to $ \pi $ because the values start repeating after $ \pi $. An approximation of the CBP is shown below.
$ \begin{align} f(x,y) &= \int_0^{\pi}b_{\theta}(x,y)d\theta \\ &\approx \frac{\pi}{M} \sum_{m=0}^{M-1} b_{\frac{m\pi}{M}}(x,y) \end{align} $

Fig 3: Relationship of $ (x,y) $ to the Value of the Back Projection

References:
[1] C. A. Bouman. ECE 637. Class Lecture. Digital Image Processing I. Faculty of Electrical Engineering, Purdue University. Spring 2013.


Questions and Comments

Please post your questions and comments on the discussion page.


Back to Honors Contract Main Page

Alumni Liaison

Questions/answers with a recent ECE grad

Ryne Rayburn