ITK  5.4.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension > Class Template Reference

#include <itkThinPlateR2LogRSplineKernelTransform.h>

Detailed Description

template<typename TParametersValueType, unsigned int VDimension = 3>
class itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >

This class defines the thin plate spline (TPS) transformation. It is implemented in as straightforward a manner as possible from the IEEE TMI paper by Davis, Khotanzad, Flamig, and Harms, Vol. 16 No. 3 June 1997.

The kernel used in this variant of TPS is \( R^2 log(R) \)

Definition at line 37 of file itkThinPlateR2LogRSplineKernelTransform.h.

+ Inheritance diagram for itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >:
+ Collaboration diagram for itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = ThinPlateR2LogRSplineKernelTransform
 
using Superclass = KernelTransform< TParametersValueType, VDimension >
 
- Public Types inherited from itk::KernelTransform< TParametersValueType, 3 >
using AMatrixType = vnl_matrix_fixed< TParametersValueType, VDimension, VDimension >
 
using BMatrixType = vnl_vector_fixed< TParametersValueType, VDimension >
 
using ColumnMatrixType = vnl_matrix_fixed< TParametersValueType, VDimension, 1 >
 
using ConstPointer = SmartPointer< const Self >
 
using DMatrixType = vnl_matrix< TParametersValueType >
 
using GMatrixType = vnl_matrix_fixed< TParametersValueType, VDimension, VDimension >
 
using IMatrixType = vnl_matrix_fixed< TParametersValueType, VDimension, VDimension >
 
using KMatrixType = vnl_matrix< TParametersValueType >
 
using LMatrixType = vnl_matrix< TParametersValueType >
 
using PMatrixType = vnl_matrix< TParametersValueType >
 
using Pointer = SmartPointer< Self >
 
using PointIdentifier = typename PointSetType::PointIdentifier
 
using PointsConstIterator = typename PointSetType::PointsContainerConstIterator
 
using PointsContainer = typename PointSetType::PointsContainer
 
using PointSetPointer = typename PointSetType::Pointer
 
using PointSetTraitsType = DefaultStaticMeshTraits< TParametersValueType, VDimension, VDimension, TParametersValueType, TParametersValueType >
 
using PointSetType = PointSet< InputPointType, VDimension, PointSetTraitsType >
 
using PointsIterator = typename PointSetType::PointsContainerIterator
 
using RowMatrixType = vnl_matrix_fixed< TParametersValueType, 1, VDimension >
 
using Self = KernelTransform
 
using Superclass = Transform< TParametersValueType, VDimension, VDimension >
 
using VectorSetPointer = typename VectorSetType::Pointer
 
using VectorSetType = itk::VectorContainer< SizeValueType, InputVectorType >
 
using WMatrixType = vnl_matrix< TParametersValueType >
 
using YMatrixType = vnl_matrix< TParametersValueType >
 
- Public Types inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
using ConstPointer = SmartPointer< const Self >
 
using DerivativeType = Array< ParametersValueType >
 
using DirectionChangeMatrix = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using InputCovariantVectorType = CovariantVector< TParametersValueType, VInputDimension >
 
using InputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType >
 
using InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension >
 
using InputPointType = Point< TParametersValueType, VInputDimension >
 
using InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VInputDimension >
 
using InputVectorPixelType = VariableLengthVector< TParametersValueType >
 
using InputVectorType = Vector< TParametersValueType, VInputDimension >
 
using InputVnlVectorType = vnl_vector_fixed< TParametersValueType, VInputDimension >
 
using InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, VInputDimension, VOutputDimension >
 
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer
 
using InverseTransformBaseType = Transform< TParametersValueType, VOutputDimension, VInputDimension >
 
using JacobianPositionType = vnl_matrix_fixed< ParametersValueType, VOutputDimension, VInputDimension >
 
using JacobianType = Array2D< ParametersValueType >
 
using MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using OutputCovariantVectorType = CovariantVector< TParametersValueType, VOutputDimension >
 
using OutputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType >
 
using OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension >
 
using OutputPointType = Point< TParametersValueType, VOutputDimension >
 
using OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, VOutputDimension >
 
using OutputVectorPixelType = VariableLengthVector< TParametersValueType >
 
using OutputVectorType = Vector< TParametersValueType, VOutputDimension >
 
using OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, VOutputDimension >
 
using Pointer = SmartPointer< Self >
 
using ScalarType = ParametersValueType
 
using Self = Transform
 
using Superclass = TransformBaseTemplate< TParametersValueType >
 
- Public Types inherited from itk::TransformBaseTemplate< TParametersValueType >
using ConstPointer = SmartPointer< const Self >
 
using FixedParametersType = OptimizerParameters< FixedParametersValueType >
 
using FixedParametersValueType = double
 
using NumberOfParametersType = IdentifierType
 
using ParametersType = OptimizerParameters< ParametersValueType >
 
using ParametersValueType = TParametersValueType
 
using Pointer = SmartPointer< Self >
 
using Self = TransformBaseTemplate
 
using Superclass = Object
 
using TransformCategoryEnum = TransformBaseTemplateEnums::TransformCategory
 
- Public Types inherited from itk::Object
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = Object
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

const char * GetNameOfClass () const override
 
- Public Member Functions inherited from itk::KernelTransform< TParametersValueType, 3 >
void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const override
 
void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianPositionType &) const override
 
void ComputeWMatrix ()
 
const FixedParametersTypeGetFixedParameters () const override
 
virtual VectorSetTypeGetModifiableDisplacements ()
 
const char * GetNameOfClass () const override
 
const ParametersTypeGetParameters () const override
 
TransformCategoryEnum GetTransformCategory () const override
 
void SetFixedParameters (const FixedParametersType &) override
 
void SetParameters (const ParametersType &) override
 
OutputPointType TransformPoint (const InputPointType &thisPoint) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
virtual void UpdateParameters () const
 
virtual PointSetTypeGetModifiableSourceLandmarks ()
 
virtual void SetSourceLandmarks (PointSetType *)
 
virtual PointSetTypeGetModifiableTargetLandmarks ()
 
virtual void SetTargetLandmarks (PointSetType *)
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
virtual void SetStiffness (double _arg)
 
virtual double GetStiffness () const
 
- Public Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
virtual void ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &) const
 
void CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end) override
 
void CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end) override
 
const FixedParametersTypeGetFixedParameters () const override
 
unsigned int GetInputSpaceDimension () const override
 
virtual const std::string & GetInputSpaceName () const
 
bool GetInverse (Self *) const
 
virtual InverseTransformBasePointer GetInverseTransform () const
 
const char * GetNameOfClass () const override
 
virtual NumberOfParametersType GetNumberOfFixedParameters () const
 
virtual NumberOfParametersType GetNumberOfLocalParameters () const
 
NumberOfParametersType GetNumberOfParameters () const override
 
unsigned int GetOutputSpaceDimension () const override
 
virtual const std::string & GetOutputSpaceName () const
 
const ParametersTypeGetParameters () const override
 
TransformCategoryEnum GetTransformCategory () const override
 
std::string GetTransformTypeAsString () const override
 
virtual bool IsLinear () const
 
 itkCloneMacro (Self)
 
void SetFixedParameters (const FixedParametersType &) override=0
 
virtual void SetInputSpaceName (std::string _arg)
 
virtual void SetOutputSpaceName (std::string _arg)
 
void SetParameters (const ParametersType &) override=0
 
void SetParametersByValue (const ParametersType &p) override
 
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 &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputPointType TransformPoint (const InputPointType &) const=0
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, 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 void UpdateTransformParameters (const DerivativeType &update, ParametersValueType factor=1.0)
 
 itkLegacyMacro (virtual void ComputeJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const)
 
 itkLegacyMacro (virtual void ComputeInverseJacobianWithRespectToPosition(const InputPointType &x, JacobianType &jacobian) const)
 
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &pnt, InverseJacobianPositionType &jacobian) const
 
std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > ApplyToImageMetadata (TImage *image) const
 
std::enable_if_t< TImage::ImageDimension==VInputDimension &&TImage::ImageDimension==VOutputDimension, void > ApplyToImageMetadata (SmartPointer< TImage > image) const
 
virtual void CopyInFixedParameters (const FixedParametersValueType *const begin, const FixedParametersValueType *const end)=0
 
virtual void CopyInParameters (const ParametersValueType *const begin, const ParametersValueType *const end)=0
 
virtual const FixedParametersTypeGetFixedParameters () const =0
 
virtual unsigned int GetInputSpaceDimension () const =0
 
const char * GetNameOfClass () const override
 
virtual NumberOfParametersType GetNumberOfParameters () const =0
 
virtual unsigned int GetOutputSpaceDimension () const =0
 
virtual const ParametersTypeGetParameters () const =0
 
virtual TransformCategoryEnum GetTransformCategory () const =0
 
virtual std::string GetTransformTypeAsString () const =0
 
virtual void SetFixedParameters (const FixedParametersType &)=0
 
virtual void SetParameters (const ParametersType &)=0
 
virtual void SetParametersByValue (const ParametersType &p)=0
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
unsigned long AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const
 
LightObject::Pointer CreateAnother () const override
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
const char * GetNameOfClass () const override
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetReferenceCount (int) override
 
void UnRegister () const noexcept override
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMetaDataDictionary (MetaDataDictionary &&rrhs)
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
Pointer Clone () const
 
virtual Pointer CreateAnother () const
 
virtual void Delete ()
 
virtual const char * GetNameOfClass () const
 
virtual int GetReferenceCount () const
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
virtual void SetReferenceCount (int)
 
virtual void UnRegister () const noexcept
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::KernelTransform< TParametersValueType, 3 >
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 val)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int SpaceDimension = Superclass::SpaceDimension
 
- Static Public Attributes inherited from itk::KernelTransform< TParametersValueType, 3 >
static constexpr unsigned int SpaceDimension
 
- Static Public Attributes inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
static constexpr unsigned int InputSpaceDimension
 
static constexpr unsigned int OutputSpaceDimension
 

Protected Member Functions

void ComputeDeformationContribution (const InputPointType &thisPoint, OutputPointType &result) const override
 
void ComputeG (const InputVectorType &x, GMatrixType &gmatrix) const override
 
 ThinPlateR2LogRSplineKernelTransform ()=default
 
 ~ThinPlateR2LogRSplineKernelTransform () override=default
 
- Protected Member Functions inherited from itk::KernelTransform< TParametersValueType, 3 >
void ComputeD ()
 
virtual void ComputeDeformationContribution (const InputPointType &thisPoint, 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 override
 
void ReorganizeW ()
 
 ~KernelTransform () override=default
 
- Protected Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
LightObject::Pointer InternalClone () const override
 
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType &, const InverseJacobianPositionType &) const
 
 Transform ()=default
 
 Transform (NumberOfParametersType numberOfParameters)
 
 ~Transform () override=default
 
- Protected Member Functions inherited from itk::TransformBaseTemplate< TParametersValueType >
 TransformBaseTemplate ()=default
 
 ~TransformBaseTemplate () override=default
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void SetTimeStamp (const TimeStamp &timeStamp)
 
 ~Object () override
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Additional Inherited Members

- Static Protected Member Functions inherited from itk::Transform< TParametersValueType, VDimension, VDimension >
static InverseTransformBasePointer InvertTransform (const TTransform &transform)
 
- Protected Attributes inherited from itk::KernelTransform< TParametersValueType, 3 >
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< TParametersValueType, VDimension, VDimension >
FixedParametersType m_FixedParameters
 
ParametersType m_Parameters
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount {}
 

Member Typedef Documentation

◆ ConstPointer

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::ConstPointer = SmartPointer<const Self>

Definition at line 47 of file itkThinPlateR2LogRSplineKernelTransform.h.

◆ Pointer

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::Pointer = SmartPointer<Self>

Definition at line 46 of file itkThinPlateR2LogRSplineKernelTransform.h.

◆ Self

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::Self = ThinPlateR2LogRSplineKernelTransform

Standard class type aliases.

Definition at line 44 of file itkThinPlateR2LogRSplineKernelTransform.h.

◆ Superclass

template<typename TParametersValueType , unsigned int VDimension = 3>
using itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::Superclass = KernelTransform<TParametersValueType, VDimension>

Definition at line 45 of file itkThinPlateR2LogRSplineKernelTransform.h.

Constructor & Destructor Documentation

◆ ThinPlateR2LogRSplineKernelTransform()

template<typename TParametersValueType , unsigned int VDimension = 3>
itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::ThinPlateR2LogRSplineKernelTransform ( )
protecteddefault

◆ ~ThinPlateR2LogRSplineKernelTransform()

template<typename TParametersValueType , unsigned int VDimension = 3>
itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::~ThinPlateR2LogRSplineKernelTransform ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeDeformationContribution()

template<typename TParametersValueType , unsigned int VDimension = 3>
void itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::ComputeDeformationContribution ( const InputPointType thisPoint,
OutputPointType result 
) const
overrideprotectedvirtual

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

Reimplemented from itk::KernelTransform< TParametersValueType, 3 >.

◆ ComputeG()

template<typename TParametersValueType , unsigned int VDimension = 3>
void itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::ComputeG ( const InputVectorType x,
GMatrixType gmatrix 
) const
overrideprotectedvirtual

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

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

I = identity matrix.

Reimplemented from itk::KernelTransform< TParametersValueType, 3 >.

◆ GetNameOfClass()

template<typename TParametersValueType , unsigned int VDimension = 3>
const char * itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::GetNameOfClass ( ) const
overridevirtual
See also
LightObject::GetNameOfClass()

Reimplemented from itk::Object.

◆ New()

template<typename TParametersValueType , unsigned int VDimension = 3>
static Pointer itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::New ( )
static

New macro for creation of through a Smart Pointer

Member Data Documentation

◆ SpaceDimension

template<typename TParametersValueType , unsigned int VDimension = 3>
constexpr unsigned int itk::ThinPlateR2LogRSplineKernelTransform< TParametersValueType, VDimension >::SpaceDimension = Superclass::SpaceDimension
staticconstexpr

Dimension of the domain space.

Definition at line 68 of file itkThinPlateR2LogRSplineKernelTransform.h.


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