ITK  6.0.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, VDimension >
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 Member Functions

const char * GetNameOfClass () const override
 
- Public Member Functions inherited from itk::KernelTransform< TParametersValueType, VDimension >
void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const override
 
void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianPositionType &) const override
 
void ComputeWMatrix ()
 
const FixedParametersType & GetFixedParameters () const override
 
virtual VectorSetTypeGetModifiableDisplacements ()
 
const char * GetNameOfClass () const override
 
const ParametersType & GetParameters () 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 FixedParametersType & GetFixedParameters () const override
 
unsigned int GetInputSpaceDimension () const override
 
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
 
const ParametersType & GetParameters () const override
 
TransformCategoryEnum GetTransformCategory () const override
 
std::string GetTransformTypeAsString () const override
 
virtual bool IsLinear () const
 
 itkCloneMacro (Self)
 
void SetParametersByValue (const ParametersType &p) override
 
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 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 &vector, const InputPointType &point) 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
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::KernelTransform< TParametersValueType, VDimension >
static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int SpaceDimension = Superclass::SpaceDimension
 
- Static Public Attributes inherited from itk::KernelTransform< TParametersValueType, VDimension >
static constexpr unsigned int SpaceDimension = VDimension
 
- 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, VDimension >
void ComputeD ()
 
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
 

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, VDimension >
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
 

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, VDimension >.

◆ 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, VDimension >.

◆ GetNameOfClass()

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

◆ 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: