Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes

cmtk::VolumeInjectionReconstruction Class Reference
[cmtkRecon Library]

Class for volume reconstruction using volume injection. More...

#include <cmtkVolumeInjectionReconstruction.h>

Inheritance diagram for cmtk::VolumeInjectionReconstruction:
Inheritance graph
[legend]
Collaboration diagram for cmtk::VolumeInjectionReconstruction:
Collaboration graph
[legend]

List of all members.

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::SmartPtrGetTransformationToPassImage (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::SmartPtrGetCorrectedImage ()
 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::Coordinatem_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::SmartPtrm_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.

Detailed Description

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.

Author:
Torsten Rohlfing

Definition at line 64 of file cmtkVolumeInjectionReconstruction.h.


Member Typedef Documentation

Histogram type.

Definition at line 175 of file cmtkVolumeInjectionReconstruction.h.


Constructor & Destructor Documentation

virtual cmtk::VolumeInjectionReconstruction::~VolumeInjectionReconstruction (  ) [inline, virtual]

Virtual destructor stub.

Definition at line 83 of file cmtkVolumeInjectionReconstruction.h.


Member Function Documentation

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.


Member Data Documentation

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.

Maximum neighborhood pixel values in the corrected image.

Definition at line 213 of file cmtkVolumeInjectionReconstruction.h.

Minimum neighborhood pixel values in the corrected image.

Definition at line 216 of file cmtkVolumeInjectionReconstruction.h.

Number of interleaved passes.

Definition at line 163 of file cmtkVolumeInjectionReconstruction.h.

Original image histogram.

Definition at line 178 of file cmtkVolumeInjectionReconstruction.h.

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.

Original pass images.

Definition at line 172 of file cmtkVolumeInjectionReconstruction.h.

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.

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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines