Mathematica code for calculating center of rotation in parallel-beam tomography using sinogram Fourier metric
Description
This Mathematica code (Wolfram language,version 9.0) demonstrates our method of calculating center of rotation in tomography which was published in Optics Express [Nghia T. Vo et al. "Reliable method for calculating the center of rotation in parallel-beam tomography," 22, 19078-19086 (2014)]. The method uses the double-wedge property of the Fourier transform of the sinogram. This code is a proof of concept implementation, and not optimized for routine use. The idea is very simple: Copy a [0;Pi] sinogram, flip it horizontally, then append to original [0;Pi] sinogram to form an estimated [0;2Pi] sinogram. Fourier transform of this estimated sinogram will show the bow-tie shape in the Fourier space -> Calculate the absolute sum of Fourier coefficients outside the double-wedge area -> Compare this number with other cases of flipping sinogram at different horizontal positions. Minimum is the best center of rotation. This method may be confused with image registration-based methods using phase correlation. The use of phase correlation of sinograms is possible for applications collecting data in the [0;2Pi] range where one flips the second haft of the sinogram and applies image registration with the first haft of the sinogram. Our method is different where it creates an estimated [0;2Pi] sinogram from a [0;Pi] sinogram.
Python implementations of the method which are optimized for routine use are available in Tomopy:
http://tomopy.readthedocs.io/en/latest/_modules/tomopy/recon/rotation.html#find_center_vo
in Savu:
https://github.com/DiamondLightSource/Savu/blob/master/savu/plugins/centering/vo_centering.py
and Algotom:
https://github.com/algotom/algotom/blob/master/algotom/prep/calculation.py
Files
Files
(57.9 kB)
Name | Size | Download all |
---|---|---|
md5:a89d50430d741ffdc10806e6906e92a3
|
57.9 kB | Download |
Additional details
Related works
- Has part
- 10.1364/OE.22.019078 (DOI)