Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::KernelTransform< TScalarType, NDimensions > Class Template Reference
[Transforms]

#include <itkKernelTransform.h>

Inheritance diagram for itk::KernelTransform< TScalarType, NDimensions >:

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef KernelTransform Self
typedef Transform< TScalarType,
NDimensions, NDimensions > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::ScalarType ScalarType
typedef Superclass::ParametersType ParametersType
typedef Superclass::JacobianType JacobianType
typedef Superclass::InputPointType InputPointType
typedef Superclass::OutputPointType OutputPointType
typedef Superclass::InputVectorType InputVectorType
typedef Superclass::OutputVectorType OutputVectorType
typedef DefaultStaticMeshTraits<
TScalarType, NDimensions,
NDimensions, TScalarType,
TScalarType > 
PointSetTraitsType
typedef PointSet< InputPointType,
NDimensions, PointSetTraitsType
PointSetType
typedef PointSetType::Pointer PointSetPointer
typedef PointSetType::PointsContainer PointsContainer
typedef PointSetType::PointsContainerIterator PointsIterator
typedef PointSetType::PointsContainerConstIterator PointsConstIterator
typedef itk::VectorContainer<
unsigned long, InputVectorType
VectorSetType
typedef VectorSetType::Pointer VectorSetPointer
typedef vnl_matrix_fixed<
TScalarType, NDimensions,
NDimensions > 
IMatrixType
typedef vnl_matrix_fixed<
TScalarType, NDimensions,
NDimensions > 
GMatrixType
typedef vnl_matrix< TScalarType > LMatrixType
typedef vnl_matrix< TScalarType > KMatrixType
typedef vnl_matrix< TScalarType > PMatrixType
typedef vnl_matrix< TScalarType > YMatrixType
typedef vnl_matrix< TScalarType > WMatrixType
typedef vnl_matrix< TScalarType > DMatrixType
typedef vnl_matrix_fixed<
TScalarType, NDimensions,
NDimensions > 
AMatrixType
typedef vnl_vector_fixed<
TScalarType, NDimensions > 
BMatrixType
typedef vnl_matrix_fixed<
TScalarType, 1, NDimensions > 
RowMatrixType
typedef vnl_matrix_fixed<
TScalarType, NDimensions, 1 > 
ColumnMatrixType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
virtual PointSetTypeGetSourceLandmarks ()
virtual void SetSourceLandmarks (PointSetType *_arg)
virtual PointSetTypeGetTargetLandmarks ()
virtual void SetTargetLandmarks (PointSetType *_arg)
virtual VectorSetTypeGetDisplacements ()
void ComputeWMatrix (void)
virtual OutputPointType TransformPoint (const InputPointType &thisPoint) const
virtual const JacobianTypeGetJacobian (const InputPointType &point) const
virtual void SetParameters (const ParametersType &)
virtual const ParametersTypeGetParameters (void) const
virtual void SetStiffness (double _arg)
virtual double GetStiffness ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 KernelTransform ()
virtual ~KernelTransform ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual const GMatrixTypeComputeG (const InputVectorType &landmarkVector) const
virtual const GMatrixTypeComputeReflexiveG (PointsIterator) const
virtual void ComputeDeformationContribution (const InputPointType &inputPoint, OutputPointType &result) const
void ComputeK ()
void ComputeL ()
void ComputeP ()
void ComputeY ()
void ComputeD ()
void ReorganizeW (void)

Protected Attributes

PointSetPointer m_SourceLandmarks
PointSetPointer m_TargetLandmarks
double m_Stiffness
VectorSetPointer m_Displacements
LMatrixType m_LMatrix
KMatrixType m_KMatrix
PMatrixType m_PMatrix
YMatrixType m_YMatrix
WMatrixType m_WMatrix
DMatrixType m_DMatrix
AMatrixType m_AMatrix
BMatrixType m_BVector
GMatrixType m_GMatrix
bool m_WMatrixComputed
IMatrixType m_I

Detailed Description

template<class TScalarType, unsigned int NDimensions>
class itk::KernelTransform< 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.

KernelTransform: 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.

Definition at line 63 of file itkKernelTransform.h.


Member Typedef Documentation

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

'A' matrix typedef. Rotational part of the Affine component Definition at line 197 of file itkKernelTransform.h.

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

'B' matrix typedef. Translational part of the Affine component Definition at line 200 of file itkKernelTransform.h.

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

Column matrix typedef. Definition at line 206 of file itkKernelTransform.h.

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

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 71 of file itkKernelTransform.h.

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

'D' matrix typedef. Deformation component Definition at line 194 of file itkKernelTransform.h.

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

'G' matrix typedef.

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 176 of file itkKernelTransform.h.

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

'I' (identity) matrix typedef. Definition at line 139 of file itkKernelTransform.h.

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

Standard coordinate point type for this class.

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 92 of file itkKernelTransform.h.

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

Standard vector type for this class.

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 96 of file itkKernelTransform.h.

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

Jacobian type.

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 89 of file itkKernelTransform.h.

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

'K' matrix typedef. Definition at line 182 of file itkKernelTransform.h.

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

'L' matrix typedef. Definition at line 179 of file itkKernelTransform.h.

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

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 93 of file itkKernelTransform.h.

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

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 97 of file itkKernelTransform.h.

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

Parameters type.

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 86 of file itkKernelTransform.h.

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

'P' matrix typedef. Definition at line 185 of file itkKernelTransform.h.

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

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 70 of file itkKernelTransform.h.

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

Definition at line 110 of file itkKernelTransform.h.

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

Definition at line 108 of file itkKernelTransform.h.

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

Definition at line 107 of file itkKernelTransform.h.

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

PointList typedef. This type is used for maintaining lists of points, specifically, the source and target landmark lists. Definition at line 105 of file itkKernelTransform.h.

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

Definition at line 106 of file itkKernelTransform.h.

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

Reimplemented in itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 109 of file itkKernelTransform.h.

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

Row matrix typedef. Definition at line 203 of file itkKernelTransform.h.

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

Scalar type.

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 83 of file itkKernelTransform.h.

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

Standard class typedefs.

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 68 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
typedef Transform<TScalarType, NDimensions, NDimensions > itk::KernelTransform< TScalarType, NDimensions >::Superclass
 

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

Definition at line 69 of file itkKernelTransform.h.

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

Definition at line 114 of file itkKernelTransform.h.

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

VectorSet typedef. Definition at line 113 of file itkKernelTransform.h.

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

'W' matrix typedef. Definition at line 191 of file itkKernelTransform.h.

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

'Y' matrix typedef. Definition at line 188 of file itkKernelTransform.h.


Constructor & Destructor Documentation

template<class TScalarType, unsigned int NDimensions>
itk::KernelTransform< TScalarType, NDimensions >::KernelTransform  )  [protected]
 

template<class TScalarType, unsigned int NDimensions>
virtual itk::KernelTransform< TScalarType, NDimensions >::~KernelTransform  )  [protected, virtual]
 


Member Function Documentation

template<class TScalarType, unsigned int NDimensions>
void itk::KernelTransform< TScalarType, NDimensions >::ComputeD  )  [protected]
 

Compute displacements $ q_i - p_i $.

template<class TScalarType, unsigned int NDimensions>
virtual void itk::KernelTransform< TScalarType, NDimensions >::ComputeDeformationContribution const InputPointType inputPoint,
OutputPointType result
const [protected, virtual]
 

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

Reimplemented in itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

template<class TScalarType, unsigned int NDimensions>
virtual const GMatrixType& itk::KernelTransform< TScalarType, NDimensions >::ComputeG const InputVectorType landmarkVector  )  const [protected, virtual]
 

Compute G(x) This is essentially the kernel of the transform. By overriding this method, we can obtain (among others): Elastic body spline Thin plate spline Volume spline

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

template<class TScalarType, unsigned int NDimensions>
void itk::KernelTransform< TScalarType, NDimensions >::ComputeK  )  [protected]
 

Compute K matrix.

template<class TScalarType, unsigned int NDimensions>
void itk::KernelTransform< TScalarType, NDimensions >::ComputeL  )  [protected]
 

Compute L matrix.

template<class TScalarType, unsigned int NDimensions>
void itk::KernelTransform< TScalarType, NDimensions >::ComputeP  )  [protected]
 

Compute P matrix.

template<class TScalarType, unsigned int NDimensions>
virtual const GMatrixType& itk::KernelTransform< TScalarType, NDimensions >::ComputeReflexiveG PointsIterator   )  const [protected, virtual]
 

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::KernelTransform< TScalarType, NDimensions >::ComputeWMatrix void   ) 
 

Compute W matrix.

template<class TScalarType, unsigned int NDimensions>
void itk::KernelTransform< TScalarType, NDimensions >::ComputeY  )  [protected]
 

Compute Y matrix.

template<class TScalarType, unsigned int NDimensions>
virtual const char* itk::KernelTransform< TScalarType, NDimensions >::GetClassName  )  const [virtual]
 

Run-time type information (and related methods).

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

template<class TScalarType, unsigned int NDimensions>
virtual VectorSetType* itk::KernelTransform< 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 JacobianType& itk::KernelTransform< TScalarType, NDimensions >::GetJacobian const InputPointType point  )  const [virtual]
 

Compute the Jacobian Matrix of the transformation at one point

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

template<class TScalarType, unsigned int NDimensions>
virtual const ParametersType& itk::KernelTransform< TScalarType, NDimensions >::GetParameters void   )  const [virtual]
 

Get the Transformation Parameters.

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

template<class TScalarType, unsigned int NDimensions>
virtual PointSetType* itk::KernelTransform< TScalarType, NDimensions >::GetSourceLandmarks  )  [virtual]
 

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

template<class TScalarType, unsigned int NDimensions>
virtual double itk::KernelTransform< TScalarType, NDimensions >::GetStiffness  )  [virtual]
 

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.

template<class TScalarType, unsigned int NDimensions>
virtual PointSetType* itk::KernelTransform< TScalarType, NDimensions >::GetTargetLandmarks  )  [virtual]
 

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

template<class TScalarType, unsigned int NDimensions>
itk::KernelTransform< TScalarType, NDimensions >::itkStaticConstMacro SpaceDimension  ,
unsigned  int,
NDimensions 
 

Dimension of the domain space.

template<class TScalarType, unsigned int NDimensions>
Pointer itk::KernelTransform< TScalarType, NDimensions >::New  )  [static]
 

New macro for creation of through a Smart Pointer

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

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >.

template<class TScalarType, unsigned int NDimensions>
void itk::KernelTransform< TScalarType, NDimensions >::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::Object.

Reimplemented in itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, and itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >.

template<class TScalarType, unsigned int NDimensions>
void itk::KernelTransform< 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::KernelTransform< 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>.

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

template<class TScalarType, unsigned int NDimensions>
virtual void itk::KernelTransform< TScalarType, NDimensions >::SetSourceLandmarks PointSetType _arg  )  [virtual]
 

Set the source landmarks list.

template<class TScalarType, unsigned int NDimensions>
virtual void itk::KernelTransform< TScalarType, NDimensions >::SetStiffness double  _arg  )  [virtual]
 

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.

template<class TScalarType, unsigned int NDimensions>
virtual void itk::KernelTransform< TScalarType, NDimensions >::SetTargetLandmarks PointSetType _arg  )  [virtual]
 

Set the target landmarks list.

template<class TScalarType, unsigned int NDimensions>
virtual OutputPointType itk::KernelTransform< TScalarType, NDimensions >::TransformPoint const InputPointType thisPoint  )  const [virtual]
 

Compute the position of point in the new space

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


Member Data Documentation

template<class TScalarType, unsigned int NDimensions>
AMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_AMatrix [protected]
 

Rotatinoal/Shearing part of the Affine component of the Transformation Definition at line 288 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
BMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_BVector [protected]
 

Translational part of the Affine component of the Transformation Definition at line 291 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
VectorSetPointer itk::KernelTransform< TScalarType, NDimensions >::m_Displacements [protected]
 

The list of displacements. d[i] = q[i] - p[i]; Definition at line 263 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
DMatrixType itk::KernelTransform< 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 285 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
GMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_GMatrix [mutable, protected]
 

The G matrix. It is made mutable because m_GMatrix was made an ivar only to avoid copying the matrix at return time Definition at line 296 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
IMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_I [protected]
 

Identity matrix. Definition at line 302 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
KMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_KMatrix [protected]
 

The K matrix. Definition at line 269 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
LMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_LMatrix [protected]
 

The L matrix. Definition at line 266 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
PMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_PMatrix [protected]
 

The P matrix. Definition at line 272 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
PointSetPointer itk::KernelTransform< TScalarType, NDimensions >::m_SourceLandmarks [protected]
 

The list of source landmarks, denoted 'p'. Definition at line 253 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
double itk::KernelTransform< TScalarType, NDimensions >::m_Stiffness [protected]
 

Stiffness parameter Definition at line 259 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
PointSetPointer itk::KernelTransform< TScalarType, NDimensions >::m_TargetLandmarks [protected]
 

The list of target landmarks, denoted 'q'. Definition at line 256 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
WMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_WMatrix [protected]
 

The W matrix. Definition at line 278 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
bool itk::KernelTransform< TScalarType, NDimensions >::m_WMatrixComputed [protected]
 

Has the W matrix been computed? Definition at line 299 of file itkKernelTransform.h.

template<class TScalarType, unsigned int NDimensions>
YMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_YMatrix [protected]
 

The Y matrix. Definition at line 275 of file itkKernelTransform.h.


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 03:09:33 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000