Tomo-tools training - Part 2: finding the center of rotation¶

Finding the CoR is a crucial step in reconstruction. It can be done manually or (semi-)automatically.

In this part, we see how to

  • Review different CoR estimation methods available with Nabu
  • Use nabu (command line) to find the CoR
  • Use tomwer (graphical interface) to find the CoR

1 - Center of rotation estimation with Nabu¶

Nabu provides several Center of Rotation (CoR) estimation methods.

See the documentation page for CoR.

For this tutorial, we still use the half-acquisition "bamboo" dataset:
/scisoft/tomo_training/part2_cor/bambou_hercules_0001.nx

The relevant section in configuration file is [reconstruction].

[reconstruction]
rotation_axis_position = <method>

Where <method> is one of the supported methods.

Note an empty value means the center is half the detector width. This was default until version 2022.1.0.

Projections-based methods¶

These methods are available for estimating the CoR:

  • rotation_axis_position = centered : fast and simple
  • rotation_axis_position = sliding-window: fast, more robust (default)
  • rotation_axis_position = global : slow, more robust
  • rotation_axis_position = growing-window: slow, robust

The first method won't work for half-acquisition. The other should work for 180 degrees and 360 degrees scans.

Advanced options¶

Some methods like sliding-window and growing-window have advanced parameters.
These parameters are passed to cor_options.

For example, to use sliding-window and look to the right side of the detector:

[reconstruction]
rotation_axis_position = `sliding-window`
cor_options = side="right"

The syntax of cor_options is admittedly cumbersome:

  • Don't forget quotes for side="right"
  • Parameters are separated by semicolon: side="right"; low_pass=1; high_pass=20

Exercise¶

  • Use sliding-window with side="right" on the "bamboo" dataset - it should correctly find the CoR.

Methods for 360 degrees scans¶

If the sample is scanned with a 360 degrees angular range (including half-acquisition), some dedicated methods are available:

  • rotation_axis_position = sino-coarse-to-fine: sinogram-based
  • rotation_axis_position = composite-coarse-to-fine : sinogram and projection based, also known as "near"

Exercise¶

  • With the bamboo dataset, try the two aforementioned sinogram-based methods.

The composite-coarse-to-fine (aka "near") can be used with

rotation_axis_position = composite-coarse-to-fine
cor_options = side="near"; near_pos=750 ; near_width=100

This is admittedly tedious to configure from a text file. Tomwer provides with a more convenient interface.


2 - Using tomwer "semi-automatic" rotation axis finder¶

See the dedicated notebook