After zero-padding [Link], there is another kind of improvement of our Direct Fourier Reconstruction implementation: The interpolation scheme.
Indeed, during the polar/cartesian conversion, we need to interpolate the sinogram values to exactly fit the cartesian 2D Fourier space. The choice of an interpolation scheme can greatly improve the resulting 2D reconstruction.
Thanks to the advanced implementation described in this post [Link], it is easy to modify the interpolation scheme used during the cartesian/polar coordinates conversion.
1- The script
In the 'Global variables' section at the beginning of the script, add the following lines defining various constants and the current interpolation mode (e.g. BILINEAR).
// Global variables
...
var NEAREST = 1;
var BILINEAR = 2;
var mode = NEAREST; // interpolation scheme
and then, in the 'FUNCTIONS' section, replace the interpolate(...) function by the following code...
+++ JavaScript IJ snippet: FourierRecInterpolate.js +++
+++ End of IJ snippet +++
2-1- Nearest
By default, I implemented the simplest interpolation scheme: the nearest value corresponding to the closest integer value.
2-2- Bilinear
Fig. 4: Bilinear interpolation A) without zero padding and B) with zero padding the sinogram (here, 512x180). |
W O R K I N P R O G R E S S
No comments:
Post a Comment