Class for volume reconstruction using volume injection. More...
#include <cmtkVolumeInjectionReconstruction.h>
Public Types | |
typedef VolumeInjectionReconstruction | Self |
This class. | |
Public Member Functions | |
VolumeInjectionReconstruction (const UniformVolume *originalImage, const int numberOfPasses, const int interleaveAxis) | |
Constructor from single interleaved image. | |
VolumeInjectionReconstruction (const UniformVolume *reconstructionGrid, std::vector< UniformVolume::SmartPtr > &images) | |
Constructor for general volume reconstruction from multiple acquired images. | |
virtual | ~VolumeInjectionReconstruction () |
Virtual destructor stub. | |
void | ComputeTransformationsToPassImages (const int registrationMetric=0) |
Compute transformations between the reference image grid and the original pass images. | |
void | SetTransformationsToPassImages (std::vector< Xform::SmartPtr > &transformations) |
Set transformations to pass images externally (e.g., imported from disk). | |
Xform::SmartPtr & | GetTransformationToPassImage (const size_t passIdx) |
Get transformation to one pass image. | |
std::vector< Xform::SmartPtr > & | GetTransformationsToPassImages () |
Get transformation to one pass image. | |
void | VolumeInjectionIsotropic (const Types::Coordinate kernelSigma, const Types::Coordinate kernelRadius) |
Create initial approximation using isotropic volume injection. | |
void | VolumeInjectionAnisotropic (const Types::Coordinate kernelSigmaFactor, const Types::Coordinate kernelRadiusFactor) |
Create initial approximation using anisotropic volume injection. | |
UniformVolume::SmartPtr & | GetCorrectedImage () |
Returns the corrected image. | |
void | SetReferenceImage (UniformVolume::SmartPtr &referenceImage) |
Set optional separate reference image for motion parameter estimation. | |
void | SetPassWeight (const size_t pass, const Types::Coordinate weight) |
Set pass weight. | |
ap::real_value_type | GetOriginalToCorrectedImageKLD (const ap::real_1d_array &x) |
Get Kullback-Leibler Divergence between intensity distributions in original and corrected image. | |
Static Public Member Functions | |
static int | GuessInterleaveAxis (const UniformVolume *image, const int defaultAxis=2) |
Static helper function: guess interleaved axis. | |
Protected Types | |
typedef Histogram< double > | HistogramType |
Histogram type. | |
Protected Member Functions | |
ap::real_value_type | ComputeCorrectedImageLaplacianNorm (const ap::real_1d_array &correctedImagePixels) |
Compute norm of the corrected image Laplacian. | |
void | AddLaplacianGradientImage (ap::real_1d_array &g, const ap::real_1d_array &correctedImagePixels, const ap::real_value_type weight) const |
Add weighted gradient image of Laplacian to already computed cost function gradient. | |
Protected Attributes | |
int | m_NumberOfPasses |
Number of interleaved passes. | |
std::vector< Types::Coordinate > | m_PassWeights |
Relative weights of the passes in the correction; can be used to underweight or even exclude passes. | |
Types::DataItemRange | m_OriginalImageRange |
Original volume pixel intensity range. | |
std::vector < UniformVolume::SmartPtr > | m_OriginalPassImages |
Original pass images. | |
HistogramType::SmartPtr | m_OriginalImageHistogram |
Original image histogram. | |
HistogramType::SmartPtr | m_CorrectedImageHistogram |
Corrected image histogram. | |
std::vector < HistogramType::BinType > | m_OriginalImageIntensityNoiseKernel |
Original image intensity noise kernel. | |
UniformVolume::SmartPtr | m_ReferenceImage |
Optional high-resolution non-interleaved reference image. | |
std::vector< Xform::SmartPtr > | m_TransformationsToPassImages |
Affine transformations that map FROM the corrected image TO each of the subimages. | |
UniformVolume::SmartPtr | m_CorrectedImage |
Developing corrected image. | |
std::vector< ap::real_value_type > | m_CorrectedImageLaplacians |
Corrected image Laplacian. | |
ap::real_1d_array | m_NeighorhoodMaxPixelValues |
Maximum neighborhood pixel values in the corrected image. | |
ap::real_1d_array | m_NeighorhoodMinPixelValues |
Minimum neighborhood pixel values in the corrected image. | |
Private Member Functions | |
void | SetupHistogramKernels (const TypedArray *originalData) |
Setup kernels and histograms for image entropy estimation. | |
Static Private Attributes | |
static const unsigned int | NumberOfHistogramBins = 64 |
Number of histogram bins for image entropy estimation. |
Class for volume reconstruction using volume injection.
This class implements some side effects that are not strictly part of the volume injection algorithm, but which supply functionality to the derived igsInverseInterpolationVolumeReconstructionBase class. These include computation of regional minimum/maximum intensity ranges, between-pass registration, and KLD metric computation.
Definition at line 64 of file cmtkVolumeInjectionReconstruction.h.
typedef Histogram<double> cmtk::VolumeInjectionReconstruction::HistogramType [protected] |
Histogram type.
Definition at line 175 of file cmtkVolumeInjectionReconstruction.h.
This class.
Reimplemented in cmtk::DeblurringVolumeReconstruction< TPSF >, cmtk::InverseInterpolationVolumeReconstruction< TInterpolator >, and cmtk::InverseInterpolationVolumeReconstructionBase.
Definition at line 68 of file cmtkVolumeInjectionReconstruction.h.
virtual cmtk::VolumeInjectionReconstruction::~VolumeInjectionReconstruction | ( | ) | [inline, virtual] |
Virtual destructor stub.
Definition at line 83 of file cmtkVolumeInjectionReconstruction.h.
std::vector<Xform::SmartPtr>& cmtk::VolumeInjectionReconstruction::GetTransformationsToPassImages | ( | ) | [inline] |
Get transformation to one pass image.
Definition at line 122 of file cmtkVolumeInjectionReconstruction.h.
Xform::SmartPtr& cmtk::VolumeInjectionReconstruction::GetTransformationToPassImage | ( | const size_t | passIdx ) | [inline] |
Get transformation to one pass image.
Definition at line 113 of file cmtkVolumeInjectionReconstruction.h.
void cmtk::VolumeInjectionReconstruction::SetPassWeight | ( | const size_t | pass, |
const Types::Coordinate | weight | ||
) | [inline] |
Set pass weight.
Each pass weight should be between 0 and 1. If the weight for a pass is zero, then that pass is effectively excluded from the reconstruction. This can be useful if one of the passes shows severe within-pass motion artifacts that would otherwise disturb the across-pass correction.
By default, all pass weights are set to 1, i.e., all passes contribute equally.
Definition at line 153 of file cmtkVolumeInjectionReconstruction.h.
void cmtk::VolumeInjectionReconstruction::SetTransformationsToPassImages | ( | std::vector< Xform::SmartPtr > & | transformations ) | [inline] |
Set transformations to pass images externally (e.g., imported from disk).
Definition at line 107 of file cmtkVolumeInjectionReconstruction.h.
Developing corrected image.
Definition at line 193 of file cmtkVolumeInjectionReconstruction.h.
Corrected image histogram.
Definition at line 181 of file cmtkVolumeInjectionReconstruction.h.
std::vector<ap::real_value_type> cmtk::VolumeInjectionReconstruction::m_CorrectedImageLaplacians [protected] |
Corrected image Laplacian.
Definition at line 196 of file cmtkVolumeInjectionReconstruction.h.
ap::real_1d_array cmtk::VolumeInjectionReconstruction::m_NeighorhoodMaxPixelValues [protected] |
Maximum neighborhood pixel values in the corrected image.
Definition at line 213 of file cmtkVolumeInjectionReconstruction.h.
ap::real_1d_array cmtk::VolumeInjectionReconstruction::m_NeighorhoodMinPixelValues [protected] |
Minimum neighborhood pixel values in the corrected image.
Definition at line 216 of file cmtkVolumeInjectionReconstruction.h.
int cmtk::VolumeInjectionReconstruction::m_NumberOfPasses [protected] |
Number of interleaved passes.
Definition at line 163 of file cmtkVolumeInjectionReconstruction.h.
Original image histogram.
Definition at line 178 of file cmtkVolumeInjectionReconstruction.h.
std::vector<HistogramType::BinType> cmtk::VolumeInjectionReconstruction::m_OriginalImageIntensityNoiseKernel [protected] |
Original image intensity noise kernel.
Definition at line 184 of file cmtkVolumeInjectionReconstruction.h.
Original volume pixel intensity range.
Definition at line 169 of file cmtkVolumeInjectionReconstruction.h.
std::vector<UniformVolume::SmartPtr> cmtk::VolumeInjectionReconstruction::m_OriginalPassImages [protected] |
Original pass images.
Definition at line 172 of file cmtkVolumeInjectionReconstruction.h.
std::vector<Types::Coordinate> cmtk::VolumeInjectionReconstruction::m_PassWeights [protected] |
Relative weights of the passes in the correction; can be used to underweight or even exclude passes.
Definition at line 166 of file cmtkVolumeInjectionReconstruction.h.
Optional high-resolution non-interleaved reference image.
Definition at line 187 of file cmtkVolumeInjectionReconstruction.h.
std::vector<Xform::SmartPtr> cmtk::VolumeInjectionReconstruction::m_TransformationsToPassImages [protected] |
Affine transformations that map FROM the corrected image TO each of the subimages.
Definition at line 190 of file cmtkVolumeInjectionReconstruction.h.
const unsigned int cmtk::VolumeInjectionReconstruction::NumberOfHistogramBins = 64 [static, private] |
Number of histogram bins for image entropy estimation.
Definition at line 220 of file cmtkVolumeInjectionReconstruction.h.