Robust digital image reconstruction via the discrete Fourier slice theorem
using the FTL (implemented in C, available via LGPL license).
This method takes a sufficient set of discrete (rational angle) projections assuming the Dirac pixel model, i.e. digital image sampling where lines have said to have sampled a pixel iff the line goes through the centre of the pixel, and reconstructs them in O(nlogn), where n=N^2. Sufficiency is classified as those projections meeting the Katz criterion, i.e. basically all bins are sampled at least once and no unambiguous solution (i.e. a ghost) cannot fit within the image. See also:
Fast Mojette transform for discrete tomography
Once you have FTL built, you should have four binaries for this method:
- fmt_angles - Select the angle type and generate the rational angles for given n and N, the image and reconstruction (FFT space) sizes respectively.
- mt - Compute the discrete (rational angle) projections of the image, also known as the Mojette transform (MT).
- mt2frt - Convert the projections to those of the FRT/DRT, which are the inverse FFTs of the slices of the 2D FFT.
- ifrt - To reconstruct the resulting FRT projections in O(nlogn), no relation to the n before.
To illustrate the process we given a tutorial here of the whole process.
1. First, we crop Lena image to a 128x128 image of Lena from the centre:
./crop lena512.pgm 128 128 0 lena128.pgm
2. We create the angle set, we choose the L1 minimal set since it has a nice symmetry:
./fmt_angles 128 256 1 mt_angles_128_in_256.txt3. Next we compute the MT:
./mt lena128.pgm mt_angles_128_in_256.txt mt_lena128.pgmNote that if you already have projections, such as those of a sinogram, then see this Google Groups discussion. You can find the publication by my colleague Andrew Kingston on how to do this here.
4. Convert the MT projections into FRT space
./mt2frt mt_lena128.pgm mt_angles_128_in_256.txt 128 256 1.0 frt_lena128.pgm5. Invert the FRT projections in O(nlogn) using the discrete Fourier slice theorem
./ifrt frt_lena128.pgm recon_lena128.pgm
EDIT: See my other post about visualising these and FTL (or PGM files) results in general.
Cheers Shakes - L3mming