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

#include <itkElasticBodyReciprocalSplineKernelTransform2.h>

Detailed Description

template<class TScalarType = double, unsigned int NDimensions = 3>
class itk::ElasticBodyReciprocalSplineKernelTransform2< 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 itkElasticBodyReciprocalSplineKernelTransform2.h.

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

Public Types

using ConstPointer = SmartPointer<const Self>
using Pointer = SmartPointer<Self>
using Self = ElasticBodyReciprocalSplineKernelTransform2
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< unsigned long > 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
virtual const char * GetClassName () const
const TScalarType GetPoissonRatio () const override
 ITK_DISALLOW_COPY_AND_MOVE (ElasticBodyReciprocalSplineKernelTransform2)
 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)
 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)
 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
 ElasticBodyReciprocalSplineKernelTransform2 ()
void PrintSelf (std::ostream &os, Indent indent) const override
 ~ElasticBodyReciprocalSplineKernelTransform2 () 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::ElasticBodyReciprocalSplineKernelTransform2< TScalarType, NDimensions >::ConstPointer = SmartPointer<const Self>

◆ 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::ElasticBodyReciprocalSplineKernelTransform2< TScalarType, NDimensions >::Pointer = SmartPointer<Self>

◆ Self

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

Standard class typedefs.

Definition at line 63 of file itkElasticBodyReciprocalSplineKernelTransform2.h.

◆ Superclass

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

Constructor & Destructor Documentation

◆ ElasticBodyReciprocalSplineKernelTransform2()

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

◆ ~ElasticBodyReciprocalSplineKernelTransform2()

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

Member Function Documentation

◆ ComputeG()

template<class TScalarType = double, unsigned int NDimensions = 3>
void itk::ElasticBodyReciprocalSplineKernelTransform2< 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)*I - 3*x*x'/r(x) ] \‍]

where $\alpha = 8 ( 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::ElasticBodyReciprocalSplineKernelTransform2< TScalarType, NDimensions >::GetAlpha ( ) const
virtual

Get alpha

◆ GetClassName()

template<class TScalarType = double, unsigned int NDimensions = 3>
virtual const char * itk::ElasticBodyReciprocalSplineKernelTransform2< 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::ElasticBodyReciprocalSplineKernelTransform2< TScalarType, NDimensions >::GetPoissonRatio ( ) const
inlineoverridevirtual

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ itkStaticConstMacro()

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

Dimension of the domain space.

◆ New()

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

New macro for creation of through a Smart Pointer

◆ PrintSelf()

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

◆ SetAlpha()

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

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

Definition at line 92 of file itkElasticBodyReciprocalSplineKernelTransform2.h.

◆ SetPoissonRatio()

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

Convenience method

Definition at line 106 of file itkElasticBodyReciprocalSplineKernelTransform2.h.

Field Documentation

◆ m_Alpha

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

alpha, Poisson's ratio

Definition at line 153 of file itkElasticBodyReciprocalSplineKernelTransform2.h.



Generated on 1768596610 for elastix by doxygen 1.15.0 elastix logo