ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itk::ElasticBodyReciprocalSplineKernelTransform< TParametersValueType, VDimension > Class Template Reference

#include <itkElasticBodyReciprocalSplineKernelTransform.h>

Detailed Description

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

This class defines the elastic body spline (EBS) transformation. It is implemented in as straightforward a manner as possible from [30]. 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 37 of file itkElasticBodyReciprocalSplineKernelTransform.h.

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

Public Types

using ConstPointer = SmartPointer<const Self>
 
using Pointer = SmartPointer<Self>
 
using Self = ElasticBodyReciprocalSplineKernelTransform
 
using Superclass = KernelTransform<TParametersValueType, VDimension>
 
- Public Types inherited from itk::KernelTransform< double, 3 >
using AMatrixType
 
using BMatrixType
 
using ColumnMatrixType
 
using ConstPointer
 
using DMatrixType
 
using GMatrixType
 
using IMatrixType
 
typedef CovariantVector< double, VInputDimension > InputCovariantVectorType
 
using InputCovariantVectorType
 
typedef Point< double, VInputDimension > InputPointType
 
using InputPointType
 
typedef Vector< double, VInputDimension > InputVectorType
 
using InputVectorType
 
typedef vnl_vector_fixed< double, VInputDimension > InputVnlVectorType
 
using InputVnlVectorType
 
typedef vnl_matrix_fixed< ParametersValueType, VInputDimension, VOutputDimension > InverseJacobianPositionType
 
using InverseJacobianPositionType
 
typedef vnl_matrix_fixed< ParametersValueType, VOutputDimension, VInputDimension > JacobianPositionType
 
using JacobianPositionType
 
typedef Array2D< ParametersValueTypeJacobianType
 
using JacobianType
 
using KMatrixType
 
using LMatrixType
 
typedef CovariantVector< double, VOutputDimension > OutputCovariantVectorType
 
using OutputCovariantVectorType
 
typedef Point< double, VOutputDimension > OutputPointType
 
using OutputPointType
 
typedef Vector< double, VOutputDimension > OutputVectorType
 
using OutputVectorType
 
typedef vnl_vector_fixed< double, VOutputDimension > OutputVnlVectorType
 
using OutputVnlVectorType
 
using PMatrixType
 
using Pointer
 
using PointIdentifier
 
using PointsConstIterator
 
using PointsContainer
 
using PointSetPointer
 
using PointSetTraitsType
 
using PointSetType
 
using PointsIterator
 
using RowMatrixType
 
typedef ParametersValueType ScalarType
 
using ScalarType
 
using Self
 
using Superclass
 
using VectorSetPointer
 
using VectorSetType
 
using WMatrixType
 
using YMatrixType
 
- Public Types inherited from itk::Transform< double, VDimension, VDimension >
using ConstPointer
 
using DerivativeType
 
using DirectionChangeMatrix
 
typedef OptimizerParameters< FixedParametersValueTypeFixedParametersType
 
using FixedParametersType
 
typedef double FixedParametersValueType
 
using FixedParametersValueType
 
using InputCovariantVectorType
 
using InputDiffusionTensor3DType
 
using InputDirectionMatrix
 
using InputPointType
 
using InputSymmetricSecondRankTensorType
 
using InputVectorPixelType
 
using InputVectorType
 
using InputVnlVectorType
 
using InverseJacobianPositionType
 
using InverseTransformBasePointer
 
using InverseTransformBaseType
 
using JacobianPositionType
 
using JacobianType
 
using MatrixType
 
typedef IdentifierType NumberOfParametersType
 
using NumberOfParametersType
 
using OutputCovariantVectorType
 
using OutputDiffusionTensor3DType
 
using OutputDirectionMatrix
 
using OutputPointType
 
using OutputSymmetricSecondRankTensorType
 
using OutputVectorPixelType
 
using OutputVectorType
 
using OutputVnlVectorType
 
typedef OptimizerParameters< ParametersValueTypeParametersType
 
using ParametersType
 
typedef double ParametersValueType
 
using ParametersValueType
 
using Pointer
 
using ScalarType
 
using Self
 
using Superclass
 
typedef TransformBaseTemplateEnums::TransformCategory TransformCategoryEnum
 
using TransformCategoryEnum
 
- Public Types inherited from TransformBaseTemplate< double >
using ConstPointer
 
using FixedParametersType
 
using FixedParametersValueType
 
using NumberOfParametersType
 
using ParametersType
 
using ParametersValueType
 
using Pointer
 
using Self
 
using Superclass
 
using TransformCategoryEnum
 
using TransformCategoryType
 

Public Member Functions

virtual::itk::LightObject::Pointer CreateAnother () const
 
virtual TParametersValueType GetAlpha () const
 
const char * GetNameOfClass () const override
 
virtual void SetAlpha (TParametersValueType _arg)
 
- Public Member Functions inherited from itk::KernelTransform< double, 3 >
void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const override
 
void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianPositionType &) const override
 
void ComputeWMatrix ()
 
virtual::itk::LightObject::Pointer CreateAnother () const
 
virtual const VectorSetTypeGetDisplacements () const
 
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
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
OutputPointType TransformPoint (const InputPointType &thisPoint) const override
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
 
virtual void UpdateParameters () const
 
virtual PointSetTypeGetModifiableSourceLandmarks ()
 
virtual const PointSetTypeGetSourceLandmarks () const
 
virtual void SetSourceLandmarks (PointSetType *)
 
virtual PointSetTypeGetModifiableTargetLandmarks ()
 
virtual const PointSetTypeGetTargetLandmarks () const
 
virtual void SetTargetLandmarks (PointSetType *)
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
 
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual void SetStiffness (double _arg)
 
virtual double GetStiffness () const
 
- Public Member Functions inherited from itk::Transform< double, VDimension, VDimension >
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &pnt, InverseJacobianPositionType &jacobian) const
 
virtual void ComputeJacobianWithRespectToParametersCachedTemporaries (const InputPointType &p, JacobianType &jacobian, JacobianType &cachedJacobian) const
 
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianPositionType &jacobian) 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
 
bool GetInverse (Self *inverseTransform) 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 ParametersTypeGetParameters () 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 &) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector) const
 
virtual OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &inputTensor, const InputPointType &point) const
 
virtual OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &tensor) const
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &inputTensor, const InputPointType &point) const
 
virtual OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &inputTensor, const InputPointType &point) const
 
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector) const
 
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
 
virtual OutputVectorType TransformVector (const InputVectorType &) 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)
 
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
 
- Public Member Functions inherited from TransformBaseTemplate< double >
 ITK_DISALLOW_COPY_AND_MOVE (TransformBaseTemplate)
 
 ITK_DISALLOW_COPY_AND_MOVE (TransformBaseTemplate)
 
 itkGetConstReferenceMacro (InputSpaceName, std::string)
 
 itkGetConstReferenceMacro (InputSpaceName, std::string)
 
 itkGetConstReferenceMacro (OutputSpaceName, std::string)
 
 itkGetConstReferenceMacro (OutputSpaceName, std::string)
 
 itkOverrideGetNameOfClassMacro (TransformBaseTemplate)
 
 itkOverrideGetNameOfClassMacro (TransformBaseTemplate)
 
 itkSetMacro (InputSpaceName, std::string)
 
 itkSetMacro (InputSpaceName, std::string)
 
 itkSetMacro (OutputSpaceName, std::string)
 
 itkSetMacro (OutputSpaceName, std::string)
 
virtual void SetFixedParameters (const FixedParametersType &)=0
 
virtual void SetFixedParameters (const FixedParametersType &)=0
 
virtual void SetParameters (const ParametersType &)=0
 
virtual void SetParameters (const ParametersType &)=0
 
virtual void SetParametersByValue (const ParametersType &p)=0
 
virtual void SetParametersByValue (const ParametersType &p)=0
 

Static Public Member Functions

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

Static Public Attributes

static constexpr unsigned int SpaceDimension = Superclass::SpaceDimension
 
- Static Public Attributes inherited from itk::KernelTransform< double, 3 >
static constexpr unsigned int SpaceDimension
 
- Static Public Attributes inherited from itk::Transform< double, VDimension, VDimension >
static constexpr unsigned int InputSpaceDimension
 
static constexpr unsigned int OutputSpaceDimension
 
- Static Public Attributes inherited from TransformBaseTemplate< double >
static constexpr TransformCategoryEnum BSpline
 
static constexpr TransformCategoryEnum BSpline
 
static constexpr TransformCategoryEnum DisplacementField
 
static constexpr TransformCategoryEnum DisplacementField
 
static constexpr TransformCategoryEnum Linear
 
static constexpr TransformCategoryEnum Linear
 
static constexpr TransformCategoryEnum Spline
 
static constexpr TransformCategoryEnum Spline
 
static constexpr TransformCategoryEnum UnknownTransformCategory
 
static constexpr TransformCategoryEnum UnknownTransformCategory
 
static constexpr TransformCategoryEnum VelocityField
 
static constexpr TransformCategoryEnum VelocityField
 

Protected Types

using GMatrixType
 

Protected Member Functions

void ComputeG (const InputVectorType &x, GMatrixType &gmatrix) const override
 
 ElasticBodyReciprocalSplineKernelTransform ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~ElasticBodyReciprocalSplineKernelTransform () override=default
 
- Protected Member Functions inherited from itk::KernelTransform< double, 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< double, 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 TransformBaseTemplate< double >
 TransformBaseTemplate ()=default
 
 TransformBaseTemplate ()=default
 
 ~TransformBaseTemplate () override=default
 
 ~TransformBaseTemplate () override=default
 

Protected Attributes

TParametersValueType m_Alpha {}
 
- Protected Attributes inherited from itk::KernelTransform< double, 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< double, VDimension, VDimension >
FixedParametersType m_FixedParameters
 
ParametersType m_Parameters
 

Additional Inherited Members

- Static Protected Member Functions inherited from itk::Transform< double, VDimension, VDimension >
static InverseTransformBasePointer InvertTransform (const TTransform &transform)
 

Member Typedef Documentation

◆ ConstPointer

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

◆ GMatrixType

template<typename TParametersValueType = double, unsigned int VDimension = 3>
using itk::KernelTransform< TParametersValueType, VDimension >::GMatrixType
protected

'G' matrix type alias.

Definition at line 247 of file itkKernelTransform.h.

◆ Pointer

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

◆ Self

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

Standard class type aliases.

Definition at line 44 of file itkElasticBodyReciprocalSplineKernelTransform.h.

◆ Superclass

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

Constructor & Destructor Documentation

◆ ElasticBodyReciprocalSplineKernelTransform()

template<typename TParametersValueType = double, unsigned int VDimension = 3>
itk::ElasticBodyReciprocalSplineKernelTransform< TParametersValueType, VDimension >::ElasticBodyReciprocalSplineKernelTransform ( )
protected

Referenced by GetNameOfClass().

◆ ~ElasticBodyReciprocalSplineKernelTransform()

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

Member Function Documentation

◆ ComputeG()

template<typename TParametersValueType = double, unsigned int VDimension = 3>
void itk::ElasticBodyReciprocalSplineKernelTransform< TParametersValueType, VDimension >::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)] \( G(x) = [\alpha*r(x)*I - 3*x*x'/r(x) ]\) where \(\alpha = 8 ( 1 - \nu ) - 1\) \(\nu\) is Poisson's Ratio 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

◆ CreateAnother()

template<typename TParametersValueType = double, unsigned int VDimension = 3>
virtual::itk::LightObject::Pointer itk::ElasticBodyReciprocalSplineKernelTransform< TParametersValueType, VDimension >::CreateAnother ( ) const

◆ GetAlpha()

template<typename TParametersValueType = double, unsigned int VDimension = 3>
virtual TParametersValueType itk::ElasticBodyReciprocalSplineKernelTransform< TParametersValueType, VDimension >::GetAlpha ( ) const
virtual

Get alpha

◆ GetNameOfClass()

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

◆ New()

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

New macro for creation of through a Smart Pointer

◆ PrintSelf()

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

◆ SetAlpha()

template<typename TParametersValueType = double, unsigned int VDimension = 3>
virtual void itk::ElasticBodyReciprocalSplineKernelTransform< TParametersValueType, VDimension >::SetAlpha ( TParametersValueType _arg)
virtual

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

References TransformBaseTemplate< double >::itkSetMacro().

Member Data Documentation

◆ m_Alpha

template<typename TParametersValueType = double, unsigned int VDimension = 3>
TParametersValueType itk::ElasticBodyReciprocalSplineKernelTransform< TParametersValueType, VDimension >::m_Alpha {}
protected

alpha, Poisson's ratio

Definition at line 107 of file itkElasticBodyReciprocalSplineKernelTransform.h.

◆ SpaceDimension

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

Dimension of the domain space.

Definition at line 69 of file itkElasticBodyReciprocalSplineKernelTransform.h.


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