mantidimaging.core.reconstruct.astra_recon module#

class mantidimaging.core.reconstruct.astra_recon.AstraRecon[source]#

Bases: BaseRecon

static allowed_filters() list[str][source]#
static find_cor(images: ImageStack, slice_idx: int, start_cor: float | ndarray, recon_params: ReconstructionParameters) float[source]#

Find the best CoR for this slice by maximising the squared sum of the reconstructed slice.

Larger squared sum -> bigger deviance from the mean, i.e. larger distance between noise and data

static full(images: ImageStack, recon_params: ReconstructionParameters, progress: Progress | None = None) ImageStack[source]#

Performs a volume reconstruction using sample data provided as sinograms.

Parameters:
  • images – ImageStack containing the sinogram array, COR, and projection angle data

  • recon_params – Reconstruction Parameters

  • progress – Optional progress reporter

Returns:

3D image data for reconstructed volume

static single_sino(images: ImageStack, slice_idx: int, recon_params: ReconstructionParameters, progress: Progress | None = None) ndarray[source]#

Reconstruct a single sinogram

Parameters:
  • images – ImageStack containing the sinogram array, COR, and projection angle data

  • slice_idx – The index of the sinogram to reconstruct

  • recon_params – Reconstruction parameters to configure which algorithm/filter/etc is used

  • progress – Optional progress reporter

The center of rotation for parallel geometry will be converted to vector geometry before reconstructing

Returns:

2D image data for reconstructed slice

mantidimaging.core.reconstruct.astra_recon.allowed_recon_kwargs() dict[source]#
mantidimaging.core.reconstruct.astra_recon.rotation_matrix2d(theta: float) ndarray[source]#
mantidimaging.core.reconstruct.astra_recon.vec_geom_init2d(angles_rad: ProjectionAngles, detector_spacing_x: float, center_rot_offset: float) ndarray[source]#