Class FanProjectors

java.lang.Object
jhd.Projection.FanProjectors

public class FanProjectors
extends java.lang.Object
Create sinograms from square floating point images
Author:
John H. Dunsmuir
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  FanProjectors.BremFanParams
    Parameter block for fan projecting a tagged 2D image to a sinogram using a simplified conventional CT scanner simulation.
    static class  FanProjectors.FanParams
    Parameter block for fan beam projecting a 2D image to a sinogram The image may contain any values, most commonly x-ray cross-sections.
  • Constructor Summary

    Constructors
    Constructor Description
    FanProjectors()  
  • Method Summary

    Modifier and Type Method Description
    float[] imageToBremsstrahlungFanBeamSinogram​(FanProjectors.BremFanParams ctSet, float[] image, int width, int height)
    Requires a segmented 2D float image where each material has been assigned an integer tag Requires image pixel size units in CM Requires the chemical formula and density of each tagged component The tags are converted to x-ray cross-sections over a range of x-ray energies Projections are calculated using a simplified Source,Filter,Sample,Detector model The model records photon counts and converts those to measured sample attenuation Used to validate beam hardening correction methods.
    float[] imageToBremsstrahlungFanBeamSinogram2​(FanProjectors.BremFanParams ctSet, float[] image, int width, int height)
    Requires a segmented 2D float image where each material has been assigned an integer tag Requires image pixel size units in CM Requires the chemical formula and density of each tagged component The tags are converted to x-ray cross-sections over a range of x-ray energies Projections are calculated using a simplified Source,Filter,Sample,Detector model The model records photon counts and converts those to measured sample attenuation Used to validate beam hardening correction methods.
    float[] imageToFanBeamSinogram​(float[] image, int width, int height, float pixSizeCM, float srcToDetCM, float magnification, int numAngles, boolean showProgress)
    Creates a sinogram from an image using Fan Beam projection
    float[] imageToFanBeamSinogram​(float[] image, int width, int height, FanProjectors.FanParams fanSettings, boolean showProgress)
    Wrapper method that accepts the parameter block instead of arguments.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • FanProjectors

      public FanProjectors()
  • Method Details

    • imageToBremsstrahlungFanBeamSinogram

      public float[] imageToBremsstrahlungFanBeamSinogram​(FanProjectors.BremFanParams ctSet, float[] image, int width, int height)
      Requires a segmented 2D float image where each material has been assigned an integer tag Requires image pixel size units in CM Requires the chemical formula and density of each tagged component The tags are converted to x-ray cross-sections over a range of x-ray energies Projections are calculated using a simplified Source,Filter,Sample,Detector model The model records photon counts and converts those to measured sample attenuation Used to validate beam hardening correction methods.
      Parameters:
      ctSet - A BremFanParams Parameter block
      image - A 1D reference to a tagged float image
      width - The image width
      height - The image height
      Returns:
      A 1D reference to a sinogram width*numViews
    • imageToBremsstrahlungFanBeamSinogram2

      public float[] imageToBremsstrahlungFanBeamSinogram2​(FanProjectors.BremFanParams ctSet, float[] image, int width, int height)
      Requires a segmented 2D float image where each material has been assigned an integer tag Requires image pixel size units in CM Requires the chemical formula and density of each tagged component The tags are converted to x-ray cross-sections over a range of x-ray energies Projections are calculated using a simplified Source,Filter,Sample,Detector model The model records photon counts and converts those to measured sample attenuation Used to validate beam hardening correction methods.
      Parameters:
      ctSet - A BremFanParams Parameter block
      image - A 1D reference to a tagged float image
      width - The image width
      height - The image height
      Returns:
      A 1D reference to a sinogram width*numViews
    • imageToFanBeamSinogram

      public float[] imageToFanBeamSinogram​(float[] image, int width, int height, FanProjectors.FanParams fanSettings, boolean showProgress)
      Wrapper method that accepts the parameter block instead of arguments.
      Parameters:
      image - Reference to an NxN (square) floating point image
      width - The image width in pixels
      height - The image height in pixels
      fanSettings - A FanParam parameter list
      showProgress - Display a progress bar while executing
      Returns:
      a sinogram of the input image
    • imageToFanBeamSinogram

      public float[] imageToFanBeamSinogram​(float[] image, int width, int height, float pixSizeCM, float srcToDetCM, float magnification, int numAngles, boolean showProgress)
      Creates a sinogram from an image using Fan Beam projection
      Parameters:
      image - Reference to an NxN (square) floating point image
      width - The image width in pixels
      height - The image height in pixels
      pixSizeCM - The image pixel size in centimeters
      srcToDetCM - The source to detector distance in pixels
      magnification - A positive number for the fan projection magnification. In the real world always greater than 1
      numAngles - The number of projections between 0 and 360 degrees rotation
      showProgress - Display a progress bar
      Returns:
      Reference to a floating point sinogram dimensions (width x magnification) x numAngles