finding center of rotation#

today there is two tools to search 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: let the user find the COR value by overlapping two projections at 'opposite' angles.
- nabu algorithms: call directly nabu auto-cor methods such as `centered`, `growing window`, `composite-corase-to-fine`...

It also contains two modes:

- interactive (default one)
- automatic

interactive mode#

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

Once he is happy with the value he can “validate it” through the “validate button”.

Then only the scan with be moved to the next widget

automatic mode#

when the “lock button” near the algorithm is locked lock icon then when receives the scan compute the COR from the defined algorithm and pick the value to move to the next one.

when the “lock value” near the value is locked (algorithm in this case is set to ‘manual’): pick the value already defined and move to the next one

[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 (lack of features for example) or to ‘fine’ tune some approximate COR user can use this widget to reconstruct a given slice with different cor value (a range or a set of value).

interactive mode#

on this mode 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 cors 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. Else you can enter it manually or compute it from one of the nabu algorithm (auto cor button).

    cor estimation

    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 a click on the ‘compute’ button

  1. look and validate the best COR found.

    Once all the selected slice is reconstructed for all the COR values then it will be displayed (on the reconstrcuted slices tab) so the user can select the best COR to be used on the downstream workflow.

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

    scores

video for semi automated cor - interactive mode#

[2]:
from IPython.display import YouTubeVideo

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

hand 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 hire 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 one after the other.

video for semi-automated cor - auto mode#

[3]:
from IPython.display import YouTubeVideo

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