Friday, February 22, 2013

Learning Tomography: DFR with Fourier - Part II

Second (and final) part of the implementation of the Direct Fourier Reconstruction with Fourier  − instead of Hartley − Transform...

1- Script:  Computing 2D reconstruction image

Fig. 1: Scheme of the various steps for a Direct Fourier Reconstruction. Part I: From the sinogram, 1D Fourier Transform (FT) is applied to each row. Part II: Each 1D FT is inserted as a central line into a 2D Fourier space according to its rotation angle. Finally, this 3D Fourier space is converted into an image thanks to an inverse FT.

As summarized in Fig. 1, the script takes as input the stack of 1D FTs  − calculated previously from the sinogram [Link] − and then fills the 2D Fourier Space depending of interpolation scheme − Nearest or Bilinear whose implementation is described in this post [Link]− .
For sake of convenience, two additional methods getComplex(...) and setComplex(...) are added to read/write the real and imaginary parts in the 2D Fourier stack.
The output image is the 2D Fourier stack.

+++ JavaScript IJ snippet: FourierRec_FFT.js +++ +++ End of JavaScript IJ snippet +++

2- Results

To get the final image, click on the stack entitled "Complex of RecDirect" and process an inverse FFT (Process > FFT > Inverse FFT), to get the image of Fig. 2. Finally, swap the quadrants (Process > FFT > Swap Quadrants).

Fig.2: Image obtained after computing an Inverse Fourier Transform of the image created by the script FourierRec_FFT.j. In this case, the sinogram was previously zero-padded.

Other crazybiocomputing posts

Further readings are available in ...
  • Learning Tomography Series  [Link]
  • Image Processing TOC [Link]

No comments:

Post a Comment