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::PCADeformationModelTransform< TScalarType, NDimensions > Class Template Reference

PCA deformation model transformation. More...

Inheritance diagram for itk::PCADeformationModelTransform< TScalarType, NDimensions >:
Inheritance graph
[legend]
Collaboration diagram for itk::PCADeformationModelTransform< TScalarType, NDimensions >:
Collaboration graph
[legend]

Public Types

typedef
PCADeformationModelTransform 
Self
 
typedef Transform< TScalarType,
NDimensions, NDimensions > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef itk::Vector
< TScalarType, NDimensions > 
VectorPixelType
 
typedef itk::Image
< VectorPixelType, NDimensions > 
FieldType
 
typedef FieldType::PixelType DisplacementType
 
typedef FieldType::Pointer FieldPointer
 
typedef FieldType::ConstPointer FieldConstPointer
 
typedef ImageRegionIterator
< FieldType
FieldIterator
 
typedef
ImageRegionConstIterator
< FieldType
FieldConstIterator
 
typedef std::vector
< FieldConstPointer
FieldConstPointerArray
 
typedef std::vector< FieldPointerFieldPointerArray
 
typedef std::vector
< FieldConstIterator
FieldIteratorArray
 
typedef itk::ContinuousIndex
< TScalarType, NDimensions > 
ContinuousIndexType
 
typedef FieldType::IndexType FieldIndexType
 
typedef FieldType::RegionType FieldRegionType
 
typedef FieldType::SizeType FieldSizeType
 
typedef
VectorLinearInterpolateNearestNeighborExtrapolateImageFunction
< FieldType, TScalarType > 
FieldInterpolatorType
 
typedef
FieldInterpolatorType::Pointer 
FieldInterpolatorPointer
 
typedef std::vector
< FieldInterpolatorPointer
FieldInterpolatorPointerArray
 
typedef Superclass::ScalarType ScalarType
 
typedef Superclass::ParametersType ParametersType
 
typedef Superclass::JacobianType JacobianType
 
typedef Vector< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputVectorType
 
typedef Vector< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputVectorType
 
typedef CovariantVector
< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputCovariantVectorType
 
typedef CovariantVector
< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputCovariantVectorType
 
typedef vnl_vector_fixed
< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputVnlVectorType
 
typedef vnl_vector_fixed
< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputVnlVectorType
 
typedef Point< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
InputPointType
 
typedef Point< TScalarType,
itkGetStaticConstMacro(SpaceDimension)> 
OutputPointType
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NDimensions)
 
virtual void SetNumberOfComponents (unsigned int numberOfParameters)
 
void SetFieldArray (unsigned int i, FieldType *field)
 
FieldTypeGetFieldArray (unsigned int i)
 
virtual FieldPointer GetSingleDeformationField ()
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
void SetParameters (const ParametersType &parameters)
 
const ParametersTypeGetParameters (void) const
 
virtual void SetFixedParameters (const ParametersType &)
 
const ParametersTypeGetFixedParameters (void) const
 
virtual const JacobianType GetJacobian (const InputPointType &point) const
 
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &point, JacobianType &jacobian) const
 
virtual OutputPointType TransformPoint (const InputPointType &point) const
 
void SetIdentity (void)
 
virtual bool IsLinear () const
 
virtual void Initialize () throw ( ExceptionObject )
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

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

Protected Attributes

TScalarType m_meanCoefficient
 
unsigned int m_NumberOfFields
 
FieldPointerArray m_FieldArray
 
FieldPointer m_SingleField
 
FieldInterpolatorPointerArray m_Interpolators
 

Detailed Description

template<class TScalarType = float, unsigned int NDimensions = 3>
class itk::PCADeformationModelTransform< TScalarType, NDimensions >

PCA deformation model transformation.

Transformation model based on the resulting deformation fields (mean field and N eigen fields) of a PCA analysis of training deformation fields. The eigen deformation fields are assumed to be rescaled such that they represent 1 standard deviation.

The N coefficients scaling the eigen fields are the free N free parameters, i.e. T = T0+c1*T1+...+cN*TN where T0: mean deformation field Ti: ith eigen deformation field ci: parameter[i-1]

A deformation field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimension of the input image. The vector type must support element access via operator [].

The output image is produced by inverse mapping: the output pixels are mapped back onto the input image. This scheme avoids the creation of any holes and overlaps in the output image.

Each vector in the deformation field represent the distance between a geometric point in the input space and a point in the output space such that:

\[ p_{in} = p_{out} + d \]

Assumes all displacement fields have same size, region and spacing. Uses nearest neighbour interpolation of displacement field.

Does not include rigid pose transformation!

Member Typedef Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef SmartPointer<const Self> itk::PCADeformationModelTransform< TScalarType, NDimensions >::ConstPointer
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef itk::ContinuousIndex<TScalarType,NDimensions> itk::PCADeformationModelTransform< TScalarType, NDimensions >::ContinuousIndexType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FieldType::PixelType itk::PCADeformationModelTransform< TScalarType, NDimensions >::DisplacementType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef ImageRegionConstIterator<FieldType> itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldConstIterator
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FieldType::ConstPointer itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldConstPointer
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef std::vector<FieldConstPointer> itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldConstPointerArray
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FieldType::IndexType itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldIndexType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FieldInterpolatorType::Pointer itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldInterpolatorPointer
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef std::vector<FieldInterpolatorPointer> itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldInterpolatorPointerArray
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef VectorLinearInterpolateNearestNeighborExtrapolateImageFunction<FieldType, TScalarType> itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldInterpolatorType

Interpolator typedef support.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef ImageRegionIterator<FieldType> itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldIterator
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef std::vector<FieldConstIterator> itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldIteratorArray
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FieldType::Pointer itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldPointer

Deformation field typedef support.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef std::vector<FieldPointer> itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldPointerArray
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FieldType::RegionType itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldRegionType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef FieldType::SizeType itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldSizeType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef itk::Image< VectorPixelType, NDimensions > itk::PCADeformationModelTransform< TScalarType, NDimensions >::FieldType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::InputCovariantVectorType

Standard covariant vector type for this class.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Point<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::InputPointType

Standard coordinate point type for this class.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::InputVectorType

Standard vector type for this class.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef vnl_vector_fixed<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::InputVnlVectorType

Standard vnl_vector type for this class.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::JacobianType itk::PCADeformationModelTransform< TScalarType, NDimensions >::JacobianType

Jacobian type.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::OutputCovariantVectorType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Point<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::OutputPointType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::OutputVectorType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef vnl_vector_fixed<TScalarType, itkGetStaticConstMacro(SpaceDimension)> itk::PCADeformationModelTransform< TScalarType, NDimensions >::OutputVnlVectorType
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::ParametersType itk::PCADeformationModelTransform< TScalarType, NDimensions >::ParametersType

Parameters type.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef SmartPointer<Self> itk::PCADeformationModelTransform< TScalarType, NDimensions >::Pointer
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Superclass::ScalarType itk::PCADeformationModelTransform< TScalarType, NDimensions >::ScalarType

Scalar type.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef PCADeformationModelTransform itk::PCADeformationModelTransform< TScalarType, NDimensions >::Self

Standard class typedefs.

template<class TScalarType = float, unsigned int NDimensions = 3>
typedef Transform< TScalarType, NDimensions, NDimensions > itk::PCADeformationModelTransform< TScalarType, NDimensions >::Superclass
template<class TScalarType = float, unsigned int NDimensions = 3>
typedef itk::Vector< TScalarType, NDimensions > itk::PCADeformationModelTransform< TScalarType, NDimensions >::VectorPixelType

Local variable typedefs

Constructor & Destructor Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
itk::PCADeformationModelTransform< TScalarType, NDimensions >::PCADeformationModelTransform ( )
protected

Construct an PCADeformationModelTransform object.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual itk::PCADeformationModelTransform< TScalarType, NDimensions >::~PCADeformationModelTransform ( )
protectedvirtual

Destroy an PCADeformationModelTransform object.

Member Function Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::PCADeformationModelTransform< TScalarType, NDimensions >::ComputeJacobianWithRespectToParameters ( const InputPointType point,
JacobianType jacobian 
) const
virtual
template<class TScalarType = float, unsigned int NDimensions = 3>
virtual const char* itk::PCADeformationModelTransform< TScalarType, NDimensions >::GetClassName ( ) const
virtual
template<class TScalarType = float, unsigned int NDimensions = 3>
FieldType* itk::PCADeformationModelTransform< TScalarType, NDimensions >::GetFieldArray ( unsigned int  i)
inline

Get the i'th Field

template<class TScalarType = float, unsigned int NDimensions = 3>
const ParametersType& itk::PCADeformationModelTransform< TScalarType, NDimensions >::GetFixedParameters ( void  ) const

Get the Fixed Parameters.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual const JacobianType itk::PCADeformationModelTransform< TScalarType, NDimensions >::GetJacobian ( const InputPointType point) const
virtual

Get the Jacobian matrix.

template<class TScalarType = float, unsigned int NDimensions = 3>
const ParametersType& itk::PCADeformationModelTransform< TScalarType, NDimensions >::GetParameters ( void  ) const
template<class TScalarType = float, unsigned int NDimensions = 3>
virtual FieldPointer itk::PCADeformationModelTransform< TScalarType, NDimensions >::GetSingleDeformationField ( )
virtual

Get the deformation field corresponding to the current parameters

Reimplemented in itk::RigidPCADeformationModelTransform< TScalarType, NDimensions >, and itk::TranslationPCADeformationModelTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::PCADeformationModelTransform< TScalarType, NDimensions >::Initialize ( )
throw (ExceptionObject
)
virtual

Initialize must be called before the first call of Evaluate() to allow the class to validate any inputs.

Reimplemented in itk::RigidPCADeformationModelTransform< TScalarType, NDimensions >, and itk::TranslationPCADeformationModelTransform< TScalarType, NDimensions >.

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual bool itk::PCADeformationModelTransform< TScalarType, NDimensions >::IsLinear ( ) const
inlinevirtual

Indicates that this transform is linear. That is, given two points P and Q, and scalar coefficients a and b, then

      T( a*P + b*Q ) = a * T(P) + b * T(Q)
template<class TScalarType = float, unsigned int NDimensions = 3>
itk::PCADeformationModelTransform< TScalarType, NDimensions >::itkStaticConstMacro ( InputSpaceDimension  ,
unsigned  int,
NDimensions   
)

Dimension of the domain space.

template<class TScalarType = float, unsigned int NDimensions = 3>
itk::PCADeformationModelTransform< TScalarType, NDimensions >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned  int,
NDimensions   
)
template<class TScalarType = float, unsigned int NDimensions = 3>
itk::PCADeformationModelTransform< TScalarType, NDimensions >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
NDimensions   
)

Dimension of the domain space.

template<class TScalarType = float, unsigned int NDimensions = 3>
static Pointer itk::PCADeformationModelTransform< TScalarType, NDimensions >::New ( )
static

New macro for creation of through a smart pointer.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::PCADeformationModelTransform< TScalarType, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected

Print contents of an PCADeformationModelTransform

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::PCADeformationModelTransform< TScalarType, NDimensions >::SetFieldArray ( unsigned int  i,
FieldType field 
)
inline

Connect i'th field to Field Array

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::PCADeformationModelTransform< TScalarType, NDimensions >::SetFixedParameters ( const ParametersType )
virtual

Set the fixed parameters and update internal transformation.

template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::PCADeformationModelTransform< TScalarType, NDimensions >::SetIdentity ( void  )
inline

Set the transformation to an Identity

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual void itk::PCADeformationModelTransform< TScalarType, NDimensions >::SetNumberOfComponents ( unsigned int  numberOfParameters)
virtual
template<class TScalarType = float, unsigned int NDimensions = 3>
void itk::PCADeformationModelTransform< TScalarType, NDimensions >::SetParameters ( const ParametersType parameters)

Set parameters. These are the coefficients for the eigen deformation fields

template<class TScalarType = float, unsigned int NDimensions = 3>
virtual OutputPointType itk::PCADeformationModelTransform< TScalarType, NDimensions >::TransformPoint ( const InputPointType point) const
virtual

Transform by the PCA deformation model, returning the transformed point or vector.

Reimplemented in itk::RigidPCADeformationModelTransform< TScalarType, NDimensions >, and itk::TranslationPCADeformationModelTransform< TScalarType, NDimensions >.

Member Data Documentation

template<class TScalarType = float, unsigned int NDimensions = 3>
FieldPointerArray itk::PCADeformationModelTransform< TScalarType, NDimensions >::m_FieldArray
protected
template<class TScalarType = float, unsigned int NDimensions = 3>
FieldInterpolatorPointerArray itk::PCADeformationModelTransform< TScalarType, NDimensions >::m_Interpolators
protected

interpolator for field interpolation

template<class TScalarType = float, unsigned int NDimensions = 3>
TScalarType itk::PCADeformationModelTransform< TScalarType, NDimensions >::m_meanCoefficient
protected

Local storage variables

template<class TScalarType = float, unsigned int NDimensions = 3>
unsigned int itk::PCADeformationModelTransform< TScalarType, NDimensions >::m_NumberOfFields
protected
template<class TScalarType = float, unsigned int NDimensions = 3>
FieldPointer itk::PCADeformationModelTransform< TScalarType, NDimensions >::m_SingleField
protected

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