ITK  4.6.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
itk::KernelTransform< TScalar, NDimensions > Class Template Reference

#include <itkKernelTransform.h>

+ Inheritance diagram for itk::KernelTransform< TScalar, NDimensions >:
+ Collaboration diagram for itk::KernelTransform< TScalar, NDimensions >:

Detailed Description

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

Public Types

typedef vnl_matrix_fixed
< TScalar, NDimensions,
NDimensions > 
AMatrixType
 
typedef vnl_vector_fixed
< TScalar, NDimensions > 
BMatrixType
 
typedef vnl_matrix_fixed
< TScalar, NDimensions, 1 > 
ColumnMatrixType
 
typedef SmartPointer< const SelfConstPointer
 
typedef vnl_matrix< TScalar > DMatrixType
 
typedef vnl_matrix_fixed
< TScalar, NDimensions,
NDimensions > 
GMatrixType
 
typedef vnl_matrix_fixed
< TScalar, NDimensions,
NDimensions > 
IMatrixType
 
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::InputVectorType InputVectorType
 
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
 
typedef Superclass::JacobianType JacobianType
 
typedef vnl_matrix< TScalar > KMatrixType
 
typedef vnl_matrix< TScalar > LMatrixType
 
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef
Superclass::OutputVectorType 
OutputVectorType
 
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef vnl_matrix< TScalar > PMatrixType
 
typedef SmartPointer< SelfPointer
 
typedef
PointSetType::PointIdentifier 
PointIdentifier
 
typedef
PointSetType::PointsContainerConstIterator 
PointsConstIterator
 
typedef
PointSetType::PointsContainer 
PointsContainer
 
typedef PointSetType::Pointer PointSetPointer
 
typedef
DefaultStaticMeshTraits
< TScalar, NDimensions,
NDimensions, TScalar, TScalar > 
PointSetTraitsType
 
typedef PointSet
< InputPointType, NDimensions,
PointSetTraitsType
PointSetType
 
typedef
PointSetType::PointsContainerIterator 
PointsIterator
 
typedef vnl_matrix_fixed
< TScalar, 1, NDimensions > 
RowMatrixType
 
typedef Superclass::ScalarType ScalarType
 
typedef KernelTransform Self
 
typedef Transform< TScalar,
NDimensions, NDimensions > 
Superclass
 
typedef
Superclass::TransformCategoryType 
TransformCategoryType
 
typedef VectorSetType::Pointer VectorSetPointer
 
typedef itk::VectorContainer
< SizeValueType,
InputVectorType
VectorSetType
 
typedef vnl_matrix< TScalar > WMatrixType
 
typedef vnl_matrix< TScalar > YMatrixType
 
- Public Types inherited from itk::Transform< TScalar, NDimensions, NDimensions >
typedef SmartPointer< const SelfConstPointer
 
typedef Array
< ParametersValueType
DerivativeType
 
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
DirectionChangeMatrix
 
typedef CovariantVector
< TScalar, NInputDimensions > 
InputCovariantVectorType
 
typedef DiffusionTensor3D
< TScalar > 
InputDiffusionTensor3DType
 
typedef Matrix< double,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
InputDirectionMatrix
 
typedef Point< TScalar,
NInputDimensions > 
InputPointType
 
typedef
SymmetricSecondRankTensor
< TScalar, NInputDimensions > 
InputSymmetricSecondRankTensorType
 
typedef VariableLengthVector
< TScalar > 
InputVectorPixelType
 
typedef Vector< TScalar,
NInputDimensions > 
InputVectorType
 
typedef vnl_vector_fixed
< TScalar, NInputDimensions > 
InputVnlVectorType
 
typedef
InverseTransformBaseType::Pointer 
InverseTransformBasePointer
 
typedef Transform< TScalar,
NOutputDimensions,
NInputDimensions > 
InverseTransformBaseType
 
typedef Array2D
< ParametersValueType
JacobianType
 
typedef Matrix< TScalar,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef CovariantVector
< TScalar, NOutputDimensions > 
OutputCovariantVectorType
 
typedef DiffusionTensor3D
< TScalar > 
OutputDiffusionTensor3DType
 
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputDirectionMatrix
 
typedef Point< TScalar,
NOutputDimensions > 
OutputPointType
 
typedef
SymmetricSecondRankTensor
< TScalar, NOutputDimensions > 
OutputSymmetricSecondRankTensorType
 
typedef VariableLengthVector
< TScalar > 
OutputVectorPixelType
 
typedef Vector< TScalar,
NOutputDimensions > 
OutputVectorType
 
typedef vnl_vector_fixed
< TScalar, NOutputDimensions > 
OutputVnlVectorType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef TScalar ScalarType
 
typedef Transform Self
 
typedef TransformBaseTemplate
< TScalar > 
Superclass
 
typedef
Superclass::TransformCategoryType 
TransformCategoryType
 
- Public Types inherited from itk::TransformBaseTemplate< TScalar >
typedef SmartPointer< const SelfConstPointer
 
typedef IdentifierType NumberOfParametersType
 
typedef OptimizerParameters
< ParametersValueType
ParametersType
 
typedef TScalar ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef TransformBaseTemplate Self
 
typedef Object Superclass
 
enum  TransformCategoryType {
  UnknownTransformCategory =0,
  Linear =1,
  BSpline =2,
  Spline =3,
  DisplacementField =4,
  VelocityField =5
}
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

Public Member Functions

virtual void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const
 
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
 
void ComputeWMatrix (void)
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const VectorSetTypeGetDisplacements () const
 
virtual const ParametersTypeGetFixedParameters (void) const
 
virtual VectorSetTypeGetModifiableDisplacements ()
 
virtual const char * GetNameOfClass () const
 
virtual const ParametersTypeGetParameters (void) const
 
virtual TransformCategoryType GetTransformCategory () const
 
virtual void SetFixedParameters (const ParametersType &)
 
virtual void SetParameters (const ParametersType &)
 
virtual OutputPointType TransformPoint (const InputPointType &thisPoint) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
 
virtual void UpdateParameters (void) const
 
virtual PointSetTypeGetModifiableSourceLandmarks ()
 
virtual const PointSetTypeGetSourceLandmarks () const
 
virtual void SetSourceLandmarks (PointSetType *)
 
virtual PointSetTypeGetModifiableTargetLandmarks ()
 
virtual const PointSetTypeGetTargetLandmarks () const
 
virtual void SetTargetLandmarks (PointSetType *)
 
virtual OutputVectorType TransformVector (const InputVectorType &) const
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
 
virtual void SetStiffness (double _arg)
 
virtual double GetStiffness () const
 
- Public Member Functions inherited from itk::Transform< TScalar, NDimensions, NDimensions >
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jacobian) const
 
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const =0
 
virtual void ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const
 
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
 
unsigned int GetInputSpaceDimension (void) const
 
bool GetInverse (Self *) const
 
virtual InverseTransformBasePointer GetInverseTransform () const
 
virtual NumberOfParametersType GetNumberOfLocalParameters (void) const
 
virtual NumberOfParametersType GetNumberOfParameters (void) const
 
unsigned int GetOutputSpaceDimension (void) const
 
virtual std::string GetTransformTypeAsString () const
 
virtual bool IsLinear () const
 
 itkCloneMacro (Self)
 
virtual void SetFixedParameters (const ParametersType &)=0
 
virtual void SetParameters (const ParametersType &)=0
 
virtual void SetParametersByValue (const ParametersType &p)
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &tensor, const InputPointType &point) const
 
virtual OutputPointType TransformPoint (const InputPointType &) const =0
 
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor, const InputPointType &point) const
 
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor, const InputPointType &point) const
 
virtual OutputVectorType TransformVector (const InputVectorType &) const
 
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual void UpdateTransformParameters (const DerivativeType &update, TScalar factor=1.0)
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary (void)
 
const MetaDataDictionaryGetMetaDataDictionary (void) const
 
virtual ModifiedTimeType GetMTime () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
virtual void Register () const ITK_OVERRIDE
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
virtual void SetReferenceCount (int) ITK_OVERRIDE
 
virtual void UnRegister () const ITK_OVERRIDE
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool flag)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static const unsigned int SpaceDimension = NDimensions
 
- Static Public Attributes inherited from itk::Transform< TScalar, NDimensions, NDimensions >
static const unsigned int InputSpaceDimension
 
static const unsigned int OutputSpaceDimension
 

Protected Member Functions

void ComputeD ()
 
virtual void ComputeDeformationContribution (const InputPointType &inputPoint, OutputPointType &result) const
 
virtual void ComputeG (const InputVectorType &landmarkVector, GMatrixType &gmatrix) const
 
void ComputeK ()
 
void ComputeL ()
 
void ComputeP ()
 
virtual const GMatrixTypeComputeReflexiveG (PointsIterator) const
 
void ComputeY ()
 
 KernelTransform ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void ReorganizeW (void)
 
virtual ~KernelTransform ()
 
- Protected Member Functions inherited from itk::Transform< TScalar, NDimensions, NDimensions >
virtual LightObject::Pointer InternalClone () const
 
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType, const JacobianType) const
 
 Transform ()
 
 Transform (NumberOfParametersType NumberOfParameters)
 
virtual ~Transform ()
 
- Protected Member Functions inherited from itk::TransformBaseTemplate< TScalar >
 TransformBaseTemplate ()
 
virtual ~TransformBaseTemplate ()
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
virtual ~Object ()
 
- Protected Member Functions inherited from itk::LightObject
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Protected Attributes

AMatrixType m_AMatrix
 
BMatrixType m_BVector
 
VectorSetPointer m_Displacements
 
DMatrixType m_DMatrix
 
GMatrixType m_GMatrix
 
IMatrixType m_I
 
KMatrixType m_KMatrix
 
LMatrixType m_LMatrix
 
PMatrixType m_PMatrix
 
PointSetPointer m_SourceLandmarks
 
double m_Stiffness
 
PointSetPointer m_TargetLandmarks
 
WMatrixType m_WMatrix
 
bool m_WMatrixComputed
 
YMatrixType m_YMatrix
 
- Protected Attributes inherited from itk::Transform< TScalar, NDimensions, NDimensions >
DirectionChangeMatrix m_DirectionChange
 
ParametersType m_FixedParameters
 
ParametersType m_Parameters
 
- Protected Attributes inherited from itk::LightObject
InternalReferenceCountType m_ReferenceCount
 
SimpleFastMutexLock m_ReferenceCountLock
 

Private Member Functions

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

Additional Inherited Members

- Protected Types inherited from itk::LightObject
typedef int InternalReferenceCountType
 

Member Typedef Documentation

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalar, NDimensions, NDimensions> itk::KernelTransform< TScalar, NDimensions >::AMatrixType

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

Definition at line 254 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_vector_fixed<TScalar, NDimensions> itk::KernelTransform< TScalar, NDimensions >::BMatrixType

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

Definition at line 257 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalar, NDimensions, 1> itk::KernelTransform< TScalar, NDimensions >::ColumnMatrixType

Column matrix typedef.

Definition at line 263 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef SmartPointer< const Self > itk::KernelTransform< TScalar, NDimensions >::ConstPointer

Definition at line 71 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix<TScalar> itk::KernelTransform< TScalar, NDimensions >::DMatrixType

'D' matrix typedef. Deformation component

Definition at line 251 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalar, NDimensions, NDimensions> itk::KernelTransform< TScalar, NDimensions >::GMatrixType

'G' matrix typedef.

Definition at line 233 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalar, NDimensions, NDimensions> itk::KernelTransform< TScalar, NDimensions >::IMatrixType

'I' (identity) matrix typedef.

Definition at line 170 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::InputCovariantVectorType itk::KernelTransform< TScalar, NDimensions >::InputCovariantVectorType

Standard covariant vector type for this class

Definition at line 103 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::InputPointType itk::KernelTransform< TScalar, NDimensions >::InputPointType

Standard coordinate point type for this class.

Definition at line 95 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::InputVectorType itk::KernelTransform< TScalar, NDimensions >::InputVectorType

Standard vector type for this class.

Definition at line 99 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::InputVnlVectorType itk::KernelTransform< TScalar, NDimensions >::InputVnlVectorType

Standard vnl_vector type for this class.

Definition at line 107 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::JacobianType itk::KernelTransform< TScalar, NDimensions >::JacobianType

Jacobian type.

Definition at line 89 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix<TScalar> itk::KernelTransform< TScalar, NDimensions >::KMatrixType

'K' matrix typedef.

Definition at line 239 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix<TScalar> itk::KernelTransform< TScalar, NDimensions >::LMatrixType

'L' matrix typedef.

Definition at line 236 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::OutputCovariantVectorType itk::KernelTransform< TScalar, NDimensions >::OutputCovariantVectorType

Definition at line 104 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::OutputPointType itk::KernelTransform< TScalar, NDimensions >::OutputPointType

Definition at line 96 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::OutputVectorType itk::KernelTransform< TScalar, NDimensions >::OutputVectorType

Definition at line 100 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::OutputVnlVectorType itk::KernelTransform< TScalar, NDimensions >::OutputVnlVectorType

Definition at line 108 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::ParametersType itk::KernelTransform< TScalar, NDimensions >::ParametersType

Parameters type.

Definition at line 86 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix<TScalar> itk::KernelTransform< TScalar, NDimensions >::PMatrixType

'P' matrix typedef.

Definition at line 242 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef SmartPointer< Self > itk::KernelTransform< TScalar, NDimensions >::Pointer

Definition at line 70 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef PointSetType::PointIdentifier itk::KernelTransform< TScalar, NDimensions >::PointIdentifier

Definition at line 119 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef PointSetType::PointsContainerConstIterator itk::KernelTransform< TScalar, NDimensions >::PointsConstIterator

Definition at line 118 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef PointSetType::PointsContainer itk::KernelTransform< TScalar, NDimensions >::PointsContainer

Definition at line 116 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef PointSetType::Pointer itk::KernelTransform< TScalar, NDimensions >::PointSetPointer

Definition at line 115 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef DefaultStaticMeshTraits<TScalar, NDimensions, NDimensions, TScalar, TScalar> itk::KernelTransform< TScalar, NDimensions >::PointSetTraitsType

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

Definition at line 112 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef PointSet<InputPointType, NDimensions, PointSetTraitsType> itk::KernelTransform< TScalar, NDimensions >::PointSetType

Definition at line 113 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef PointSetType::PointsContainerIterator itk::KernelTransform< TScalar, NDimensions >::PointsIterator

Definition at line 117 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix_fixed<TScalar, 1, NDimensions> itk::KernelTransform< TScalar, NDimensions >::RowMatrixType

Row matrix typedef.

Definition at line 260 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::ScalarType itk::KernelTransform< TScalar, NDimensions >::ScalarType

Scalar type.

Definition at line 83 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef KernelTransform itk::KernelTransform< TScalar, NDimensions >::Self

Standard class typedefs.

Definition at line 68 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Transform< TScalar, NDimensions, NDimensions > itk::KernelTransform< TScalar, NDimensions >::Superclass

Definition at line 69 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef Superclass::TransformCategoryType itk::KernelTransform< TScalar, NDimensions >::TransformCategoryType

Transform category type.

Definition at line 92 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef VectorSetType::Pointer itk::KernelTransform< TScalar, NDimensions >::VectorSetPointer

Definition at line 123 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef itk::VectorContainer<SizeValueType, InputVectorType> itk::KernelTransform< TScalar, NDimensions >::VectorSetType

VectorSet typedef.

Definition at line 122 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix<TScalar> itk::KernelTransform< TScalar, NDimensions >::WMatrixType

'W' matrix typedef.

Definition at line 248 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
typedef vnl_matrix<TScalar> itk::KernelTransform< TScalar, NDimensions >::YMatrixType

'Y' matrix typedef.

Definition at line 245 of file itkKernelTransform.h.

Constructor & Destructor Documentation

template<typename TScalar , unsigned int NDimensions>
itk::KernelTransform< TScalar, NDimensions >::KernelTransform ( )
protected
template<typename TScalar , unsigned int NDimensions>
virtual itk::KernelTransform< TScalar, NDimensions >::~KernelTransform ( )
protectedvirtual
template<typename TScalar , unsigned int NDimensions>
itk::KernelTransform< TScalar, NDimensions >::KernelTransform ( const Self )
private

Member Function Documentation

template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::ComputeD ( )
protected

Compute displacements $ q_i - p_i $.

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::ComputeDeformationContribution ( const InputPointType inputPoint,
OutputPointType result 
) const
protectedvirtual

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

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

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::ComputeG ( const InputVectorType landmarkVector,
GMatrixType gmatrix 
) const
protectedvirtual

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< TScalar, NDimensions >, itk::ThinPlateSplineKernelTransform< TScalar, NDimensions >, and itk::ThinPlateR2LogRSplineKernelTransform< TScalar, NDimensions >.

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToParameters ( const InputPointType p,
JacobianType jacobian 
) const
virtual

Compute the Jacobian Matrix of the transformation at one point

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::ComputeJacobianWithRespectToPosition ( const InputPointType ,
JacobianType  
) const
inlinevirtual
template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::ComputeK ( )
protected

Compute K matrix.

template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::ComputeL ( )
protected

Compute L matrix.

template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::ComputeP ( )
protected

Compute P matrix.

template<typename TScalar , unsigned int NDimensions>
virtual const GMatrixType& itk::KernelTransform< TScalar, NDimensions >::ComputeReflexiveG ( PointsIterator  ) const
protectedvirtual

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

Warning
this method is not thread-safe. However this method is called only through ComputeWMatrix() that is itself normally called from a single thread during the initialization of the Transform.
template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::ComputeWMatrix ( void  )

Compute W matrix.

template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::ComputeY ( )
protected

Compute Y matrix.

template<typename TScalar , unsigned int NDimensions>
virtual::itk::LightObject::Pointer itk::KernelTransform< TScalar, 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::ThinPlateR2LogRSplineKernelTransform< TScalar, NDimensions >, itk::VolumeSplineKernelTransform< TScalar, NDimensions >, and itk::ThinPlateSplineKernelTransform< TScalar, NDimensions >.

template<typename TScalar , unsigned int NDimensions>
virtual const VectorSetType* itk::KernelTransform< TScalar, NDimensions >::GetDisplacements ( ) const
virtual
template<typename TScalar , unsigned int NDimensions>
virtual const ParametersType& itk::KernelTransform< TScalar, NDimensions >::GetFixedParameters ( void  ) const
virtual

Get Transform Fixed Parameters - Gets the Target Landmarks

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

template<typename TScalar , unsigned int NDimensions>
virtual VectorSetType* itk::KernelTransform< TScalar, NDimensions >::GetModifiableDisplacements ( )
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual PointSetType* itk::KernelTransform< TScalar, NDimensions >::GetModifiableSourceLandmarks ( )
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual PointSetType* itk::KernelTransform< TScalar, NDimensions >::GetModifiableTargetLandmarks ( )
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual const char* itk::KernelTransform< TScalar, NDimensions >::GetNameOfClass ( ) const
virtual
template<typename TScalar , unsigned int NDimensions>
virtual const ParametersType& itk::KernelTransform< TScalar, NDimensions >::GetParameters ( void  ) const
virtual

Get the Transformation Parameters - Gets the Source Landmarks

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

template<typename TScalar , unsigned int NDimensions>
virtual const PointSetType* itk::KernelTransform< TScalar, NDimensions >::GetSourceLandmarks ( ) const
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual double itk::KernelTransform< TScalar, 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.

template<typename TScalar , unsigned int NDimensions>
virtual const PointSetType* itk::KernelTransform< TScalar, NDimensions >::GetTargetLandmarks ( ) const
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual TransformCategoryType itk::KernelTransform< TScalar, NDimensions >::GetTransformCategory ( ) const
inlinevirtual

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< TScalar, NDimensions, NDimensions >.

Definition at line 207 of file itkKernelTransform.h.

References itk::TransformBaseTemplate< TScalar >::Spline.

template<typename TScalar , unsigned int NDimensions>
static Pointer itk::KernelTransform< TScalar, NDimensions >::New ( )
static

New macro for creation of through a Smart Pointer

template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::operator= ( const Self )
private
template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

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.

template<typename TScalar , unsigned int NDimensions>
void itk::KernelTransform< TScalar, 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<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::SetFixedParameters ( const ParametersType )
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::SetParameters ( const ParametersType )
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::SetSourceLandmarks ( PointSetType )
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, 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<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::SetTargetLandmarks ( PointSetType )
virtual

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

template<typename TScalar , unsigned int NDimensions>
virtual OutputCovariantVectorType itk::KernelTransform< TScalar, NDimensions >::TransformCovariantVector ( const InputCovariantVectorType ) const
inlinevirtual

Definition at line 162 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
virtual OutputPointType itk::KernelTransform< TScalar, NDimensions >::TransformPoint ( const InputPointType thisPoint) const
virtual

Compute the position of point in the new space

template<typename TScalar , unsigned int NDimensions>
virtual OutputVectorType itk::KernelTransform< TScalar, NDimensions >::TransformVector ( const InputVectorType ) const
inlinevirtual

Definition at line 147 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
virtual OutputVnlVectorType itk::KernelTransform< TScalar, NDimensions >::TransformVector ( const InputVnlVectorType ) const
inlinevirtual

Definition at line 154 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
virtual void itk::KernelTransform< TScalar, NDimensions >::UpdateParameters ( void  ) const
virtual

Update the Parameters array from the landmarks corrdinates.

Member Data Documentation

template<typename TScalar , unsigned int NDimensions>
AMatrixType itk::KernelTransform< TScalar, NDimensions >::m_AMatrix
protected

Rotatinoal/Shearing part of the Affine component of the Transformation

Definition at line 340 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
BMatrixType itk::KernelTransform< TScalar, NDimensions >::m_BVector
protected

Translational part of the Affine component of the Transformation

Definition at line 343 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
VectorSetPointer itk::KernelTransform< TScalar, NDimensions >::m_Displacements
protected

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

Definition at line 315 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
DMatrixType itk::KernelTransform< TScalar, 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 337 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
GMatrixType itk::KernelTransform< TScalar, NDimensions >::m_GMatrix
mutableprotected

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 348 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
IMatrixType itk::KernelTransform< TScalar, NDimensions >::m_I
protected

Identity matrix.

Definition at line 354 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
KMatrixType itk::KernelTransform< TScalar, NDimensions >::m_KMatrix
protected

The K matrix.

Definition at line 321 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
LMatrixType itk::KernelTransform< TScalar, NDimensions >::m_LMatrix
protected

The L matrix.

Definition at line 318 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
PMatrixType itk::KernelTransform< TScalar, NDimensions >::m_PMatrix
protected

The P matrix.

Definition at line 324 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
PointSetPointer itk::KernelTransform< TScalar, NDimensions >::m_SourceLandmarks
protected

The list of source landmarks, denoted 'p'.

Definition at line 357 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
double itk::KernelTransform< TScalar, NDimensions >::m_Stiffness
protected

Stiffness parameter

Definition at line 311 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
PointSetPointer itk::KernelTransform< TScalar, NDimensions >::m_TargetLandmarks
protected

The list of target landmarks, denoted 'q'.

Definition at line 360 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
WMatrixType itk::KernelTransform< TScalar, NDimensions >::m_WMatrix
protected

The W matrix.

Definition at line 330 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
bool itk::KernelTransform< TScalar, NDimensions >::m_WMatrixComputed
protected

Has the W matrix been computed?

Definition at line 351 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
YMatrixType itk::KernelTransform< TScalar, NDimensions >::m_YMatrix
protected

The Y matrix.

Definition at line 327 of file itkKernelTransform.h.

template<typename TScalar , unsigned int NDimensions>
const unsigned int itk::KernelTransform< TScalar, NDimensions >::SpaceDimension = NDimensions
static

Dimension of the domain space.

Definition at line 80 of file itkKernelTransform.h.


The documentation for this class was generated from the following file: