kernelkit.XrayTransform

kernelkit.XrayTransform#

class kernelkit.XrayTransform(projection_geometry: Any, volume_geometry: Any, volume_axes: tuple = (0, 1, 2), projection_axes: tuple = (0, 1, 2), use_toolbox: bool = False, fp_kwargs=None, bp_kwargs=None)#

A mathematical operator representing the X-ray transform.

Attributes:
T

The corresponding adjoint of the operator.

domain_shape

The domain \(\text{dom}(A)\)

range_shape

The range \(\text{ran}(A)\).

Methods

__call__(input[, out, additive])

Apply the forward projector, \(A(x)\).

__init__(projection_geometry: Any, volume_geometry: Any, volume_axes: tuple = (0, 1, 2), projection_axes: tuple = (0, 1, 2), use_toolbox: bool = False, fp_kwargs=None, bp_kwargs=None)#

Create an X-ray transform operator.

Parameters:
projection_geometrylist[ProjectionGeometry]

The projection geometries.

volume_geometryVolumeGeometry

The volume geometry.

volume_axestuple, optional

The axes of the volume to use for the forward projection. Default is (0, 1, 2).

projection_axestuple, optional

The axes of the projections to use for the forward projection. Default is (0, 1, 2).

use_toolboxbool, optional

Whether to use ASTRA Toolbox compatible projectors. Default is False.

Raises:
NotImplementedErrorIf the projection geometries are not conebeam.

Notes

If use_toolbox is True, the volume_axes and projection_axes must be set to (2, 1, 0) and (1, 0, 2), respectively.

Methods

__init__(projection_geometry, volume_geometry)

Create an X-ray transform operator.

Attributes

T

The corresponding adjoint of the operator.

domain_shape

The domain \(\text{dom}(A)\)

range_shape

The range \(\text{ran}(A)\).