go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions > Class Template Reference

#include <itkElasticBodySplineKernelTransform2.h>

Detailed Description

template<class TScalarType = double, unsigned int NDimensions = 3>
class itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >

This class defines the elastic body spline (EBS) 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 Taken from the paper: The EBS "is based on a physical model of a homogeneous, isotropic, three-dimensional elastic body. The model can approximate the way that some physical objects deform".

Definition at line 56 of file itkElasticBodySplineKernelTransform2.h.

Inheritance diagram for itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >:

Public Types

using ConstPointer = SmartPointer<const Self>
 
using Pointer = SmartPointer<Self>
 
using Self = ElasticBodySplineKernelTransform2
 
using Superclass = KernelTransform2<TScalarType, NDimensions>
 
- Public Types inherited from itk::KernelTransform2< double, 3 >
using AMatrixType
 
using BMatrixType
 
using ColumnMatrixType
 
using ConstPointer
 
using DMatrixType
 
using GMatrixType
 
using IMatrixType
 
using KMatrixType
 
using LMatrixType
 
using PMatrixType
 
using Pointer
 
using PointsConstIterator
 
using PointsContainer
 
using PointSetPointer
 
using PointSetTraitsType
 
using PointSetType
 
using PointsIterator
 
using RowMatrixType
 
using Self
 
using Superclass
 
using VectorSetPointer
 
using VectorSetType
 
using WMatrixType
 
using YMatrixType
 
- Public Types inherited from itk::AdvancedTransform< double, NDimensions, NDimensions >
using ConstPointer
 
using InternalMatrixType
 
using InverseTransformBaseType
 
using JacobianOfSpatialHessianType
 
using JacobianOfSpatialJacobianType
 
using MovingImageGradientType
 
using MovingImageGradientValueType
 
using NonZeroJacobianIndicesType
 
using Pointer
 
using Self
 
using SpatialHessianType
 
using SpatialJacobianType
 
using Superclass
 
using TransformType
 
using TransformTypeConstPointer
 
using TransformTypePointer
 

Public Member Functions

virtual TScalarType GetAlpha () const
 
virtual const char * GetClassName () const
 
const TScalarType GetPoissonRatio () const override
 
 ITK_DISALLOW_COPY_AND_MOVE (ElasticBodySplineKernelTransform2)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, Superclass::SpaceDimension)
 
void SetAlpha (TScalarType Alpha) override
 
void SetPoissonRatio (const TScalarType Nu) override
 
- Public Member Functions inherited from itk::KernelTransform2< double, 3 >
void ComputeLInverse ()
 
void ComputeWMatrix ()
 
const ParametersType & GetFixedParameters () const override
 
void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
 
virtual const std::string & GetMatrixInversionMethod ()
 
NumberOfParametersType GetNumberOfParameters () const override
 
const ParametersType & GetParameters () const override
 
void GetSpatialHessian (const InputPointType &, SpatialHessianType &) const override
 
void GetSpatialJacobian (const InputPointType &, SpatialJacobianType &) const override
 
virtual double GetStiffness () const
 
 ITK_DISALLOW_COPY_AND_MOVE (KernelTransform2)
 
 itkGetModifiableObjectMacro (Displacements, VectorSetType)
 
 itkGetModifiableObjectMacro (SourceLandmarks, PointSetType)
 
 itkGetModifiableObjectMacro (TargetLandmarks, PointSetType)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
virtual void SetAlpha (double)
 
void SetFixedParameters (const ParametersType &) override
 
virtual void SetIdentity ()
 
virtual void SetMatrixInversionMethod (std::string _arg)
 
void SetParameters (const ParametersType &) override
 
virtual void SetPoissonRatio (double _arg)
 
virtual void SetSourceLandmarks (PointSetType *)
 
virtual void SetStiffness (double stiffness)
 
virtual void SetTargetLandmarks (PointSetType *)
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
OutputPointType TransformPoint (const InputPointType &thisPoint) const override
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
virtual void UpdateParameters ()
 
- Public Member Functions inherited from itk::AdvancedTransform< double, NDimensions, NDimensions >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::KernelTransform2< double, 3 >
static Pointer New ()
 

Protected Types

using GMatrixType
 
- Protected Types inherited from itk::KernelTransform2< double, 3 >
using QRDecompositionType
 
using SVDDecompositionType
 

Protected Member Functions

void ComputeG (const InputVectorType &x, GMatrixType &GMatrix) const override
 
 ElasticBodySplineKernelTransform2 ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~ElasticBodySplineKernelTransform2 () override=default
 
- Protected Member Functions inherited from itk::KernelTransform2< double, 3 >
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 void ComputeReflexiveG (PointsIterator, GMatrixType &GMatrix) const
 
void ComputeY ()
 
 KernelTransform2 ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
void ReorganizeW ()
 
 ~KernelTransform2 () override
 
- Protected Member Functions inherited from itk::AdvancedTransform< double, NDimensions, NDimensions >
 AdvancedTransform ()=default
 
 ~AdvancedTransform () override=default
 

Protected Attributes

TScalarType m_Alpha {}
 
- Protected Attributes inherited from itk::KernelTransform2< double, 3 >
AMatrixType m_AMatrix
 
BMatrixType m_BVector
 
VectorSetPointer m_Displacements
 
DMatrixType m_DMatrix
 
bool m_FastComputationPossible
 
IMatrixType m_I
 
KMatrixType m_KMatrix
 
bool m_LInverseComputed
 
LMatrixType m_LMatrix
 
bool m_LMatrixComputed
 
bool m_LMatrixDecompositionComputed
 
QRDecompositionTypem_LMatrixDecompositionQR
 
SVDDecompositionTypem_LMatrixDecompositionSVD
 
LMatrixType m_LMatrixInverse
 
NonZeroJacobianIndicesType m_NonZeroJacobianIndices
 
PMatrixType m_PMatrix
 
double m_Stiffness
 
WMatrixType m_WMatrix
 
bool m_WMatrixComputed
 
YMatrixType m_YMatrix
 
- Protected Attributes inherited from itk::AdvancedTransform< double, NDimensions, NDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian
 
bool m_HasNonZeroSpatialHessian
 

Additional Inherited Members

- Data Fields inherited from itk::KernelTransform2< double, 3 >
PointSetPointer m_SourceLandmarks
 
PointSetPointer m_TargetLandmarks
 

Member Typedef Documentation

◆ ConstPointer

template<class TScalarType = double, unsigned int NDimensions = 3>
using itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::ConstPointer = SmartPointer<const Self>

Definition at line 66 of file itkElasticBodySplineKernelTransform2.h.

◆ GMatrixType

template<class TScalarType = double, unsigned int NDimensions = 3>
using itk::KernelTransform2< TScalarType, NDimensions >::GMatrixType
protected

'G' matrix typedef.

Definition at line 365 of file itkKernelTransform2.h.

◆ Pointer

template<class TScalarType = double, unsigned int NDimensions = 3>
using itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::Pointer = SmartPointer<Self>

Definition at line 65 of file itkElasticBodySplineKernelTransform2.h.

◆ Self

template<class TScalarType = double, unsigned int NDimensions = 3>
using itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::Self = ElasticBodySplineKernelTransform2

Standard class typedefs.

Definition at line 62 of file itkElasticBodySplineKernelTransform2.h.

◆ Superclass

template<class TScalarType = double, unsigned int NDimensions = 3>
using itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::Superclass = KernelTransform2<TScalarType, NDimensions>

Definition at line 63 of file itkElasticBodySplineKernelTransform2.h.

Constructor & Destructor Documentation

◆ ElasticBodySplineKernelTransform2()

template<class TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::ElasticBodySplineKernelTransform2 ( )
protected

◆ ~ElasticBodySplineKernelTransform2()

template<class TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::~ElasticBodySplineKernelTransform2 ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeG()

template<class TScalarType = double, unsigned int NDimensions = 3>
void itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::ComputeG ( const InputVectorType & x,
GMatrixType & GMatrix ) const
overrideprotected

Compute G(x) For the elastic body spline, this is:

\[ G(x) = [\alpha*r(x)^2*I - 3*x*x']*r(x) \]

where $\alpha = 12 ( 1 - \nu ) - 1$, $\nu$ is Poisson's Ratio, $ r(x) = \sqrt{ x_1^2 + x_2^2 + x_3^2 } $ and $I$ is the identity matrix.

◆ GetAlpha()

template<class TScalarType = double, unsigned int NDimensions = 3>
virtual TScalarType itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::GetAlpha ( ) const
virtual

Get alpha

◆ GetClassName()

template<class TScalarType = double, unsigned int NDimensions = 3>
virtual const char * itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::KernelTransform2< double, 3 >.

◆ GetPoissonRatio()

template<class TScalarType = double, unsigned int NDimensions = 3>
const TScalarType itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::GetPoissonRatio ( ) const
inlineoverridevirtual

Reimplemented from itk::KernelTransform2< double, 3 >.

Definition at line 115 of file itkElasticBodySplineKernelTransform2.h.

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<class TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::ITK_DISALLOW_COPY_AND_MOVE ( ElasticBodySplineKernelTransform2< TScalarType, NDimensions > )

◆ itkStaticConstMacro()

template<class TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::itkStaticConstMacro ( SpaceDimension ,
unsigned int ,
Superclass::SpaceDimension  )

Dimension of the domain space.

◆ New()

template<class TScalarType = double, unsigned int NDimensions = 3>
static Pointer itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::New ( )
static

New macro for creation of through a Smart Pointer

◆ PrintSelf()

template<class TScalarType = double, unsigned int NDimensions = 3>
void itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::PrintSelf ( std::ostream & os,
Indent indent ) const
overrideprotected

◆ SetAlpha()

template<class TScalarType = double, unsigned int NDimensions = 3>
void itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::SetAlpha ( TScalarType Alpha)
inlineoverride

Set alpha. Alpha is related to Poisson's Ratio ( $\nu$) as $\alpha = 12 ( 1 - \nu ) - 1$

Definition at line 91 of file itkElasticBodySplineKernelTransform2.h.

◆ SetPoissonRatio()

template<class TScalarType = double, unsigned int NDimensions = 3>
void itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::SetPoissonRatio ( const TScalarType Nu)
inlineoverride

Convenience method

Definition at line 105 of file itkElasticBodySplineKernelTransform2.h.

Field Documentation

◆ m_Alpha

template<class TScalarType = double, unsigned int NDimensions = 3>
TScalarType itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::m_Alpha {}
protected

alpha, Alpha is related to Poisson's Ratio $\nu$ as $\alpha = 12 ( 1 - \nu ) - 1$

Definition at line 154 of file itkElasticBodySplineKernelTransform2.h.



Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo