2D Tomography Project
In many biological and medical applications, tomography Links to an external site. is a very useful tool for getting the three dimensional structure of a system. Aside from medical imaging, it has important biological applications such as getting the three dimensional structure of chromosomes and viruses Links to an external site. (and here Links to an external site.).
In this project, you'll learn how this works by writing a scipy script to reconstruct an unknown image from fake experimental data, in two dimensions.
First let's talk about how the data is created. You start with a two dimensional image. For simplicity take each pixel to be either black (0) or white (1). Your fake apparatus shoots a thick beam of some sort of radiation, e.g. light, at the image in some direction, and you have a detector on the other side the measures how much light gets through on the other side. The figure below
illustrates the idea. It's taken from this wikipedia article on tomographic reconstruction Links to an external site.. 1d projections of the fake sample are made at a bunch of different angles between 0 and 180 degrees.
Now we have these projections, we want to reconstruct the original image. To do this you use the Projection Slice Theorem Links to an external site.. What is says is that if you now Fourier Transform each of these 1d projections, that will equal the 2d Fourier transform of the whole image, slices along the a line going in the same direction as the original projection.
So what you've got to do is this:
- Read in the rows of data, each row being a projection at some angle
- FFT each row.
- Place the row at the correct angle, in a 2d array representing the FFT'd image
- Do this for all angles
- Invert the FFT to get the mystery image.
In the code Download code file that you have probably downloaded, hw2/tomography contains reconstruct_hints.py, the data file tom.txt , the script for making the lines, make_lines.py, and a README file with more hints.
Further Questions
- What are the advantages and disadvantages of this technique over x-ray crystallography? Please give explanations.
- Give some examples of where tomographic methods are used to image small structures in biology, and why is it done in preference to xray crystallography? Please give explanations.
- Give an example of the use of this technique in medicine. What kind of radiation is normally employed?
- Can the math technique studied here be applied to PET Links to an external site. scans? What extra steps need to be added in order to get it to work?