Package jhd.Projection
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 projectionfloat[]
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 blockimage
- A 1D reference to a tagged float imagewidth
- The image widthheight
- 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 blockimage
- A 1D reference to a tagged float imagewidth
- The image widthheight
- 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 imagewidth
- The image width in pixelsheight
- The image height in pixelsfanSettings
- A FanParam parameter listshowProgress
- 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 imagewidth
- The image width in pixelsheight
- The image height in pixelspixSizeCM
- The image pixel size in centimeterssrcToDetCM
- The source to detector distance in pixelsmagnification
- A positive number for the fan projection magnification. In the real world always greater than 1numAngles
- The number of projections between 0 and 360 degrees rotationshowProgress
- Display a progress bar- Returns:
- Reference to a floating point sinogram dimensions (width x magnification) x numAngles
-