ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkKernelTransform.h>
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.
typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions> itk::KernelTransform< TScalarType, NDimensions >::AMatrixType |
'A' matrix typedef. Rotational part of the Affine component
Definition at line 252 of file itkKernelTransform.h.
typedef vnl_vector_fixed<TScalarType, NDimensions> itk::KernelTransform< TScalarType, NDimensions >::BMatrixType |
'B' matrix typedef. Translational part of the Affine component
Definition at line 255 of file itkKernelTransform.h.
typedef vnl_matrix_fixed<TScalarType, NDimensions, 1> itk::KernelTransform< TScalarType, NDimensions >::ColumnMatrixType |
Column matrix typedef.
Definition at line 261 of file itkKernelTransform.h.
typedef SmartPointer<const Self> itk::KernelTransform< TScalarType, NDimensions >::ConstPointer |
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 71 of file itkKernelTransform.h.
typedef vnl_matrix<TScalarType> itk::KernelTransform< TScalarType, NDimensions >::DMatrixType |
'D' matrix typedef. Deformation component
Definition at line 249 of file itkKernelTransform.h.
typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions> itk::KernelTransform< TScalarType, NDimensions >::GMatrixType |
'G' matrix typedef.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 231 of file itkKernelTransform.h.
typedef vnl_matrix_fixed<TScalarType, NDimensions, NDimensions> itk::KernelTransform< TScalarType, NDimensions >::IMatrixType |
'I' (identity) matrix typedef.
Definition at line 169 of file itkKernelTransform.h.
typedef Superclass::InputCovariantVectorType itk::KernelTransform< TScalarType, NDimensions >::InputCovariantVectorType |
Standard covariant vector type for this class
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 100 of file itkKernelTransform.h.
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::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 92 of file itkKernelTransform.h.
typedef Superclass::InputVectorType itk::KernelTransform< TScalarType, NDimensions >::InputVectorType |
Standard vector type for this class.
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 96 of file itkKernelTransform.h.
typedef Superclass::InputVnlVectorType itk::KernelTransform< TScalarType, NDimensions >::InputVnlVectorType |
Standard vnl_vector type for this class.
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Definition at line 104 of file itkKernelTransform.h.
typedef Superclass::JacobianType itk::KernelTransform< TScalarType, NDimensions >::JacobianType |
Jacobian type.
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 89 of file itkKernelTransform.h.
typedef vnl_matrix<TScalarType> itk::KernelTransform< TScalarType, NDimensions >::KMatrixType |
'K' matrix typedef.
Definition at line 237 of file itkKernelTransform.h.
typedef vnl_matrix<TScalarType> itk::KernelTransform< TScalarType, NDimensions >::LMatrixType |
'L' matrix typedef.
Definition at line 234 of file itkKernelTransform.h.
typedef Superclass::OutputCovariantVectorType itk::KernelTransform< TScalarType, NDimensions >::OutputCovariantVectorType |
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 101 of file itkKernelTransform.h.
typedef Superclass::OutputPointType itk::KernelTransform< TScalarType, NDimensions >::OutputPointType |
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 93 of file itkKernelTransform.h.
typedef Superclass::OutputVectorType itk::KernelTransform< TScalarType, NDimensions >::OutputVectorType |
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 97 of file itkKernelTransform.h.
typedef Superclass::OutputVnlVectorType itk::KernelTransform< TScalarType, NDimensions >::OutputVnlVectorType |
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Definition at line 105 of file itkKernelTransform.h.
typedef Superclass::ParametersType itk::KernelTransform< TScalarType, NDimensions >::ParametersType |
Parameters type.
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 86 of file itkKernelTransform.h.
typedef vnl_matrix<TScalarType> itk::KernelTransform< TScalarType, NDimensions >::PMatrixType |
'P' matrix typedef.
Definition at line 240 of file itkKernelTransform.h.
typedef SmartPointer<Self> itk::KernelTransform< TScalarType, NDimensions >::Pointer |
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 70 of file itkKernelTransform.h.
typedef PointSetType::PointIdentifier itk::KernelTransform< TScalarType, NDimensions >::PointIdentifier |
Definition at line 116 of file itkKernelTransform.h.
typedef PointSetType::PointsContainerConstIterator itk::KernelTransform< TScalarType, NDimensions >::PointsConstIterator |
Definition at line 115 of file itkKernelTransform.h.
typedef PointSetType::PointsContainer itk::KernelTransform< TScalarType, NDimensions >::PointsContainer |
Definition at line 113 of file itkKernelTransform.h.
typedef PointSetType::Pointer itk::KernelTransform< TScalarType, NDimensions >::PointSetPointer |
Definition at line 112 of file itkKernelTransform.h.
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 109 of file itkKernelTransform.h.
typedef PointSet<InputPointType, NDimensions, PointSetTraitsType> itk::KernelTransform< TScalarType, NDimensions >::PointSetType |
Definition at line 110 of file itkKernelTransform.h.
typedef PointSetType::PointsContainerIterator itk::KernelTransform< TScalarType, NDimensions >::PointsIterator |
Reimplemented in itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 114 of file itkKernelTransform.h.
typedef vnl_matrix_fixed<TScalarType, 1, NDimensions> itk::KernelTransform< TScalarType, NDimensions >::RowMatrixType |
Row matrix typedef.
Definition at line 258 of file itkKernelTransform.h.
typedef Superclass::ScalarType itk::KernelTransform< TScalarType, NDimensions >::ScalarType |
Scalar type.
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 83 of file itkKernelTransform.h.
typedef KernelTransform itk::KernelTransform< TScalarType, NDimensions >::Self |
Standard class typedefs.
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 68 of file itkKernelTransform.h.
typedef Transform<TScalarType, NDimensions, NDimensions> itk::KernelTransform< TScalarType, NDimensions >::Superclass |
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 69 of file itkKernelTransform.h.
typedef VectorSetType::Pointer itk::KernelTransform< TScalarType, NDimensions >::VectorSetPointer |
Definition at line 120 of file itkKernelTransform.h.
typedef itk::VectorContainer<SizeValueType, InputVectorType> itk::KernelTransform< TScalarType, NDimensions >::VectorSetType |
VectorSet typedef.
Definition at line 119 of file itkKernelTransform.h.
typedef vnl_matrix<TScalarType> itk::KernelTransform< TScalarType, NDimensions >::WMatrixType |
'W' matrix typedef.
Definition at line 246 of file itkKernelTransform.h.
typedef vnl_matrix<TScalarType> itk::KernelTransform< TScalarType, NDimensions >::YMatrixType |
'Y' matrix typedef.
Definition at line 243 of file itkKernelTransform.h.
itk::KernelTransform< TScalarType, NDimensions >::KernelTransform | ( | ) | [protected] |
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.
virtual itk::KernelTransform< TScalarType, NDimensions >::~KernelTransform | ( | ) | [protected, 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.
itk::KernelTransform< TScalarType, NDimensions >::KernelTransform | ( | const Self & | ) | [private] |
void itk::KernelTransform< TScalarType, NDimensions >::ComputeD | ( | ) | [protected] |
Compute displacements .
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::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >.
virtual void itk::KernelTransform< TScalarType, NDimensions >::ComputeG | ( | const InputVectorType & | landmarkVector, |
GMatrixType & | gmatrix | ||
) | 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::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >.
virtual void itk::KernelTransform< TScalarType, NDimensions >::ComputeJacobianWithRespectToParameters | ( | const InputPointType & | p, |
JacobianType & | jacobian | ||
) | const [virtual] |
Compute the Jacobian Matrix of the transformation at one point
virtual void itk::KernelTransform< TScalarType, NDimensions >::ComputeJacobianWithRespectToPosition | ( | const InputPointType & | , |
JacobianType & | |||
) | const [inline, virtual] |
Definition at line 174 of file itkKernelTransform.h.
void itk::KernelTransform< TScalarType, NDimensions >::ComputeK | ( | ) | [protected] |
Compute K matrix.
void itk::KernelTransform< TScalarType, NDimensions >::ComputeL | ( | ) | [protected] |
Compute L matrix.
void itk::KernelTransform< TScalarType, NDimensions >::ComputeP | ( | ) | [protected] |
Compute P matrix.
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.
void itk::KernelTransform< TScalarType, NDimensions >::ComputeWMatrix | ( | void | ) |
Compute W matrix.
void itk::KernelTransform< TScalarType, NDimensions >::ComputeY | ( | ) | [protected] |
Compute Y matrix.
virtual::itk::LightObject::Pointer itk::KernelTransform< TScalarType, NDimensions >::CreateAnother | ( | void | ) | const [virtual] |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
virtual VectorSetType* itk::KernelTransform< TScalarType, NDimensions >::GetDisplacements | ( | ) | [virtual] |
Get the displacements list, which we will denote , where .
virtual const ParametersType& itk::KernelTransform< TScalarType, NDimensions >::GetFixedParameters | ( | void | ) | const [virtual] |
Get Transform Fixed Parameters - Gets the Target Landmarks
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
virtual const char* itk::KernelTransform< TScalarType, NDimensions >::GetNameOfClass | ( | ) | const [virtual] |
Run-time type information (and related methods).
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
virtual const ParametersType& itk::KernelTransform< TScalarType, NDimensions >::GetParameters | ( | void | ) | const [virtual] |
Get the Transformation Parameters - Gets the Source Landmarks
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
virtual PointSetType* itk::KernelTransform< TScalarType, NDimensions >::GetSourceLandmarks | ( | ) | [virtual] |
Get the source landmarks list, which we will denote .
virtual double itk::KernelTransform< TScalarType, NDimensions >::GetStiffness | ( | ) | const [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.
virtual PointSetType* itk::KernelTransform< TScalarType, NDimensions >::GetTargetLandmarks | ( | ) | [virtual] |
Get the target landmarks list, which we will denote .
virtual bool itk::KernelTransform< TScalarType, NDimensions >::IsLinear | ( | ) | const [inline, virtual] |
This transform is not linear, because the transformation of a linear combination of points is not equal to the linear combination of the transformations of individual points
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Definition at line 206 of file itkKernelTransform.h.
static Pointer itk::KernelTransform< TScalarType, NDimensions >::New | ( | ) | [static] |
New macro for creation of through a Smart Pointer
Reimplemented from itk::Object.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
void itk::KernelTransform< TScalarType, NDimensions >::operator= | ( | const Self & | ) | [private] |
Mutex lock to protect modification to the reference count
Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >.
void itk::KernelTransform< TScalarType, NDimensions >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected, 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.
Reimplemented from itk::Object.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, and itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, 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.
virtual void itk::KernelTransform< 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
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>.
virtual void itk::KernelTransform< TScalarType, NDimensions >::SetSourceLandmarks | ( | PointSetType * | ) | [virtual] |
Set the source landmarks list.
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.
virtual void itk::KernelTransform< TScalarType, NDimensions >::SetTargetLandmarks | ( | PointSetType * | ) | [virtual] |
Set the target landmarks list.
virtual OutputCovariantVectorType itk::KernelTransform< TScalarType, NDimensions >::TransformCovariantVector | ( | const InputCovariantVectorType & | ) | const [inline, virtual] |
Definition at line 161 of file itkKernelTransform.h.
virtual OutputPointType itk::KernelTransform< TScalarType, NDimensions >::TransformPoint | ( | const InputPointType & | thisPoint | ) | const [virtual] |
Compute the position of point in the new space
virtual OutputVectorType itk::KernelTransform< TScalarType, NDimensions >::TransformVector | ( | const InputVectorType & | ) | const [inline, virtual] |
Definition at line 146 of file itkKernelTransform.h.
virtual OutputVnlVectorType itk::KernelTransform< TScalarType, NDimensions >::TransformVector | ( | const InputVnlVectorType & | ) | const [inline, virtual] |
Definition at line 153 of file itkKernelTransform.h.
virtual void itk::KernelTransform< TScalarType, NDimensions >::UpdateParameters | ( | void | ) | const [virtual] |
Update the Parameters array from the landmarks corrdinates.
AMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_AMatrix [protected] |
Rotatinoal/Shearing part of the Affine component of the Transformation
Definition at line 338 of file itkKernelTransform.h.
BMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_BVector [protected] |
Translational part of the Affine component of the Transformation
Definition at line 341 of file itkKernelTransform.h.
VectorSetPointer itk::KernelTransform< TScalarType, NDimensions >::m_Displacements [protected] |
The list of displacements. d[i] = q[i] - p[i];
Definition at line 313 of file itkKernelTransform.h.
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 335 of file itkKernelTransform.h.
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 346 of file itkKernelTransform.h.
IMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_I [protected] |
Identity matrix.
Definition at line 352 of file itkKernelTransform.h.
KMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_KMatrix [protected] |
The K matrix.
Definition at line 319 of file itkKernelTransform.h.
LMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_LMatrix [protected] |
The L matrix.
Definition at line 316 of file itkKernelTransform.h.
PMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_PMatrix [protected] |
The P matrix.
Definition at line 322 of file itkKernelTransform.h.
PointSetPointer itk::KernelTransform< TScalarType, NDimensions >::m_SourceLandmarks [protected] |
The list of source landmarks, denoted 'p'.
Definition at line 355 of file itkKernelTransform.h.
double itk::KernelTransform< TScalarType, NDimensions >::m_Stiffness [protected] |
Stiffness parameter
Definition at line 309 of file itkKernelTransform.h.
PointSetPointer itk::KernelTransform< TScalarType, NDimensions >::m_TargetLandmarks [protected] |
The list of target landmarks, denoted 'q'.
Definition at line 358 of file itkKernelTransform.h.
WMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_WMatrix [protected] |
The W matrix.
Definition at line 328 of file itkKernelTransform.h.
bool itk::KernelTransform< TScalarType, NDimensions >::m_WMatrixComputed [protected] |
Has the W matrix been computed?
Definition at line 349 of file itkKernelTransform.h.
YMatrixType itk::KernelTransform< TScalarType, NDimensions >::m_YMatrix [protected] |
The Y matrix.
Definition at line 325 of file itkKernelTransform.h.
const unsigned int itk::KernelTransform< TScalarType, NDimensions >::SpaceDimension = NDimensions [static] |
Dimension of the domain space.
Reimplemented in itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >, itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::VolumeSplineKernelTransform< TScalarType, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >.
Definition at line 80 of file itkKernelTransform.h.