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 | Protected Types | Protected Member Functions | Private Member Functions
itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions > Class Template Reference

#include <itkThinPlateSplineKernelTransform2.h>

Detailed Description

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

This class defines the thin plate spline (TPS) transformation. It 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

Definition at line 52 of file itkThinPlateSplineKernelTransform2.h.

+ Inheritance diagram for itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >:

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::InputCovariantVectorType InputCovariantVectorType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef Superclass::JacobianType JacobianType
 
typedef Superclass::OutputCovariantVectorType OutputCovariantVectorType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef Superclass::OutputVectorType OutputVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef SmartPointer< SelfPointer
 
typedef Superclass::PointsIterator PointsIterator
 
typedef Superclass::ScalarType ScalarType
 
typedef ThinPlateSplineKernelTransform2 Self
 
typedef KernelTransform2< TScalarType, NDimensions > Superclass
 
- Public Types inherited from itk::KernelTransform2< TScalarType, 3 >
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< TScalarTypeDMatrixType
 
typedef vnl_matrix_fixed< TScalarType, NDimensions, NDimensions > GMatrixType
 
typedef vnl_matrix_fixed< TScalarType, NDimensions, NDimensions > IMatrixType
 
typedef Superclass::InputCovariantVectorType InputCovariantVectorType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef Superclass::InputVnlVectorType InputVnlVectorType
 
typedef Superclass::InternalMatrixType InternalMatrixType
 
typedef Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
 
typedef Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
 
typedef Superclass::JacobianType JacobianType
 
typedef vnl_matrix< TScalarTypeKMatrixType
 
typedef vnl_matrix< TScalarTypeLMatrixType
 
typedef Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
 
typedef Superclass::NumberOfParametersType NumberOfParametersType
 
typedef Superclass::OutputCovariantVectorType OutputCovariantVectorType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef Superclass::OutputVectorType OutputVectorType
 
typedef Superclass::OutputVnlVectorType OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef vnl_matrix< TScalarTypePMatrixType
 
typedef SmartPointer< SelfPointer
 
typedef PointSetType::PointsContainerConstIterator PointsConstIterator
 
typedef PointSetType::PointsContainer PointsContainer
 
typedef PointSetType::Pointer PointSetPointer
 
typedef DefaultStaticMeshTraits< TScalarType, NDimensions, NDimensions, TScalarType, TScalarTypePointSetTraitsType
 
typedef PointSet< InputPointType, NDimensions, PointSetTraitsTypePointSetType
 
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, InputVectorTypeVectorSetType
 
typedef vnl_matrix< TScalarTypeWMatrixType
 
typedef vnl_matrix< TScalarTypeYMatrixType
 
- Public Types inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::DerivativeType DerivativeType
 
typedef Superclass::FixedParametersType FixedParametersType
 
typedef Superclass::InputCovariantVectorType InputCovariantVectorType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef Superclass::InputVnlVectorType InputVnlVectorType
 
typedef SpatialJacobianType::InternalMatrixType InternalMatrixType
 
typedef Superclass::InverseTransformBasePointer InverseTransformBasePointer
 
typedef Superclass::InverseTransformBaseType InverseTransformBaseType
 
typedef std::vector< SpatialHessianTypeJacobianOfSpatialHessianType
 
typedef std::vector< SpatialJacobianTypeJacobianOfSpatialJacobianType
 
typedef Superclass::JacobianType JacobianType
 
typedef OutputCovariantVectorType MovingImageGradientType
 
typedef MovingImageGradientType::ValueType MovingImageGradientValueType
 
typedef std::vector< unsigned long > NonZeroJacobianIndicesType
 
typedef Superclass::NumberOfParametersType NumberOfParametersType
 
typedef Superclass::OutputCovariantVectorType OutputCovariantVectorType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef Superclass::OutputVectorType OutputVectorType
 
typedef Superclass::OutputVnlVectorType OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef Superclass::ParametersValueType ParametersValueType
 
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
 
typedef Transform< TScalarType, NInputDimensions, NOutputDimensions > TransformType
 
typedef TransformType::ConstPointer TransformTypeConstPointer
 
typedef TransformType::Pointer TransformTypePointer
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (SpaceDimension, unsigned int, Superclass::SpaceDimension)
 
- Public Member Functions inherited from itk::KernelTransform2< TScalarType, 3 >
void ComputeLInverse (void)
 
void ComputeWMatrix (void)
 
virtual TScalarType GetAlpha (void) const
 
virtual const char * GetClassName () const
 
const ParametersTypeGetFixedParameters (void) const override
 
void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
virtual const std::string & GetMatrixInversionMethod ()
 
NumberOfParametersType GetNumberOfParameters (void) const override
 
const ParametersTypeGetParameters (void) const override
 
virtual const TScalarType GetPoissonRatio (void) const
 
void GetSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh) const override
 
void GetSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj) const override
 
virtual double GetStiffness ()
 
 itkGetModifiableObjectMacro (Displacements, VectorSetType)
 
 itkGetModifiableObjectMacro (SourceLandmarks, PointSetType)
 
 itkGetModifiableObjectMacro (TargetLandmarks, PointSetType)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
virtual void SetAlpha (TScalarType)
 
void SetFixedParameters (const ParametersType &) override
 
virtual void SetIdentity (void)
 
virtual void SetMatrixInversionMethod (std::string _arg)
 
void SetParameters (const ParametersType &) override
 
virtual void SetPoissonRatio (TScalarType _arg)
 
virtual void SetSourceLandmarks (PointSetType *)
 
virtual void SetStiffness (double stiffness)
 
virtual void SetTargetLandmarks (PointSetType *)
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
OutputPointType TransformPoint (const InputPointType &thisPoint) const override
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
virtual void UpdateParameters (void)
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &ipp, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual const char * GetClassName () const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobian (const InputPointType &ipp, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const=0
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices (void) const
 
virtual void GetSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh) const=0
 
virtual void GetSpatialJacobian (const InputPointType &ipp, SpatialJacobianType &sj) const=0
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

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

Protected Types

typedef Superclass::GMatrixType GMatrixType
 
- Protected Types inherited from itk::KernelTransform2< TScalarType, 3 >
typedef vnl_qr< ScalarTypeQRDecompositionType
 
typedef vnl_svd< ScalarTypeSVDDecompositionType
 

Protected Member Functions

void ComputeDeformationContribution (const InputPointType &inputPoint, OutputPointType &result) const override
 
void ComputeG (const InputVectorType &x, GMatrixType &GMatrix) const override
 
 ThinPlateSplineKernelTransform2 ()
 
 ~ThinPlateSplineKernelTransform2 () override
 
- Protected Member Functions inherited from itk::KernelTransform2< TScalarType, 3 >
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 override
 
void ReorganizeW (void)
 
 ~KernelTransform2 () override
 
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
 AdvancedTransform ()
 
 AdvancedTransform (NumberOfParametersType numberOfParameters)
 
 ~AdvancedTransform () override
 

Private Member Functions

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

Additional Inherited Members

- Data Fields inherited from itk::KernelTransform2< TScalarType, 3 >
PointSetPointer m_SourceLandmarks
 
PointSetPointer m_TargetLandmarks
 
- Protected Attributes inherited from itk::KernelTransform2< TScalarType, 3 >
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
 

Member Typedef Documentation

◆ ConstPointer

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

Definition at line 61 of file itkThinPlateSplineKernelTransform2.h.

◆ GMatrixType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::GMatrixType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::GMatrixType
protected

These (rather redundant) typedefs are needed because on SGI, typedefs are not inherited.

Definition at line 105 of file itkThinPlateSplineKernelTransform2.h.

◆ InputCovariantVectorType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::InputCovariantVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::InputCovariantVectorType

Definition at line 88 of file itkThinPlateSplineKernelTransform2.h.

◆ InputPointType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::InputPointType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::InputPointType

These (rather redundant) typedefs are needed because on SGI, typedefs are not inherited.

Definition at line 84 of file itkThinPlateSplineKernelTransform2.h.

◆ InputVectorType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::InputVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::InputVectorType

Definition at line 86 of file itkThinPlateSplineKernelTransform2.h.

◆ JacobianType

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

Jacobian Type

Definition at line 76 of file itkThinPlateSplineKernelTransform2.h.

◆ OutputCovariantVectorType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::OutputCovariantVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::OutputCovariantVectorType

Definition at line 89 of file itkThinPlateSplineKernelTransform2.h.

◆ OutputPointType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::OutputPointType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::OutputPointType

Definition at line 85 of file itkThinPlateSplineKernelTransform2.h.

◆ OutputVectorType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::OutputVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::OutputVectorType

Definition at line 87 of file itkThinPlateSplineKernelTransform2.h.

◆ ParametersType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::ParametersType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ParametersType

Parameters type.

Definition at line 73 of file itkThinPlateSplineKernelTransform2.h.

◆ Pointer

template<class TScalarType , unsigned int NDimensions = 3>
typedef SmartPointer< Self > itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::Pointer

Definition at line 60 of file itkThinPlateSplineKernelTransform2.h.

◆ PointsIterator

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::PointsIterator itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::PointsIterator

Definition at line 90 of file itkThinPlateSplineKernelTransform2.h.

◆ ScalarType

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::ScalarType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ScalarType

Scalar type.

Definition at line 70 of file itkThinPlateSplineKernelTransform2.h.

◆ Self

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

Standard class typedefs.

Definition at line 58 of file itkThinPlateSplineKernelTransform2.h.

◆ Superclass

template<class TScalarType , unsigned int NDimensions = 3>
typedef KernelTransform2< TScalarType, NDimensions > itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::Superclass

Definition at line 59 of file itkThinPlateSplineKernelTransform2.h.

Constructor & Destructor Documentation

◆ ThinPlateSplineKernelTransform2() [1/2]

template<class TScalarType , unsigned int NDimensions = 3>
itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ThinPlateSplineKernelTransform2 ( )
inlineprotected

Definition at line 94 of file itkThinPlateSplineKernelTransform2.h.

◆ ~ThinPlateSplineKernelTransform2()

template<class TScalarType , unsigned int NDimensions = 3>
itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::~ThinPlateSplineKernelTransform2 ( )
inlineoverrideprotected

Definition at line 100 of file itkThinPlateSplineKernelTransform2.h.

◆ ThinPlateSplineKernelTransform2() [2/2]

template<class TScalarType , unsigned int NDimensions = 3>
itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ThinPlateSplineKernelTransform2 ( const Self )
private

Member Function Documentation

◆ ComputeDeformationContribution()

template<class TScalarType , unsigned int NDimensions = 3>
void itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ComputeDeformationContribution ( const InputPointType inputPoint,
OutputPointType result 
) const
overrideprotectedvirtual

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

Reimplemented from itk::KernelTransform2< TScalarType, 3 >.

◆ ComputeG()

template<class TScalarType , unsigned int NDimensions = 3>
void itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ComputeG ( const InputVectorType x,
GMatrixType GMatrix 
) const
overrideprotectedvirtual

Compute G(x) For the thin plate spline, this is: G(x) = r(x)*I $ G(x) = r(x)*I $ where r(x) = Euclidean norm = sqrt[x1^2 + x2^2 + x3^2]

\[ r(x) = \sqrt{ x_1^2 + x_2^2 + x_3^2 }  \]

I = identity matrix.

Reimplemented from itk::KernelTransform2< TScalarType, 3 >.

◆ GetClassName()

template<class TScalarType , unsigned int NDimensions = 3>
virtual const char * itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::KernelTransform2< TScalarType, 3 >.

◆ itkStaticConstMacro()

template<class TScalarType , unsigned int NDimensions = 3>
itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::itkStaticConstMacro ( SpaceDimension  ,
unsigned int  ,
Superclass::SpaceDimension   
)

Dimension of the domain space.

◆ New()

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

New macro for creation of through a Smart Pointer

◆ operator=()

template<class TScalarType , unsigned int NDimensions = 3>
void itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::operator= ( const Self )
private


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo