Computing the Sinogram

To generate the sinogram of the phantom, there is a single function to call.

compute_sinogram(xray_source, phantom, detector_obj, scatter, sfactor)

Compute the sinogram of the phantom, given the source and detector, and optionally, the scatter model.

Parameters:
  • xray_source (source) – the source object, this returns a sample of the source spectrum giving energy and intensities of the photons.

  • phantom (voxel_array) – the phantom object, this allows you to determine the following: - How the world is divided into voxels, for ray tracing - What material is in each voxel - Determine the attenuation and mean free path of the materials

  • detector_obj (detector) – the detector object, which includes the following: - Gantry: How the detector is positioned and moves - Ray generation: Determines where the rays are directed from the source - Sensor: Determines how the rays are detected

  • scatter (string) – A string that determines the scatter model to use. If not provided, no scatter is used. The following are the available scatter models: - ‘none’: no scatter is used - ‘fast’: the convolution scatter model is used - ‘slow’: the Monte Carlo scatter model is used

  • sfactor (double) – For the Monte Carlo scatter model, the number of scatter events to simulate for each photon. For the convolution scatter model, it is the strength of the scatter. (default: 1)

Returns:

the sinogram of the phantom, with dimensions MxNxP, where M is the number of ypixels, N is the number of zpixels, and P is the number of angles. Use squeeze() if only one zpixel, to produce the expected MxP.

Return type:

MxNxP double