Computer Tomography
Overview
Very recently I got interested in Computer Tomography and medical imaging systems in general.
To explore the mathematical background I started a Ipython notebook to compute projections of an image (Radon Transform).
The Ipython notebook along with Python modules and test images can be found on GitHub.
https://github.com/michaelbiester/ComputerTomography
A summary of this notebook is available as a PDF document.
The notebook was an early attempt to learn about the reconstruction of an image from its projections. But the notebook presented above only describes how to compute a set of projections. The reconstruction part is missing.
Meanwhile I read some more articles about the reconstruction process. So I have produced some other notebooks and made them available in
https://github.com/michaelbiester/ComputerTomography
I have put some more work into understanding the theory around the image reconstruction process. A PDF version of the notebook can be found on GitHub.
https://github.com/michaelbiester/ComputerTomography/blob/master/radonTransform_theory_1.pdf
And here is a link to the PDF version of a notebook which demonstrates how image reconstruction is possible with filtered backprojections.
https://github.com/michaelbiester/ComputerTomography/blob/master/filtered_projections_ex1.pdf
What should come next …
Having read quite a bit about the Radon transform and how compute an approximate inverse via filtered backprojection it should be interesting to see, how other (more recent) approaches for reconstruction would work. I have found some articles on discrete versions on the Radon-transform and how to invert it.
Discrete Radon Transform; author: Gregory Beylkin; IEEE Transactions on Acoustics, Speech and Signal Processing, February 1987
Discrete Radon transform has an exact, fast inverse; author:
and generalizes to operations other than sums along lines
William H. Press; Los Alamos National Laboratory, Los Alamos, NM 87545
If time permits I will read these articles, try to understand them and prepare some programming examples in the form Jupyter-notebooks.
Resources
