Centre of Rotation (CoR)#
What is it?#
Identifying the optimal Centre of Rotation (CoR) parameter is an important procedure to ensure the correctness of the reconstruction. It is crucial to find it as precise as possible, as the incorrect value can lead to distortions in reconstructions, therefore making post processing and quantification invalid.
The required CoR parameter places the object (a scanned sample) into a coordinate system of the scanning device to ensure that the object is centered and rotates around its axis in this system, see Fig. 15. This is essential for valid reconstruction as the back projection model assumes a central placing of a sample with respect to the detector’s axis (usually horizontal for synchrotrons).
The CoR estimation problem is also sometimes referred to the centered sinogram. If the sinogram is not centered and there is an offset (\(d\) in Fig. 15), the reconstruction will result in strong arching artefacts at the boundaries of reconstructed objects, see Fig. 16. Further from the optimal CoR value (here \(d=0\)), one should expect more pronounced arching. Therefore the optimisation problem usually involves minimising the artefacts in the reconstructed images by varying the CoR value.
CoR in HTTomo#
The CoR parameter is present in any reconstruction template given as the center
parameter. It can be configured either
automatically (see Auto-centering) or manually (see Manual Centering).
Auto-centering#
There is a variety of methods to estimate CoR automatically. At DLS, we frequently use the centering method which was developed by Nghia Vo and it relies on the Fourier analysis of a sinogram, see the paper. This method is implemented in both TomoPy and HTTomolibgpu libraries and available for HTTomo as find_center_vo template, see Methods YAML Templates.
Here are the steps to enable the auto-centering and then use the estimated value in the reconstruction:
The auto-centering method should be added to the process list before the reconstruction method.
It is recommended to position any auto-centering method right after the loader, see Method pattern and method order.
The calculated CoR value with be stored in Side outputs.
In the reconstruction module we refer to that value by placing the reference into the
center
parameter.
- method: find_center_vo
module_path: httomolibgpu.recon.rotation
parameters:
ind: mid
smin: -50
smax: 50
srad: 6
step: 0.25
ratio: 0.5
drop: 20
id: centering
side_outputs:
cor: centre_of_rotation
- method: FBP
module_path: httomolibgpu.recon.algorithm
parameters:
center: ${{centering.side_outputs.centre_of_rotation}}
filter_freq_cutoff: 1.1
recon_size: null
recon_mask_radius: null
Note
When one auto-centering method fails it is recommended to try other available methods as they can still provide the correct or close to the correct CoR value.
Manual Centering#
Unfortunately, there could be various cases when Auto-centering fails, e.g., the projection data is corrupted, incomplete, the object is outside the field of view of the detector, and possibly other issues. In that case, it is recommended to find the center of rotation manually. Parameter Sweeping can simplify such search significantly.
To enable manual centering without sweeping, one would need to do the following steps:
Ensure that the auto centering estimation method is not in the process list (remove or comment it).
Modify the centre of rotation value
center
in the reconstruction plugin by substituting a number instead of the reference to side outputs.