#include <itkKernelTransform.h>
Inheritance diagram for itk::KernelTransform:
Public Types | |
typedef KernelTransform | Self |
typedef Transform< TScalarType, NDimensions, NDimensions > | Superclass |
typedef SmartPointer< Self > | Pointer |
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 Methods | |
virtual const char * | GetClassName () const |
itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions) | |
virtual PointSetType * | GetSourceLandmarks () |
virtual void | SetSourceLandmarks (PointSetType *_arg) |
virtual PointSetType * | GetTargetLandmarks () |
virtual void | SetTargetLandmarks (PointSetType *_arg) |
virtual VectorSetType * | GetDisplacements () |
void | ComputeWMatrix (void) |
virtual OutputPointType | TransformPoint (const InputPointType &thisPoint) const |
virtual const JacobianType & | GetJacobian (const InputPointType &point) const |
virtual void | SetParameters (const ParametersType &) |
virtual const ParametersType & | GetParameters (void) const |
virtual void | SetStiffness (double _arg) |
virtual double | GetStiffness () |
Static Public Methods | |
Pointer | New () |
Protected Methods | |
KernelTransform () | |
virtual | ~KernelTransform () |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual const GMatrixType & | ComputeG (const InputVectorType &landmarkVector) const |
virtual const GMatrixType & | ComputeReflexiveG (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 |
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.
|
'A' matrix typedef. Rotational part of the Affine component Definition at line 197 of file itkKernelTransform.h. |
|
'B' matrix typedef. Translational part of the Affine component Definition at line 200 of file itkKernelTransform.h. |
|
Column matrix typedef. Definition at line 206 of file itkKernelTransform.h. |
|
|
'D' matrix typedef. Deformation component Definition at line 194 of file itkKernelTransform.h. |
|
|
'I' (identity) matrix typedef. Definition at line 139 of file itkKernelTransform.h. |
|
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. |
|
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. |
|
|
'K' matrix typedef. Definition at line 182 of file itkKernelTransform.h. |
|
'L' matrix typedef. Definition at line 179 of file itkKernelTransform.h. |
|
|
|
|
'P' matrix typedef. Definition at line 185 of file itkKernelTransform.h. |
|
|
Definition at line 110 of file itkKernelTransform.h. |
|
Definition at line 108 of file itkKernelTransform.h. |
|
Definition at line 107 of file itkKernelTransform.h. |
|
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. |
|
Definition at line 106 of file itkKernelTransform.h. |
|
Reimplemented in itk::ThinPlateR2LogRSplineKernelTransform< TScalarType, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalarType, NDimensions >, and itk::VolumeSplineKernelTransform< TScalarType, NDimensions >. Definition at line 109 of file itkKernelTransform.h. |
|
Row matrix typedef. Definition at line 203 of file itkKernelTransform.h. |
|
|
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. |
|
|
Definition at line 114 of file itkKernelTransform.h. |
|
VectorSet typedef. Definition at line 113 of file itkKernelTransform.h. |
|
'W' matrix typedef. Definition at line 191 of file itkKernelTransform.h. |
|
'Y' matrix typedef. Definition at line 188 of file itkKernelTransform.h. |
|
|
|
|
|
Compute displacements . |
|
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 >. |
|
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 >. |
|
Compute K matrix. |
|
Compute L matrix. |
|
Compute P matrix. |
|
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. |
|
Compute W matrix. |
|
Compute Y matrix. |
|
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 >. |
|
Get the displacements list, which we will denote , where . |
|
Compute the Jacobian Matrix of the transformation at one point Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. |
|
Get the Transformation Parameters. Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. |
|
Get the source landmarks list, which we will denote . |
|
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. |
|
Get the target landmarks list, which we will denote . |
|
Dimension of the domain space. |
|
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 >. |
|
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. |
|
Reorganize the components of W into D (deformable), A (rotation part of affine) and B (translational part of affine ) components.
|
|
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 >. |
|
Set the source landmarks list. |
|
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. |
|
Set the target landmarks list. |
|
Compute the position of point in the new space Reimplemented from itk::Transform< TScalarType, NDimensions, NDimensions >. |
|
Rotatinoal/Shearing part of the Affine component of the Transformation Definition at line 288 of file itkKernelTransform.h. |
|
Translational part of the Affine component of the Transformation Definition at line 291 of file itkKernelTransform.h. |
|
The list of displacements. d[i] = q[i] - p[i]; Definition at line 263 of file itkKernelTransform.h. |
|
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. |
|
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. |
|
Identity matrix. Definition at line 302 of file itkKernelTransform.h. |
|
The K matrix. Definition at line 269 of file itkKernelTransform.h. |
|
The L matrix. Definition at line 266 of file itkKernelTransform.h. |
|
The P matrix. Definition at line 272 of file itkKernelTransform.h. |
|
The list of source landmarks, denoted 'p'. Definition at line 253 of file itkKernelTransform.h. |
|
Stiffness parameter Definition at line 259 of file itkKernelTransform.h. |
|
The list of target landmarks, denoted 'q'. Definition at line 256 of file itkKernelTransform.h. |
|
The W matrix. Definition at line 278 of file itkKernelTransform.h. |
|
Has the W matrix been computed? Definition at line 299 of file itkKernelTransform.h. |
|
The Y matrix. Definition at line 275 of file itkKernelTransform.h. |