nabu.estimation.cor_sino module

This module provides global definitions and methods to compute COR in extrem Half Acquisition mode

nabu.estimation.cor_sino.schift(mat, val)[source]
class nabu.estimation.cor_sino.SinoCor(img_1, img_2, logger=None)[source]

Bases: object

This class has 2 methods:
  • overlap. Find a rough estimate of COR

  • accurate. Try to refine COR to 1/10 pixel

overlap(side='right', window_width=None)[source]

Compute COR by minimizing difference of circulating ROI

  • side: preliminary knowledge if the COR is on right or left

  • window_width: width of ROI that will slide on the other part of the sinogram

    by default, 20% of the width of the detector.

accurate(neighborhood=7, shift_value=0.1)[source]

refine the calculation around COR integer pre-calculated value The search will be executed in the defined neighborhood

Parameters:

neighborhood (int) – Parameter for accurate calculation in the vicinity of the rough estimate. It must be an odd number. 0.1 pixels float shifts will be performed over this number of pixel

estimate_cor_coarse(side='right', window_width=None)

Compute COR by minimizing difference of circulating ROI

  • side: preliminary knowledge if the COR is on right or left

  • window_width: width of ROI that will slide on the other part of the sinogram

    by default, 20% of the width of the detector.

estimate_cor_fine(neighborhood=7, shift_value=0.1)

refine the calculation around COR integer pre-calculated value The search will be executed in the defined neighborhood

Parameters:

neighborhood (int) – Parameter for accurate calculation in the vicinity of the rough estimate. It must be an odd number. 0.1 pixels float shifts will be performed over this number of pixel

class nabu.estimation.cor_sino.SinoCorInterface(logger=None, **kwargs)[source]

Bases: object

A class that mimics the interface of CenterOfRotation, while calling SinoCor

find_shift(img_1, img_2, side='right', window_width=None, neighborhood=7, shift_value=0.1, **kwargs)[source]