Translation Model#
The TranslationModel class implements a geometry and reconstruction model for translation computed tomography.
This class inherits all behaviors and attributes of the Tomography Model.
This is an experimental tomography model in alpha testing. It currently has no implementation of direct reconstructions, so mbirjax uses an initial condition of zer.
See the API docs for the TomographyModel class for details on a wide range
of functions that can be implemented using the TranslationModel.
Constructor#
- class mbirjax.TranslationModel(sinogram_shape, translation_vectors, source_detector_dist, source_iso_dist)[source]#
Bases:
TomographyModelThis class implements the translation tomography geometry in which each view is a cone beam projection of a translated object. This geometry is useful for 3D imaging of thin objects.
This class inherits all methods and properties from the Tomography Model and may override some to suit the translation tomography geometrical requirements. See the documentation of the parent class for standard methods like setting parameters and performing projections and reconstructions.
- Parameters:
sinogram_shape (tuple) – Shape of the sinogram as (num_views, num_rows, num_channels), where ‘num_views’ is the number of translation steps, ‘num_rows’ is the number of detector rows, and ‘num_channels’ is the number of detector columns.
translation_vectors (jax array or numpy array) – A (num_views, 3) array of translations (x, y, z) in ALUs. Each vector specifies how the object is translated for each view. Positive x shifts the object left, z shifts up, and y shifts away from the source.
source_detector_dist (float) – Distance from the X-ray source to the detector.
source_iso_dist (float) – Distance from the X-ray source to the isocenter.
Note
Additional parameter:
delta_recon_row (float, default=0) - This parameter controls the row spacing in ALU, while the base parameter delta_voxel controls the voxel column and slice spacing.
See also
mbirjax.TomographyModel: Base class with standard methods like set_params and reconstruct.
Example
import jax.numpy as jnp from mbirjax.translation_model import TranslationModel sinogram_shape = (180, 256, 256) translation_vectors = jnp.zeros((180, 3)) model = TranslationModel( sinogram_shape=sinogram_shape, translation_vectors=translation_vectors, source_detector_dist=500.0, source_iso_dist=500.0 ) model.set_params(delta_recon_row=2.0) model.auto_set_recon_geometry()