Python code for calculating center of rotation in parallel-beam tomography using sinogram Fourier metric
Description
The code is a python implementation of a method for calculating center of rotation in tomography [Nghia T. Vo et al. "Reliable method for calculating the center of rotation in parallel-beam tomography," Opt. Express 22, 19078-19086 (2014)]. The method uses the double-wedge feature of the Fourier transform of the sinogram. The idea is very simple: copy a [0;Pi] sinogram, flip it horizontally, then append to the 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.
This method is 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
(11.0 kB)
Name | Size | Download all |
---|---|---|
md5:03d60f856b46bab43f83f0d9ab9bf22f
|
11.0 kB | Download |
Additional details
Related works
- Has part
- 10.1364/OE.22.019078 (DOI)