Finding Center of Rotation#

Today, there are two tools to search for the center of rotation (COR) in Tomwer.

  • default center of rotation widget (aka axis widget)

  • semi-automated center of rotation widget (aka sa-axis widget)

default center of rotation widget axis widget icon#

axis widget

This is the default widget to use in order to define/search the COR.

It contains several methods:

- manual: lets the user find the COR value by overlapping two projections at 'opposite' angles.
- nabu algorithms: calls directly nabu auto-COR methods such as `centered`, `growing window`, `composite-coarse-to-fine`...

It also contains two modes:

- interactive (default)
- automatic

Interactive Mode#

The user can select an algorithm and compute the COR (using the “compute” button) or search it manually.

Once satisfied with the value, they can “validate it” through the “validate button”.

Then only the scan will be moved to the next widget.

Automatic Mode#

When the “lock button” near the algorithm is locked lock icon, the scan computes the COR from the defined algorithm and picks the value to move to the next widget.

When the “lock value” near the value is locked (algorithm in this case is set to ‘manual’): it picks the value already defined and moves to the next widget.

[1]:
from IPython.display import YouTubeVideo

YouTubeVideo("sc3Pmg7zWHQ", height=500, width=800)
[1]:

semi-automated center of rotation widget sa-axis widget icon#

sa-axis widget

If automatic COR calculation fails (e.g., due to a lack of features) or to ‘fine-tune’ some approximate COR, the user can use this widget to reconstruct a given slice with different COR values (a range or a set of values).

Interactive Mode#

In this mode, the user must:

  1. Fill the “slice and COR range”

    1.1 Select the slice to be reconstructed (for each COR value)

    slice selection

    1.2 Provide an estimate of the COR (next COR values will be distributed around this value)

    If a widget is defining it upstream (like the default center of rotation), this value will be set automatically. Otherwise, you can enter it manually or compute it from one of the nabu algorithms (auto COR button).

    ![COR estimation](img/saaxis_estimated_cor.png)
    

    1.3 Define the research width

    research width definition
  1. Fill the nabu parameters

    Then you must define the nabu parameters for the reconstruction from the dedicated tab:

    nabu parameters
  1. Launch computation

    By clicking the ‘compute’ button

  1. Look and validate the best COR found.

    Once all the selected slices are reconstructed for all the COR values, they will be displayed (on the reconstructed slices tab) so the user can select the best COR to be used in the downstream workflow.

    A score is also computed for each slice (standard deviation and total variation) to provide some hints to the user and automate the COR selection when possible.

    scores

Video for semi-automated COR - Interactive Mode#

[2]:
from IPython.display import YouTubeVideo

YouTubeVideo("ezKjbpmA2FQ", height=500, width=800)
[2]:

Hands-on Exercise A#

Try to find the best COR possible for the bamboo_hercules dataset using the sa-axis widget.

Automatic Mode#

If you want to avoid any interaction, you can lock the ‘autofocus’ button on the ‘reconstructed slices’.

In this case, once all slices are computed, it will pick the slice with the highest score (according to the CTIVA method) and move to the next widget (1 / total variation on the following screenshot).

autofocus

Tips: You can connect several widgets one after the other.

Video for semi-automated COR - Auto Mode#

[3]:
from IPython.display import YouTubeVideo

YouTubeVideo("G9G55lGuDeA", height=500, width=800)
[3]:
[ ]: