NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itk::MatrixBasedSimulReconRegnMetric< IntensityType > Class Template Reference

Class to compute the difference between a reconstruction estimate and the target set of 2D projection images. More...

Inheritance diagram for itk::MatrixBasedSimulReconRegnMetric< IntensityType >:
Inheritance graph
[legend]
Collaboration diagram for itk::MatrixBasedSimulReconRegnMetric< IntensityType >:
Collaboration graph
[legend]

Public Types

typedef
MatrixBasedSimulReconRegnMetric 
Self
 
typedef SingleValuedCostFunction Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef vnl_vector< double > VectorType
 
typedef vnl_matrix< double > FullMatrixType
 
typedef vnl_sparse_matrix< double > SparseMatrixType
 
typedef
itk::ForwardAndBackwardProjectionMatrix
< double, double > 
MatrixProjectorType
 
typedef
MatrixProjectorType::Pointer 
MatrixProjectorPointerType
 
typedef
MatrixProjectorType::InputImageType 
InputVolumeType
 
typedef
MatrixProjectorType::InputImagePointer 
InputVolumePointer
 
typedef
MatrixProjectorType::InputImageConstPointer 
InputVolumeConstPointer
 
typedef
MatrixProjectorType::InputImageRegionType 
InputVolumeRegionType
 
typedef
MatrixProjectorType::InputImageSizeType 
InputVolumeSizeType
 
typedef
MatrixProjectorType::InputImageSpacingType 
InputVolumeSpacingType
 
typedef
MatrixProjectorType::InputImagePointType 
InputVolumePointType
 
typedef
MatrixProjectorType::InputImageIndexType 
InputVolumeIndexType
 
typedef
MatrixProjectorType::OutputImageType 
InputProjectionType
 
typedef
MatrixProjectorType::OutputImagePointer 
InputProjectionPointer
 
typedef
MatrixProjectorType::OutputImageConstPointer 
InputProjectionConstPointer
 
typedef
MatrixProjectorType::OutputImageSizeType 
InputProjectionSizeType
 
typedef
itk::EulerAffineTransformMatrixAndItsVariations
< double > 
AffineTransformerType
 
typedef
AffineTransformerType::EulerAffineTransformType 
EulerAffineTransformType
 
typedef
AffineTransformerType::Pointer 
AffineTransformerPointer
 
typedef
EulerAffineTransformType::Pointer 
EulerAffineTransformPointer
 
typedef
itk::ProjectionGeometry
< double > 
ProjectionGeometryType
 
typedef
SingleValuedCostFunction::ParametersType 
ParametersType
 
typedef
SingleValuedCostFunction::MeasureType 
MeasureType
 
typedef
SingleValuedCostFunction::DerivativeType 
DerivativeType
 

Public Member Functions

virtual const char * GetClassName () const
 
void SetInputVolume (InputVolumePointer inVolume)
 Set the 3D reconstruction estimate input volume. More...
 
void SetParameterNumber (const unsigned int &paraNumber)
 Set the number of the transformation parameters. More...
 
void SetInputVolumeVector (VectorType &inVolumeVector)
 Set the 3D reconstruction estimate input volume as a vector form. More...
 
void SetInputTwoProjectionVectors (VectorType &inProjectionOne, VectorType &inProjectionTwo)
 Set the input projection images. More...
 
void SetInputTempProjections (InputProjectionPointer tempProjection)
 Set the temporary projection image. More...
 
void SetEulerTransform (EulerAffineTransformPointer inEuler)
 Set the transformation parameters. More...
 
void SetParameterVector (VectorType &paraVector)
 Set the transformation parameters as a vector form. More...
 
void SetEulerTransformFDMLambda (double &lambdaVal)
 Set the Finite Difference Method (FDM) lambda value, difference value, and epsilon value. More...
 
void SetEulerTransformFDMDifference (double &diffFDMVal)
 
void SetEulerTransformFDMDifferenceEpsilon (double &epsilonVal)
 
void SetTotalVoxel (const unsigned long int &totalSize3D)
 Set the total number of the voxels of the volume. More...
 
void SetTotalPixel (const unsigned long int &totalSize2D)
 Set the total number of the pixels of the projection. More...
 
void SetTotalProjectionNumber (const unsigned int &projNumber)
 Set the total number of the pixels of the projection. More...
 
void SetTotalProjectionSize (InputProjectionSizeType &projSize)
 Set the total number of the pixels of the projection. More...
 
void SetProjectionGeometry (ProjectionGeometryType::Pointer pGeometry)
 Set the projection geometry. More...
 
void SetInputVolumeSize (InputVolumeSizeType &inVolumeSize)
 Set the size, resolution and origin of the input volume. More...
 
void SetInputVolumeSpacing (InputVolumeSpacingType &inVolumeSpacing)
 
void SetInputVolumeOrigin (InputVolumePointType &inVolumeOrigin)
 
unsigned int GetNumberOfParameters (void) const
 
virtual void GetValueAndDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const
 
virtual MeasureType GetValue (const ParametersType &parameters) const
 
virtual void GetDerivative (const ParametersType &parameters, DerivativeType &derivative) const
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 MatrixBasedSimulReconRegnMetric ()
 
virtual ~MatrixBasedSimulReconRegnMetric ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 

Protected Attributes

VectorType m_EstimatedVolumeVector
 Vectors of the image. More...
 
VectorType m_TransformationParameterVector
 
VectorType m_inProjOne
 
VectorType m_inProjTwo
 
MatrixProjectorPointerType m_MatrixProjector
 
AffineTransformerPointer m_AffineTransformer
 
EulerAffineTransformPointer m_EulerAffineTransform
 
InputVolumePointer m_inVolume
 
InputProjectionPointer m_inProjTemp
 
unsigned int m_paraNumber
 
unsigned long int m_totalSize3D
 
unsigned long int m_totalSize2D
 
unsigned int m_ProjectionNumber
 
double m_lambdaVal
 
double m_FDMDiff
 
double m_epsilonVal
 
InputVolumeSizeType m_InVolumeSize
 
InputVolumeSpacingType m_InVolumeSpacing
 
InputVolumePointType m_InVolumeOrigin
 
InputProjectionSizeType m_InProjectionSize
 
ProjectionGeometryType::Pointer m_Geometry
 

Detailed Description

template<class IntensityType = double>
class itk::MatrixBasedSimulReconRegnMetric< IntensityType >

Class to compute the difference between a reconstruction estimate and the target set of 2D projection images.

This is essentially the ForwardAndBackProjectionDifferenceFilter repackaged as an ITK cost function.

Member Typedef Documentation

template<class IntensityType = double>
typedef AffineTransformerType::Pointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::AffineTransformerPointer
template<class IntensityType = double>
typedef itk::EulerAffineTransformMatrixAndItsVariations< double > itk::MatrixBasedSimulReconRegnMetric< IntensityType >::AffineTransformerType
template<class IntensityType = double>
typedef SmartPointer<const Self> itk::MatrixBasedSimulReconRegnMetric< IntensityType >::ConstPointer
template<class IntensityType = double>
typedef SingleValuedCostFunction::DerivativeType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::DerivativeType
template<class IntensityType = double>
typedef EulerAffineTransformType::Pointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::EulerAffineTransformPointer
template<class IntensityType = double>
typedef vnl_matrix<double> itk::MatrixBasedSimulReconRegnMetric< IntensityType >::FullMatrixType
template<class IntensityType = double>
typedef MatrixProjectorType::OutputImagePointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputProjectionPointer
template<class IntensityType = double>
typedef MatrixProjectorType::OutputImageSizeType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputProjectionSizeType
template<class IntensityType = double>
typedef MatrixProjectorType::OutputImageType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputProjectionType
template<class IntensityType = double>
typedef MatrixProjectorType::InputImageConstPointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumeConstPointer
template<class IntensityType = double>
typedef MatrixProjectorType::InputImageIndexType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumeIndexType
template<class IntensityType = double>
typedef MatrixProjectorType::InputImagePointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumePointer
template<class IntensityType = double>
typedef MatrixProjectorType::InputImagePointType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumePointType
template<class IntensityType = double>
typedef MatrixProjectorType::InputImageRegionType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumeRegionType
template<class IntensityType = double>
typedef MatrixProjectorType::InputImageSizeType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumeSizeType
template<class IntensityType = double>
typedef MatrixProjectorType::InputImageSpacingType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumeSpacingType
template<class IntensityType = double>
typedef MatrixProjectorType::InputImageType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::InputVolumeType
template<class IntensityType = double>
typedef MatrixProjectorType::Pointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::MatrixProjectorPointerType
template<class IntensityType = double>
typedef itk::ForwardAndBackwardProjectionMatrix< double, double > itk::MatrixBasedSimulReconRegnMetric< IntensityType >::MatrixProjectorType
template<class IntensityType = double>
typedef SingleValuedCostFunction::MeasureType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::MeasureType
template<class IntensityType = double>
typedef SingleValuedCostFunction::ParametersType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::ParametersType

Type of the parameters.

template<class IntensityType = double>
typedef SmartPointer<Self> itk::MatrixBasedSimulReconRegnMetric< IntensityType >::Pointer
template<class IntensityType = double>
typedef itk::ProjectionGeometry< double > itk::MatrixBasedSimulReconRegnMetric< IntensityType >::ProjectionGeometryType
template<class IntensityType = double>
typedef MatrixBasedSimulReconRegnMetric itk::MatrixBasedSimulReconRegnMetric< IntensityType >::Self

Standard class typedefs.

template<class IntensityType = double>
typedef vnl_sparse_matrix<double> itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SparseMatrixType
template<class IntensityType = double>
typedef SingleValuedCostFunction itk::MatrixBasedSimulReconRegnMetric< IntensityType >::Superclass
template<class IntensityType = double>
typedef vnl_vector<double> itk::MatrixBasedSimulReconRegnMetric< IntensityType >::VectorType

Some convenient typedefs.

Constructor & Destructor Documentation

template<class IntensityType = double>
itk::MatrixBasedSimulReconRegnMetric< IntensityType >::MatrixBasedSimulReconRegnMetric ( )
protected
template<class IntensityType = double>
virtual itk::MatrixBasedSimulReconRegnMetric< IntensityType >::~MatrixBasedSimulReconRegnMetric ( )
inlineprotectedvirtual

Member Function Documentation

template<class IntensityType = double>
virtual const char* itk::MatrixBasedSimulReconRegnMetric< IntensityType >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

template<class IntensityType = double>
virtual void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::GetDerivative ( const ParametersType parameters,
DerivativeType derivative 
) const
virtual

This method returns the derivative of the cost function corresponding to the specified parameters. This method set to protected to test whether the optimizer only ever calls GetValueAndDerivative() which case we can get away without performing the forward and back-projections for both GetValue() and GetDerivative().

template<class IntensityType = double>
unsigned int itk::MatrixBasedSimulReconRegnMetric< IntensityType >::GetNumberOfParameters ( void  ) const

Return the number of parameters required

template<class IntensityType = double>
virtual MeasureType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::GetValue ( const ParametersType parameters) const
virtual

This method returns the value of the cost function corresponding to the specified parameters. This method set to protected to test whether the optimizer only ever calls GetValueAndDerivative() which case we can get away without performing the forward and back-projections for both GetValue() and GetDerivative().

template<class IntensityType = double>
virtual void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::GetValueAndDerivative ( const ParametersType parameters,
MeasureType value,
DerivativeType derivative 
) const
virtual

This method returns the value and derivative of the cost function corresponding to the specified parameters

template<class IntensityType = double>
static Pointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::New ( )
static

Method for creation through the object factory.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetEulerTransform ( EulerAffineTransformPointer  inEuler)
inline

Set the transformation parameters.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetEulerTransformFDMDifference ( double &  diffFDMVal)
inline
template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetEulerTransformFDMDifferenceEpsilon ( double &  epsilonVal)
inline
template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetEulerTransformFDMLambda ( double &  lambdaVal)
inline

Set the Finite Difference Method (FDM) lambda value, difference value, and epsilon value.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetInputTempProjections ( InputProjectionPointer  tempProjection)
inline

Set the temporary projection image.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetInputTwoProjectionVectors ( VectorType inProjectionOne,
VectorType inProjectionTwo 
)
inline

Set the input projection images.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetInputVolume ( InputVolumePointer  inVolume)
inline

Set the 3D reconstruction estimate input volume.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetInputVolumeOrigin ( InputVolumePointType inVolumeOrigin)
inline
template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetInputVolumeSize ( InputVolumeSizeType inVolumeSize)
inline

Set the size, resolution and origin of the input volume.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetInputVolumeSpacing ( InputVolumeSpacingType inVolumeSpacing)
inline
template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetInputVolumeVector ( VectorType inVolumeVector)
inline

Set the 3D reconstruction estimate input volume as a vector form.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetParameterNumber ( const unsigned int paraNumber)
inline

Set the number of the transformation parameters.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetParameterVector ( VectorType paraVector)
inline

Set the transformation parameters as a vector form.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetProjectionGeometry ( ProjectionGeometryType::Pointer  pGeometry)
inline

Set the projection geometry.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetTotalPixel ( const unsigned long int totalSize2D)
inline

Set the total number of the pixels of the projection.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetTotalProjectionNumber ( const unsigned int projNumber)
inline

Set the total number of the pixels of the projection.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetTotalProjectionSize ( InputProjectionSizeType projSize)
inline

Set the total number of the pixels of the projection.

template<class IntensityType = double>
void itk::MatrixBasedSimulReconRegnMetric< IntensityType >::SetTotalVoxel ( const unsigned long int totalSize3D)
inline

Set the total number of the voxels of the volume.

Member Data Documentation

template<class IntensityType = double>
AffineTransformerPointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_AffineTransformer
protected
template<class IntensityType = double>
double itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_epsilonVal
protected
template<class IntensityType = double>
VectorType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_EstimatedVolumeVector
protected

Vectors of the image.

template<class IntensityType = double>
EulerAffineTransformPointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_EulerAffineTransform
protected
template<class IntensityType = double>
double itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_FDMDiff
protected
template<class IntensityType = double>
ProjectionGeometryType::Pointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_Geometry
protected
template<class IntensityType = double>
InputProjectionSizeType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_InProjectionSize
protected
template<class IntensityType = double>
VectorType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_inProjOne
protected
template<class IntensityType = double>
InputProjectionPointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_inProjTemp
protected
template<class IntensityType = double>
VectorType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_inProjTwo
protected
template<class IntensityType = double>
InputVolumePointer itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_inVolume
protected
template<class IntensityType = double>
InputVolumePointType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_InVolumeOrigin
protected
template<class IntensityType = double>
InputVolumeSizeType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_InVolumeSize
protected
template<class IntensityType = double>
InputVolumeSpacingType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_InVolumeSpacing
protected
template<class IntensityType = double>
double itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_lambdaVal
protected
template<class IntensityType = double>
MatrixProjectorPointerType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_MatrixProjector
protected
template<class IntensityType = double>
unsigned int itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_paraNumber
protected
template<class IntensityType = double>
unsigned int itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_ProjectionNumber
protected
template<class IntensityType = double>
unsigned long int itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_totalSize2D
protected
template<class IntensityType = double>
unsigned long int itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_totalSize3D
protected
template<class IntensityType = double>
VectorType itk::MatrixBasedSimulReconRegnMetric< IntensityType >::m_TransformationParameterVector
protected

The documentation for this class was generated from the following file: