go home Home | Main Page | Topics | 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<typename 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
typedef typename SpatialJacobianType::InternalMatrixType InternalMatrixType
typedef std::vector< SpatialHessianTypeJacobianOfSpatialHessianType
typedef std::vector< SpatialJacobianTypeJacobianOfSpatialJacobianType
using KMatrixType
using LMatrixType
typedef std::vector< uint64_t > NonZeroJacobianIndicesType
using PMatrixType
using Pointer
using PointsConstIterator
using PointsContainer
using PointSetPointer
using PointSetTraitsType
using PointSetType
using PointsIterator
using RowMatrixType
using Self
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > SpatialHessianType
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
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
const TScalarType GetPoissonRatio () const override
 ITK_DISALLOW_COPY_AND_MOVE (ElasticBodySplineKernelTransform2)
 itkOverrideGetNameOfClassMacro (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 GetJacobianOfSpatialJacobian (const InputPointType &, 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 (SourceLandmarks, PointSetType)
 itkOverrideGetNameOfClassMacro (KernelTransform2)
 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
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)
 itkOverrideGetNameOfClassMacro (AdvancedTransform)
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)

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

Public Attributes inherited from itk::KernelTransform2< double, 3 >
PointSetPointer m_SourceLandmarks
PointSetPointer m_TargetLandmarks

Member Typedef Documentation

◆ ConstPointer

template<typename 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<typename 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<typename TScalarType = double, unsigned int NDimensions = 3>
using itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::Pointer = SmartPointer<Self>

Definition at line 65 of file itkElasticBodySplineKernelTransform2.h.

◆ Self

template<typename 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<typename 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<typename TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::ElasticBodySplineKernelTransform2 ( )
protected

◆ ~ElasticBodySplineKernelTransform2()

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

Member Function Documentation

◆ ComputeG()

template<typename 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<typename TScalarType = double, unsigned int NDimensions = 3>
virtual TScalarType itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::GetAlpha ( ) const
virtual

Get alpha

◆ GetPoissonRatio()

template<typename 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<typename TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodySplineKernelTransform2< TScalarType, NDimensions >::ITK_DISALLOW_COPY_AND_MOVE ( ElasticBodySplineKernelTransform2< TScalarType, NDimensions > )

◆ itkOverrideGetNameOfClassMacro()

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

Run-time type information (and related methods).

◆ itkStaticConstMacro()

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

Dimension of the domain space.

◆ New()

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

New macro for creation of through a Smart Pointer

◆ PrintSelf()

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

◆ SetAlpha()

template<typename 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<typename 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.

Member Data Documentation

◆ m_Alpha

template<typename 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 26-02-2026 for elastix by doxygen 1.16.1 (669aeeefca743c148e2d935b3d3c69535c7491e6) elastix logo