go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
itk::KernelTransform2< TScalarType, NDimensions > Class Template Reference

#include <itkKernelTransform2.h>

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

Public Types

typedef vnl_matrix_fixed
< TScalarType, NDimensions,
NDimensions > 
AMatrixType
 
typedef vnl_vector_fixed
< TScalarType, NDimensions > 
BMatrixType
 
typedef vnl_matrix_fixed
< TScalarType, NDimensions, 1 > 
ColumnMatrixType
 
typedef SmartPointer< const SelfConstPointer
 
typedef vnl_matrix< TScalarType > DMatrixType
 
typedef vnl_matrix_fixed
< TScalarType, NDimensions,
NDimensions > 
GMatrixType
 
typedef vnl_matrix_fixed
< TScalarType, NDimensions,
NDimensions > 
IMatrixType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef
Superclass::InternalMatrixType 
InternalMatrixType
 
typedef
Superclass::JacobianOfSpatialHessianType 
JacobianOfSpatialHessianType
 
typedef
Superclass::JacobianOfSpatialJacobianType 
JacobianOfSpatialJacobianType
 
typedef Superclass::JacobianType JacobianType
 
typedef vnl_matrix< TScalarType > KMatrixType
 
typedef vnl_matrix< TScalarType > LMatrixType
 
typedef
Superclass::NonZeroJacobianIndicesType 
NonZeroJacobianIndicesType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef
Superclass::OutputVectorType 
OutputVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef vnl_matrix< TScalarType > PMatrixType
 
typedef SmartPointer< SelfPointer
 
typedef
PointSetType::PointsContainerConstIterator 
PointsConstIterator
 
typedef
PointSetType::PointsContainer 
PointsContainer
 
typedef PointSetType::Pointer PointSetPointer
 
typedef
DefaultStaticMeshTraits
< TScalarType, NDimensions,
NDimensions, TScalarType,
TScalarType > 
PointSetTraitsType
 
typedef PointSet
< InputPointType, NDimensions,
PointSetTraitsType
PointSetType
 
typedef
PointSetType::PointsContainerIterator 
PointsIterator
 
typedef vnl_matrix_fixed
< TScalarType, 1, NDimensions > 
RowMatrixType
 
typedef Superclass::ScalarType ScalarType
 
typedef KernelTransform2 Self
 
typedef
Superclass::SpatialHessianType 
SpatialHessianType
 
typedef
Superclass::SpatialJacobianType 
SpatialJacobianType
 
typedef AdvancedTransform
< TScalarType, NDimensions,
NDimensions > 
Superclass
 
typedef VectorSetType::Pointer VectorSetPointer
 
typedef VectorContainer
< unsigned long,
InputVectorType
VectorSetType
 
typedef vnl_matrix< TScalarType > WMatrixType
 
typedef vnl_matrix< TScalarType > YMatrixType
 
- Public Types inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
 
typedef
SpatialJacobianType::InternalMatrixType 
InternalMatrixType
 
typedef std::vector
< SpatialHessianType
JacobianOfSpatialHessianType
 
typedef std::vector
< SpatialJacobianType
JacobianOfSpatialJacobianType
 
typedef Superclass::JacobianType JacobianType
 
typedef std::vector< unsigned
long > 
NonZeroJacobianIndicesType
 
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef
Superclass::OutputVectorType 
OutputVectorType
 
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef SmartPointer< SelfPointer
 
typedef Superclass::ScalarType ScalarType
 
typedef AdvancedTransform Self
 
typedef FixedArray< Matrix
< ScalarType,
InputSpaceDimension,
InputSpaceDimension >
, OutputSpaceDimension > 
SpatialHessianType
 
typedef Matrix< ScalarType,
OutputSpaceDimension,
InputSpaceDimension > 
SpatialJacobianType
 
typedef Transform< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
 

Public Member Functions

void ComputeLInverse (void)
 
void ComputeWMatrix (void)
 
virtual TScalarType GetAlpha (void) const
 
virtual const char * GetClassName () const
 
virtual VectorSetTypeGetDisplacements ()
 
virtual const ParametersTypeGetFixedParameters (void) const
 
virtual const JacobianTypeGetJacobian (const InputPointType &point) const
 
virtual void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
virtual const std::string & GetMatrixInversionMethod ()
 
virtual unsigned int GetNumberOfParameters (void) const
 
virtual const ParametersTypeGetParameters (void) const
 
virtual const TScalarType GetPoissonRatio (void) const
 
virtual PointSetTypeGetSourceLandmarks ()
 
virtual double GetStiffness ()
 
virtual PointSetTypeGetTargetLandmarks ()
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
virtual void SetAlpha (TScalarType)
 
virtual void SetFixedParameters (const ParametersType &)
 
virtual void SetIdentity (void)
 
virtual void SetMatrixInversionMethod (std::string _arg)
 
virtual void SetParameters (const ParametersType &)
 
virtual void SetPoissonRatio (TScalarType _arg)
 
virtual void SetSourceLandmarks (PointSetType *)
 
virtual void SetStiffness (double stiffness)
 
virtual void SetTargetLandmarks (PointSetType *)
 
virtual OutputPointType TransformPoint (const InputPointType &thisPoint) const
 
virtual void UpdateParameters (void)
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual unsigned long GetNumberOfNonZeroJacobianIndices (void) const
 
virtual void GetSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh) const
 
virtual void GetSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj) const
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
static Pointer New ()
 

Data Fields

PointSetPointer m_SourceLandmarks
 
PointSetPointer m_TargetLandmarks
 

Protected Types

typedef vnl_qr< ScalarTypeQRDecompositionType
 
typedef vnl_svd< ScalarTypeSVDDecompositionType
 

Protected Member Functions

void ComputeD (void)
 
virtual void ComputeDeformationContribution (const InputPointType &inputPoint, OutputPointType &result) const
 
virtual void ComputeG (const InputVectorType &landmarkVector, GMatrixType &GMatrix) const
 
void ComputeK (void)
 
void ComputeL (void)
 
void ComputeP (void)
 
virtual void ComputeReflexiveG (PointsIterator, GMatrixType &GMatrix) const
 
void ComputeY (void)
 
 KernelTransform2 ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void ReorganizeW (void)
 
virtual ~KernelTransform2 ()
 
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
 AdvancedTransform ()
 
 AdvancedTransform (unsigned int Dimension, unsigned int NumberOfParameters)
 
virtual ~AdvancedTransform ()
 

Protected Attributes

AMatrixType m_AMatrix
 
BMatrixType m_BVector
 
VectorSetPointer m_Displacements
 
DMatrixType m_DMatrix
 
bool m_FastComputationPossible
 
IMatrixType m_I
 
KMatrixType m_KMatrix
 
bool m_LInverseComputed
 
LMatrixType m_LMatrix
 
bool m_LMatrixComputed
 
bool m_LMatrixDecompositionComputed
 
QRDecompositionTypem_LMatrixDecompositionQR
 
SVDDecompositionTypem_LMatrixDecompositionSVD
 
LMatrixType m_LMatrixInverse
 
NonZeroJacobianIndicesType m_NonZeroJacobianIndices
 
NonZeroJacobianIndicesType m_NonZeroJacobianIndicesTemp
 
PMatrixType m_PMatrix
 
double m_Stiffness
 
WMatrixType m_WMatrix
 
bool m_WMatrixComputed
 
YMatrixType m_YMatrix
 
- Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian
 
bool m_HasNonZeroSpatialHessian
 

Private Member Functions

 KernelTransform2 (const Self &)
 
void operator= (const Self &)
 

Private Attributes

std::string m_MatrixInversionMethod
 
TScalarType m_PoissonRatio
 

Detailed Description

template<class TScalarType, unsigned int NDimensions>
class itk::KernelTransform2< TScalarType, NDimensions >

Intended to be a base class for elastic body spline and thin plate spline. This is implemented in as straightforward a manner as possible from the IEEE TMI paper by Davis, Khotanzad, Flamig, and Harms, Vol. 16, No. 3 June 1997. Notation closely follows their paper, so if you have it in front of you, this code will make a lot more sense.

KernelTransform2: Provides support for defining source and target landmarks Defines a number of data types used in the computations Defines the mathematical framework used to compute all splines, so that subclasses need only provide a kernel specific to that spline

This formulation allows the stiffness of the spline to be adjusted, allowing the spline to vary from interpolating the landmarks to approximating the landmarks. This part of the formulation is based on the short paper by R. Sprengel, K. Rohr, H. Stiehl. "Thin-Plate Spline Approximation for Image Registration". In 18th International Conference of the IEEE Engineering in Medicine and Biology Society. 1996.

This class was modified to support its use in the ITK registration framework by Rupert Brooks, McGill Centre for Intelligent Machines, Montreal, Canada March 2007. See the Insight Journal Paper by Brooks, R., Arbel, T. "Improvements to the itk::KernelTransform and its subclasses."

Modified to include it in elastix:

Definition at line 80 of file itkKernelTransform2.h.

Member Typedef Documentation

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalarType,NDimensions,NDimensions> itk::KernelTransform2< TScalarType, NDimensions >::AMatrixType

'A' matrix typedef. Rotational part of the Affine component

Definition at line 279 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_vector_fixed<TScalarType,NDimensions> itk::KernelTransform2< TScalarType, NDimensions >::BMatrixType

'B' matrix typedef. Translational part of the Affine component

Definition at line 282 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalarType, NDimensions, 1> itk::KernelTransform2< TScalarType, NDimensions >::ColumnMatrixType

Column matrix typedef.

Definition at line 288 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef SmartPointer<const Self> itk::KernelTransform2< TScalarType, NDimensions >::ConstPointer

Definition at line 90 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix<TScalarType> itk::KernelTransform2< TScalarType, NDimensions >::DMatrixType

'D' matrix typedef. Deformation component

Definition at line 276 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions> itk::KernelTransform2< TScalarType, NDimensions >::GMatrixType

'G' matrix typedef.

Definition at line 258 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions> itk::KernelTransform2< TScalarType, NDimensions >::IMatrixType

'I' (identity) matrix typedef.

Definition at line 138 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::InputPointType itk::KernelTransform2< TScalarType, NDimensions >::InputPointType

Definition at line 105 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::InputVectorType itk::KernelTransform2< TScalarType, NDimensions >::InputVectorType

Definition at line 107 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::InternalMatrixType itk::KernelTransform2< TScalarType, NDimensions >::InternalMatrixType

Definition at line 119 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass ::JacobianOfSpatialHessianType itk::KernelTransform2< TScalarType, NDimensions >::JacobianOfSpatialHessianType

Definition at line 118 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass ::JacobianOfSpatialJacobianType itk::KernelTransform2< TScalarType, NDimensions >::JacobianOfSpatialJacobianType

Definition at line 115 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::JacobianType itk::KernelTransform2< TScalarType, NDimensions >::JacobianType

Definition at line 104 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix<TScalarType> itk::KernelTransform2< TScalarType, NDimensions >::KMatrixType

'K' matrix typedef.

Definition at line 264 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix<TScalarType> itk::KernelTransform2< TScalarType, NDimensions >::LMatrixType

'L' matrix typedef.

Definition at line 261 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass ::NonZeroJacobianIndicesType itk::KernelTransform2< TScalarType, NDimensions >::NonZeroJacobianIndicesType

AdvancedTransform typedefs.

Definition at line 112 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::OutputPointType itk::KernelTransform2< TScalarType, NDimensions >::OutputPointType

Definition at line 106 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::OutputVectorType itk::KernelTransform2< TScalarType, NDimensions >::OutputVectorType

Definition at line 108 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::ParametersType itk::KernelTransform2< TScalarType, NDimensions >::ParametersType

Definition at line 103 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix<TScalarType> itk::KernelTransform2< TScalarType, NDimensions >::PMatrixType

'P' matrix typedef.

Definition at line 267 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef SmartPointer<Self> itk::KernelTransform2< TScalarType, NDimensions >::Pointer

Definition at line 89 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef PointSetType::PointsContainerConstIterator itk::KernelTransform2< TScalarType, NDimensions >::PointsConstIterator

Definition at line 131 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef PointSetType::PointsContainer itk::KernelTransform2< TScalarType, NDimensions >::PointsContainer

Definition at line 129 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef PointSetType::Pointer itk::KernelTransform2< TScalarType, NDimensions >::PointSetPointer

Definition at line 128 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef DefaultStaticMeshTraits< TScalarType, NDimensions, NDimensions, TScalarType, TScalarType> itk::KernelTransform2< TScalarType, NDimensions >::PointSetTraitsType

PointList typedef. This type is used for maintaining lists of points, specifically, the source and target landmark lists.

Definition at line 125 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef PointSet<InputPointType, NDimensions, PointSetTraitsType> itk::KernelTransform2< TScalarType, NDimensions >::PointSetType

Definition at line 127 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef PointSetType::PointsContainerIterator itk::KernelTransform2< TScalarType, NDimensions >::PointsIterator

Definition at line 130 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_qr< ScalarType > itk::KernelTransform2< TScalarType, NDimensions >::QRDecompositionType
protected

Definition at line 407 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalarType, 1, NDimensions> itk::KernelTransform2< TScalarType, NDimensions >::RowMatrixType

Row matrix typedef.

Definition at line 285 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::ScalarType itk::KernelTransform2< TScalarType, NDimensions >::ScalarType

Typedefs.

Definition at line 102 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef KernelTransform2 itk::KernelTransform2< TScalarType, NDimensions >::Self

Standard class typedefs.

Definition at line 86 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::SpatialHessianType itk::KernelTransform2< TScalarType, NDimensions >::SpatialHessianType

Definition at line 116 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef Superclass::SpatialJacobianType itk::KernelTransform2< TScalarType, NDimensions >::SpatialJacobianType

Definition at line 113 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef AdvancedTransform< TScalarType, NDimensions, NDimensions > itk::KernelTransform2< TScalarType, NDimensions >::Superclass

Definition at line 88 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_svd< ScalarType > itk::KernelTransform2< TScalarType, NDimensions >::SVDDecompositionType
protected

Decompositions, needed for the L matrix. These decompositions are cached for performance reasons during registration. During registration, in every iteration SetParameters() is called, which in turn calls ComputeWMatrix(). The L matrix is not changed however, and therefore it is not needed to redo the decomposition.

Definition at line 406 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef VectorSetType::Pointer itk::KernelTransform2< TScalarType, NDimensions >::VectorSetPointer

Definition at line 135 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef VectorContainer<unsigned long,InputVectorType> itk::KernelTransform2< TScalarType, NDimensions >::VectorSetType

VectorSet typedef.

Definition at line 134 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix<TScalarType> itk::KernelTransform2< TScalarType, NDimensions >::WMatrixType

'W' matrix typedef.

Definition at line 273 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
typedef vnl_matrix<TScalarType> itk::KernelTransform2< TScalarType, NDimensions >::YMatrixType

'Y' matrix typedef.

Definition at line 270 of file itkKernelTransform2.h.

Constructor & Destructor Documentation

template<class TScalarType , unsigned int NDimensions>
itk::KernelTransform2< TScalarType, NDimensions >::KernelTransform2 ( )
protected
template<class TScalarType , unsigned int NDimensions>
virtual itk::KernelTransform2< TScalarType, NDimensions >::~KernelTransform2 ( )
protectedvirtual
template<class TScalarType , unsigned int NDimensions>
itk::KernelTransform2< TScalarType, NDimensions >::KernelTransform2 ( const Self )
private

Member Function Documentation

template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ComputeD ( void  )
protected

Compute displacements $ q_i - p_i $.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::ComputeDeformationContribution ( const InputPointType inputPoint,
OutputPointType result 
) const
protectedvirtual

Compute the contribution of the landmarks weighted by the kernel function to the global deformation of the space.

Reimplemented in itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform2< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform2< TScalarType, NDimensions >.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::ComputeG ( const InputVectorType landmarkVector,
GMatrixType GMatrix 
) const
protectedvirtual
template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ComputeK ( void  )
protected

Compute K matrix.

template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ComputeL ( void  )
protected

Compute L matrix.

template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ComputeLInverse ( void  )

Compute L matrix inverse.

template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ComputeP ( void  )
protected

Compute P matrix.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::ComputeReflexiveG ( PointsIterator  ,
GMatrixType GMatrix 
) const
protectedvirtual

Compute a G(x) for a point to itself (i.e. for the block diagonal elements of the matrix K. Parameter indicates for which landmark the reflexive G is to be computed. The default implementation for the reflexive contribution is a diagonal matrix where the diagonal elements are the stiffness of the spline.

template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ComputeWMatrix ( void  )

Compute W matrix.

template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ComputeY ( void  )
protected

Compute Y matrix.

template<class TScalarType , unsigned int NDimensions>
virtual TScalarType itk::KernelTransform2< TScalarType, NDimensions >::GetAlpha ( void  ) const
inlinevirtual
template<class TScalarType , unsigned int NDimensions>
virtual const char* itk::KernelTransform2< TScalarType, NDimensions >::GetClassName ( ) const
virtual
template<class TScalarType , unsigned int NDimensions>
virtual VectorSetType* itk::KernelTransform2< TScalarType, NDimensions >::GetDisplacements ( )
virtual

Get the displacements list, which we will denote $ d $, where $ d_i = q_i - p_i $.

template<class TScalarType , unsigned int NDimensions>
virtual const ParametersType& itk::KernelTransform2< TScalarType, NDimensions >::GetFixedParameters ( void  ) const
virtual

Get Transform Fixed Parameters - Gets the target landmarks.

template<class TScalarType , unsigned int NDimensions>
virtual const JacobianType& itk::KernelTransform2< TScalarType, NDimensions >::GetJacobian ( const InputPointType point) const
virtual

Compute the Jacobian of the transformation at one point.

Reimplemented from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::GetJacobian ( const InputPointType ,
JacobianType ,
NonZeroJacobianIndicesType  
) const
virtual

Compute the Jacobian of the transformation.

Reimplemented from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >.

template<class TScalarType , unsigned int NDimensions>
virtual const std::string& itk::KernelTransform2< TScalarType, NDimensions >::GetMatrixInversionMethod ( )
virtual
template<class TScalarType , unsigned int NDimensions>
virtual unsigned int itk::KernelTransform2< TScalarType, NDimensions >::GetNumberOfParameters ( void  ) const
inlinevirtual

Return the number of parameters that completely define the Transform.

Definition at line 141 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
virtual const ParametersType& itk::KernelTransform2< TScalarType, NDimensions >::GetParameters ( void  ) const
virtual

Get the Transformation Parameters - Gets the source landmarks.

template<class TScalarType , unsigned int NDimensions>
virtual const TScalarType itk::KernelTransform2< TScalarType, NDimensions >::GetPoissonRatio ( void  ) const
inlinevirtual
template<class TScalarType , unsigned int NDimensions>
virtual PointSetType* itk::KernelTransform2< TScalarType, NDimensions >::GetSourceLandmarks ( )
virtual

Get the source landmarks list, which we will denote $ p $.

template<class TScalarType , unsigned int NDimensions>
virtual double itk::KernelTransform2< TScalarType, NDimensions >::GetStiffness ( )
virtual
template<class TScalarType , unsigned int NDimensions>
virtual PointSetType* itk::KernelTransform2< TScalarType, NDimensions >::GetTargetLandmarks ( )
virtual

Get the target landmarks list, which we will denote $ q $.

template<class TScalarType , unsigned int NDimensions>
itk::KernelTransform2< TScalarType, NDimensions >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
NDimensions   
)

Dimension of the domain space.

template<class TScalarType , unsigned int NDimensions>
static Pointer itk::KernelTransform2< TScalarType, NDimensions >::New ( )
static

New macro for creation of through a Smart Pointer.

template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::operator= ( const Self )
private
template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<class TScalarType , unsigned int NDimensions>
void itk::KernelTransform2< TScalarType, NDimensions >::ReorganizeW ( void  )
protected

Reorganize the components of W into D (deformable), A (rotation part of affine) and B (translational part of affine ) components.

Warning
This method release the memory of the W Matrix.
template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetAlpha ( TScalarType  )
inlinevirtual

This method makes only sense for the ElasticBody splines. Declare here, so that you can always call it if you don't know the type of kernel beforehand. It will be overridden in the ElasticBodySplineKernelTransform and in the ElasticBodyReciprocalSplineKernelTransform.

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform2< TScalarType, NDimensions >, and itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >.

Definition at line 232 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetFixedParameters ( const ParametersType )
virtual

Set Transform Fixed Parameters: To support the transform file writer this function was added to set the target landmarks similar to the SetParameters function setting the source landmarks

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetIdentity ( void  )
virtual

Set the Transformation Parameters to be an identity transform.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetMatrixInversionMethod ( std::string  _arg)
virtual

Matrix inversion by SVD or QR decomposition.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetParameters ( const ParametersType )
virtual

Set the Transformation Parameters and update the internal transformation. The parameters represent the source landmarks. Each landmark point is represented by NDimensions doubles. All the landmarks are concatenated to form one flat Array<double>.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetPoissonRatio ( TScalarType  _arg)
virtual

This method makes only sense for the ElasticBody splines. Declare here, so that you can always call it if you don't know the type of kernel beforehand. It will be overridden in the ElasticBodySplineKernelTransform and in the ElasticBodyReciprocalSplineKernelTransform.

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform2< TScalarType, NDimensions >, and itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetSourceLandmarks ( PointSetType )
virtual

Set the source landmarks list.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetStiffness ( double  stiffness)
inlinevirtual

Stiffness of the spline. A stiffness of zero results in the standard interpolating spline. A non-zero stiffness allows the spline to approximate rather than interpolate the landmarks. Stiffness values are usually rather small, typically in the range of 0.001 to 0.1. The approximating spline formulation is based on the short paper by R. Sprengel, K. Rohr, H. Stiehl. "Thin-Plate Spline Approximation for Image Registration". In 18th International Conference of the IEEE Engineering in Medicine and Biology Society. 1996.

Definition at line 217 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::SetTargetLandmarks ( PointSetType )
virtual

Set the target landmarks list.

template<class TScalarType , unsigned int NDimensions>
virtual OutputPointType itk::KernelTransform2< TScalarType, NDimensions >::TransformPoint ( const InputPointType thisPoint) const
virtual

Compute the position of point in the new space

template<class TScalarType , unsigned int NDimensions>
virtual void itk::KernelTransform2< TScalarType, NDimensions >::UpdateParameters ( void  )
virtual

Update the Parameters array from the landmarks coordinates.

Field Documentation

template<class TScalarType , unsigned int NDimensions>
AMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_AMatrix
protected

Rotational/Shearing part of the Affine component of the Transformation.

Definition at line 379 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
BMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_BVector
protected

Translational part of the Affine component of the Transformation.

Definition at line 382 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
VectorSetPointer itk::KernelTransform2< TScalarType, NDimensions >::m_Displacements
protected

The list of displacements. d[i] = q[i] - p[i];

Definition at line 351 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
DMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_DMatrix
protected

The Deformation matrix. This is an auxiliary matrix that will hold the Deformation (non-affine) part of the transform. Those are the coefficients that will multiply the Kernel function.

Definition at line 376 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
bool itk::KernelTransform2< TScalarType, NDimensions >::m_FastComputationPossible
protected

The Jacobian can be computed much faster for some of the derived kerbel transforms, most notably the TPS.

Definition at line 424 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
IMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_I
protected

Identity matrix.

Definition at line 413 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
KMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_KMatrix
protected

The K matrix.

Definition at line 360 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
bool itk::KernelTransform2< TScalarType, NDimensions >::m_LInverseComputed
protected

Has the L inverse matrix been computed?

Definition at line 396 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
LMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_LMatrix
protected

The L matrix.

Definition at line 354 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
bool itk::KernelTransform2< TScalarType, NDimensions >::m_LMatrixComputed
protected

Has the L matrix been computed?

Definition at line 394 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
bool itk::KernelTransform2< TScalarType, NDimensions >::m_LMatrixDecompositionComputed
protected

Has the L matrix decomposition been computed?

Definition at line 398 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
QRDecompositionType* itk::KernelTransform2< TScalarType, NDimensions >::m_LMatrixDecompositionQR
protected

Definition at line 410 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
SVDDecompositionType* itk::KernelTransform2< TScalarType, NDimensions >::m_LMatrixDecompositionSVD
protected

Definition at line 409 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
LMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_LMatrixInverse
protected

The inverse of L, which we also cache.

Definition at line 357 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
std::string itk::KernelTransform2< TScalarType, NDimensions >::m_MatrixInversionMethod
private

Using SVD or QR decomposition.

Definition at line 433 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
NonZeroJacobianIndicesType itk::KernelTransform2< TScalarType, NDimensions >::m_NonZeroJacobianIndices
protected

Precomputed nonzero Jacobian indices (simply all params)

Definition at line 416 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
NonZeroJacobianIndicesType itk::KernelTransform2< TScalarType, NDimensions >::m_NonZeroJacobianIndicesTemp
mutableprotected

for old GetJacobian() method:

Definition at line 419 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
PMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_PMatrix
protected

The P matrix.

Definition at line 363 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
TScalarType itk::KernelTransform2< TScalarType, NDimensions >::m_PoissonRatio
private

Definition at line 430 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
PointSetPointer itk::KernelTransform2< TScalarType, NDimensions >::m_SourceLandmarks

The list of source landmarks, denoted 'p'.

Definition at line 291 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
double itk::KernelTransform2< TScalarType, NDimensions >::m_Stiffness
protected

Stiffness parameter.

Definition at line 346 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
PointSetPointer itk::KernelTransform2< TScalarType, NDimensions >::m_TargetLandmarks

The list of target landmarks, denoted 'q'.

Definition at line 294 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
WMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_WMatrix
protected

The W matrix.

Definition at line 369 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
bool itk::KernelTransform2< TScalarType, NDimensions >::m_WMatrixComputed
protected

The G matrix. It used to be mutable because m_GMatrix was made an ivar only to avoid copying the matrix at return time but this is not necessary. SK: we don't need this matrix anymore as a member.Has the W matrix been computed?

Definition at line 392 of file itkKernelTransform2.h.

template<class TScalarType , unsigned int NDimensions>
YMatrixType itk::KernelTransform2< TScalarType, NDimensions >::m_YMatrix
protected

The Y matrix.

Definition at line 366 of file itkKernelTransform2.h.



Generated on 27-06-2013 for elastix by doxygen 1.8.3.1 elastix logo