scico.linop.xray.symcone

Cone beam X-ray transform for cylindrically symmetric objects.

Cone beam X-ray transform and FDK reconstruction for cylindrically symmetric objects; essentialy a cone-beam variant of the Abel transform. The implementation is based on code modified from the axitom package [45].

Classes

AxiallySymmetricVolume(input_shape[, ...])

Create a volume by axial rotation of a plane.

SymConeXRayTransform(input_shape, obj_dist, ...)

Cone beam X-ray transform for cylindrically symmetric objects.

class scico.linop.xray.symcone.AxiallySymmetricVolume(input_shape, input_dtype=<class 'numpy.float32'>, axis=0, center=None)[source]

Bases: LinearOperator

Create a volume by axial rotation of a plane.

Inheritance diagram of AxiallySymmetricVolume

Parameters:
  • input_shape (Tuple[int, ...]) – Input image shape.

  • input_dtype (DType) – Input image dtype.

  • axis (int) – Index of axis of symmetry (must be 0 or 1).

  • center (Optional[int]) – If None, defaults to the center of the image on the specified axis. Otherwise identifies the center coordinate on that axis.

class scico.linop.xray.symcone.SymConeXRayTransform(input_shape, obj_dist, det_dist, axis=0, pixel_size=None, num_slabs=1)[source]

Bases: LinearOperator

Cone beam X-ray transform for cylindrically symmetric objects.

Inheritance diagram of SymConeXRayTransform

Cone beam X-ray transform of a cylindrically symmetric volume, which may be represented by a 2D central slice, which is rotated about the specified axis to generate a 3D volume for projection. The implementation is based on code modified from the AXITOM package [45]..

Parameters:
  • input_shape (Tuple[int, ...]) – Shape of the input array. If 2D, the input is extended to 3D (onto a new axis 1) by cylindrical symmetry.

  • obj_dist (float) – Source-object distance in arbitary length units (ALU).

  • det_dist (float) – Source-detector distance in ALU.

  • axis (int) – Index of axis of symmetry (must be 0 or 1).

  • pixel_size (Optional[Tuple[float, float]]) – Tuple of pixel size values in ALU.

  • num_slabs (int) – Number of slabs into which the volume should be divided (for serial processing, to limit memory usage) in the imaging direction.

fdk(y, num_angles=360)[source]

Reconstruct central slice from projection.

Reconstruct the central slice of the cylindrically symmetric volume from a projection. The reconstruction makes use of the Feldkamp David Kress (FDK) algorithm implemented in the axitom package.

Parameters:
Returns:

Reconstruction of the central slice of the volume.