Skip to content

nabu.estimation.cor_sino

source module nabu.estimation.cor_sino

Classes

  • SinoCor

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

  • CenterOfRotationFourierAngles This CoR estimation algo is proposed by V. Valls (BCU). It is based on the Fourier transform of the columns on the sinogram. It requires an initial guesss of the CoR wich is retrieved from dataset_info.dataset_scanner.x_rotation_axis_pixel_position. It is assumed in mm and pixel size in um. Options are (for the moment) hard-coded in the SinoCORFinder.cor_finder.extra_options dict.

  • CenterOfRotationVo A wrapper around algotom 'find_center_vo' and 'find_center_360'.

source class SinoCor(img_1, img_2, logger=None)

This class has 2 methods

  • overlap. Find a rough estimate of COR
  • accurate. Try to refine COR to 1/10 pixel

Methods

  • schift

  • overlap Compute COR by minimizing difference of circulating ROI

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

source staticmethod SinoCor.schift(mat, val)

source method SinoCor.overlap(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.

Raises

  • ValueError

source method SinoCor.accurate(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

source class SinoCorInterface(logger=None, **kwargs)

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

Methods

source method SinoCorInterface.find_shift(img_1, img_2, side='right', window_width=None, neighborhood=7, shift_value=0.1, return_relative_to_middle=None, **kwargs)

source class CenterOfRotationFourierAngles(*args, **kwargs)

This CoR estimation algo is proposed by V. Valls (BCU). It is based on the Fourier transform of the columns on the sinogram. It requires an initial guesss of the CoR wich is retrieved from dataset_info.dataset_scanner.x_rotation_axis_pixel_position. It is assumed in mm and pixel size in um. Options are (for the moment) hard-coded in the SinoCORFinder.cor_finder.extra_options dict.

Methods

source method CenterOfRotationFourierAngles.gaussian(p, x)

source method CenterOfRotationFourierAngles.tukey(p, x)

source method CenterOfRotationFourierAngles.sinlet(p, x)

source method CenterOfRotationFourierAngles.find_shift(sino, angles=None, side='center', near_std=100, near_width=20, shift_sino=True, crop_around_cor=False, signal='tukey', near_weight=0.1, near_alpha=0.5, near_step=0.5, return_relative_to_middle=None)

Raises

  • ValueError

source class CenterOfRotationVo(logger=None, verbose=False, extra_options=None)

A wrapper around algotom 'find_center_vo' and 'find_center_360'.

Nghia T. Vo, Michael Drakopoulos, Robert C. Atwood, and Christina Reinhard, "Reliable method for calculating the center of rotation in parallel-beam tomography," Opt. Express 22, 19078-19086 (2014)

Methods

source method CenterOfRotationVo.find_shift(sino, halftomo=False, is_360=False, win_width=100, side='center', search_width_fraction=0.1, step=0.25, radius=4, ratio=0.5, dsp=True, ncore=None, hor_drop=None, ver_drop=None, denoise=True, norm=True, use_overlap=False, return_relative_to_middle=None)

Raises

  • ValueError