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
and generalizes to operations other than sums along lines
; author:
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