httomolibgpu.recon.rotation#

Modules for finding the axis of rotation for 180 and 360 degrees scans

httomolibgpu.recon.rotation.find_center_360(data: <cp.ndarray>, ind: typing.Optional[int] = None, win_width: int = 10, side: typing.Optional[typing.Literal[0, 1]] = None, denoise: bool = True, norm: bool = False, use_overlap: bool = False) Tuple[float, float, Optional[Literal[0, 1]], float][source]#

Find the center-of-rotation (COR) in a 360-degree scan and also an offset to perform data transformation from 360 to 180 degrees scan. See [10].

Parameters
  • data (cp.ndarray) – 3D tomographic data as a Cupy array.

  • ind (int, optional) – Index of the slice to be used for estimate the CoR and the overlap.

  • win_width (int, optional) – Window width used for finding the overlap area.

  • side ({None, 0, 1}, optional) – Overlap size. Only there options: None, 0, or 1. “None” corresponds to fully automated determination. “0” corresponds to the left side. “1” corresponds to the right side.

  • denoise (bool, optional) – Apply the Gaussian filter if True.

  • norm (bool, optional) – Apply the normalisation if True.

  • use_overlap (bool, optional) – Use the combination of images in the overlap area for calculating correlation coefficients if True.

Returns

  • cor (float) – Center-of-rotation.

  • overlap (float) – Width of the overlap area between two halves of the sinogram.

  • side (int) – Overlap side between two halves of the sinogram.

  • overlap_position (float) – Position of the window in the first image giving the best correlation metric.

httomolibgpu.recon.rotation.find_center_pc(proj1: <cp.ndarray>, proj2: <cp.ndarray>, tol: float = 0.5, rotc_guess: typing.Optional[typing.Union[float, str]] = None) float[source]#

Find rotation axis location by finding the offset between the first projection and a mirrored projection 180 degrees apart using phase correlation in Fourier space. The phase_cross_correlation function uses cross-correlation in Fourier space, optionally employing an upsampled matrix-multiplication DFT to achieve arbitrary subpixel precision. See [2].

Parameters
  • proj1 (cp.ndarray) – Projection from the 0th degree angle.

  • proj2 (cp.ndarray) – Projection from the 180th degree angle.

  • tol (float, optional) – Subpixel accuracy. Defaults to 0.5.

  • rotc_guess (float, optional) – Initial guess value for the rotation center. Defaults to None.

Returns

Rotation axis location.

Return type

float

httomolibgpu.recon.rotation.find_center_vo(data: <cp.ndarray>, ind: typing.Optional[int] = None, average_radius: typing.Optional[int] = 0, cor_initialisation_value: typing.Optional[float] = None, smin: int = -100, smax: int = 100, srad: float = 6.0, step: float = 0.25, ratio: float = 0.5, drop: int = 20) float[source]#

Find the rotation axis location (aka the centre of rotation) using Nghia Vo’s method. See the paper [11].

Parameters
  • data (cp.ndarray) – 3D [angles, detY, detX] tomographic data or a 2D [angles, detX] sinogram as a CuPy array.

  • ind (int, optional) – Index of the slice to be used to estimate the CoR. If None is given, then the central sinogram will be extracted from the data array with a possible averaging, see .

  • average_radius (int, optional) – Averaging multiple sinograms around the ind-indexed sinogram to improve the signal-to-noise ratio. It is recommended to keep this parameter smaller than 10.

  • cor_initialisation_value (float, optional) – The initial approximation for the centre of rotation. If the value is None, use the horizontal centre of the projection/sinogram image.

  • smin (int, optional) – Coarse search radius. Reference to the horizontal center of the sinogram.

  • smax (int, optional) – Coarse search radius. Reference to the horizontal center of the sinogram.

  • srad (float, optional) – Fine search radius.

  • step (float, optional) – Step of fine searching.

  • ratio (float, optional) – The ratio between the FOV of the camera and the size of object. It’s used to generate the mask.

  • drop (int, optional) – Drop lines around vertical center of the mask.

Returns

Rotation axis location with a subpixel precision.

Return type

float