multi-cor (sa-axis)#

../../../_images/saaxis.png

Behavior#

This widget is used to compute the center of rotation to provide to a reconstruction widget (nabu).

It run a serie of slice reconstruction from an “estimated center of rotation” and a width (in pixel) A score will be attributed to each slice (see later).

If the autofocus is lock then it will automatically select the center of rotation generating the highest score.

If a center of rotation has already been computing upstream (from “axis” or “saaxis” widgets) then it will be automatically selected as “estimated” center of rotation.

You can also call nabu center of rotation research algorithm by the auto cor button

You can also load the sinogram to see on it the research interval and where the cor will be picked. Has this operation can be time consuming it requires an interaction to be loaded.

To speed up reconstructions you can increase the projection subsampling on the nabu properties (on reconstruction settings tab) - reconstruction section. To access it you need to be on the “advanced options”. The options level is modifiable from the tool button

../../../_images/nabu_settings.png

Several saaxis widget in a workflow#

To automated center of rotation (COR) finding you can associated several saaxis widget.

For example you can put two saaxis widget in serie. * the first widget can deduce a “raw” estimation of the COR (at the pixel level for example). Having a research width of several pixel. * the second will take the estimated cor from the widget and refined the center of rotation. Having a lowest research width (one pixel for example)

This is what is done in this video.

Score calculation#

For now there is two ways of computing a slice reconstruction score. This method can be set on the “results” tab

  • standard deviation (std) for readability purpose we multiply the by 100.

  • total variation (tv) by the formula:

    \[tv = \sum{\sqrt{\nabla_{x}^2 + \nabla_{y}^2}}\]

    To avoid having very low score values we divide it by 10e5.

  • 1 / standard deviation

  • 1 / total variation

  • tomo consistency

We backproject the slice reconstructed for each center of rotation and compute for each cor:

\[consistency = \sum{ |original\_projections - projection\_recalculated|}\]

both original_projections and projection_recalculated are normalized to [0, 1[

then the score is obtain by:

\[tomo\_consistency\_score = \dfrac{1}{consistency + 1}\]

The score for std, tv, 1 / std and 1 / tv is computed on the circumscribed square of “biggest” common circumscribed circle of all reconstructed slices. Having a square roi simplify a lot calculation compared to having a disk (we have for example some gradient calculation)

../../../_images/score_roi.png

Demo#

There is several “video” demonstration: