ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions
itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions > Class Template Reference

#include <itkElasticBodyReciprocalSplineKernelTransform.h>

+ Inheritance diagram for itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >:
+ Collaboration diagram for itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass::InputPointType InputPointType
typedef Superclass::InputVectorType InputVectorType
typedef Superclass::JacobianType JacobianType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef
ElasticBodyReciprocalSplineKernelTransform 
Self
typedef KernelTransform
< TScalarType, NDimensions > 
Superclass
- Public Types inherited from itk::KernelTransform< TScalarType, NDimensions >
typedef vnl_matrix_fixed
< TScalarType, NDimensions,
NDimensions > 
AMatrixType
typedef vnl_vector_fixed
< TScalarType, NDimensions > 
BMatrixType
typedef vnl_matrix_fixed
< TScalarType, NDimensions, 1 > 
ColumnMatrixType
typedef vnl_matrix< TScalarType > DMatrixType
typedef vnl_matrix_fixed
< TScalarType, NDimensions,
NDimensions > 
IMatrixType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef vnl_matrix< TScalarType > KMatrixType
typedef vnl_matrix< TScalarType > LMatrixType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef vnl_matrix< TScalarType > PMatrixType
typedef
PointSetType::PointIdentifier 
PointIdentifier
typedef
PointSetType::PointsContainerConstIterator 
PointsConstIterator
typedef
PointSetType::PointsContainer 
PointsContainer
typedef PointSetType::Pointer PointSetPointer
typedef
DefaultStaticMeshTraits
< TScalarType, NDimensions,
NDimensions, TScalarType,
TScalarType > 
PointSetTraitsType
typedef PointSet
< InputPointType, NDimensions,
PointSetTraitsType
PointSetType
typedef
PointSetType::PointsContainerIterator 
PointsIterator
typedef vnl_matrix_fixed
< TScalarType, 1, NDimensions > 
RowMatrixType
typedef VectorSetType::Pointer VectorSetPointer
typedef itk::VectorContainer
< SizeValueType,
InputVectorType
VectorSetType
typedef vnl_matrix< TScalarType > WMatrixType
typedef vnl_matrix< TScalarType > YMatrixType
- Public Types inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
typedef Array
< ParametersValueType
DerivativeType
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
DirectionChangeMatrix
typedef DiffusionTensor3D
< TScalarType > 
InputDiffusionTensor3DType
typedef Matrix< double,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
InputDirectionMatrix
typedef
SymmetricSecondRankTensor
< TScalarType,
NInputDimensions > 
InputSymmetricSecondRankTensorType
typedef VariableLengthVector
< TScalarType > 
InputVectorPixelType
typedef
InverseTransformBaseType::Pointer 
InverseTransformBasePointer
typedef Transform< TScalarType,
NOutputDimensions,
NInputDimensions > 
InverseTransformBaseType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef DiffusionTensor3D
< TScalarType > 
OutputDiffusionTensor3DType
typedef Matrix< double,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputDirectionMatrix
typedef
SymmetricSecondRankTensor
< TScalarType,
NOutputDimensions > 
OutputSymmetricSecondRankTensorType
typedef VariableLengthVector
< TScalarType > 
OutputVectorPixelType
typedef
Superclass::ParametersValueType 
ParametersValueType
- Public Types inherited from itk::TransformBase
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual TScalarType GetAlpha () const
virtual const char * GetNameOfClass () const
virtual void SetAlpha (TScalarType _arg)
- Public Member Functions inherited from itk::KernelTransform< TScalarType, NDimensions >
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
void ComputeWMatrix (void)
virtual VectorSetTypeGetDisplacements ()
virtual const ParametersTypeGetFixedParameters (void) const
virtual const ParametersTypeGetParameters (void) const
virtual PointSetTypeGetSourceLandmarks ()
virtual PointSetTypeGetTargetLandmarks ()
virtual bool IsLinear () const
virtual void SetFixedParameters (const ParametersType &)
virtual void SetParameters (const ParametersType &)
virtual void SetSourceLandmarks (PointSetType *)
virtual void SetTargetLandmarks (PointSetType *)
virtual OutputPointType TransformPoint (const InputPointType &thisPoint) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
virtual void UpdateParameters (void) const
virtual OutputVectorType TransformVector (const InputVectorType &) const
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
virtual void SetStiffness (double _arg)
virtual double GetStiffness () const
- Public Member Functions inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jacobian) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &, JacobianType &) const
unsigned int GetInputSpaceDimension (void) const
bool GetInverse (Self *) const
virtual InverseTransformBasePointer GetInverseTransform () const
virtual NumberOfParametersType GetNumberOfLocalParameters (void) const
virtual NumberOfParametersType GetNumberOfParameters (void) const
unsigned int GetOutputSpaceDimension (void) const
virtual std::string GetTransformTypeAsString () const
virtual bool HasLocalSupport () const
 itkCloneMacro (Self)
virtual void SetFixedParameters (const ParametersType &)=0
virtual void SetParameters (const ParametersType &)=0
virtual void SetParametersByValue (const ParametersType &p)
virtual OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const
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 &tensor, const InputPointType &point) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &tensor, const InputPointType &point) const
virtual OutputPointType TransformPoint (const InputPointType &) const =0
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor, const InputPointType &point) const
virtual
OutputSymmetricSecondRankTensorType 
TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor, const InputPointType &point) const
virtual OutputVectorType TransformVector (const InputVectorType &) const
virtual OutputVectorType TransformVector (const InputVectorType &vector, const InputPointType &point) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &) const
virtual OutputVnlVectorType TransformVector (const InputVnlVectorType &vector, const InputPointType &point) const
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &) const
virtual OutputVectorPixelType TransformVector (const InputVectorPixelType &vector, const InputPointType &point) const
virtual void UpdateTransformParameters (const DerivativeType &update, TScalarType factor=1.0)
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int SpaceDimension = Superclass::SpaceDimension
- Static Public Attributes inherited from itk::KernelTransform< TScalarType, NDimensions >
- Static Public Attributes inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
static const unsigned int InputSpaceDimension
static const unsigned int OutputSpaceDimension

Protected Types

typedef Superclass::GMatrixType GMatrixType

Protected Member Functions

virtual void ComputeG (const InputVectorType &landmarkVector, GMatrixType &gmatrix) const
 ElasticBodyReciprocalSplineKernelTransform ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~ElasticBodyReciprocalSplineKernelTransform ()
- Protected Member Functions inherited from itk::KernelTransform< TScalarType, NDimensions >
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 const GMatrixTypeComputeReflexiveG (PointsIterator) const
void ComputeY ()
void ReorganizeW (void)
 KernelTransform ()
virtual ~KernelTransform ()
- Protected Member Functions inherited from itk::Transform< TScalarType, NDimensions, NDimensions >
virtual LightObject::Pointer InternalClone () const
OutputDiffusionTensor3DType PreservationOfPrincipalDirectionDiffusionTensor3DReorientation (const InputDiffusionTensor3DType, const JacobianType) const
 Transform ()
 Transform (NumberOfParametersType NumberOfParameters)
virtual ~Transform ()
- Protected Member Functions inherited from itk::TransformBase
 TransformBase ()
virtual ~TransformBase ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()
- Protected Attributes inherited from itk::KernelTransform< TScalarType, NDimensions >
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< TScalarType, NDimensions, NDimensions >
DirectionChangeMatrix m_DirectionChange
ParametersType m_FixedParameters
ParametersType m_Parameters
TScalarType m_Alpha
 ElasticBodyReciprocalSplineKernelTransform (const Self &)
void operator= (const Self &)

Additional Inherited Members


Detailed Description

template<class TScalarType = double, unsigned int NDimensions = 3>
class itk::ElasticBodyReciprocalSplineKernelTransform< 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 41 of file itkElasticBodyReciprocalSplineKernelTransform.h.


Member Typedef Documentation

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef SmartPointer< const Self > itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::ConstPointer
template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::GMatrixType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::GMatrixType
protected

'G' matrix typedef.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 90 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::InputCovariantVectorType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::InputCovariantVectorType

Standard covariant vector type for this class

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 83 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::InputPointType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::InputPointType

Standard coordinate point type for this class.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 77 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::InputVectorType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::InputVectorType

Standard vector type for this class.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 81 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::JacobianType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::JacobianType

Jacobian type.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 66 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::OutputCovariantVectorType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::OutputCovariantVectorType
template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::OutputPointType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::OutputPointType
template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::OutputVectorType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::OutputVectorType
template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::ParametersType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::ParametersType

Parameters type.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 63 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef SmartPointer< Self > itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::Pointer
template<class TScalarType = double, unsigned int NDimensions = 3>
typedef Superclass::ScalarType itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::ScalarType

Scalar type.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 57 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef ElasticBodyReciprocalSplineKernelTransform itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::Self

Standard class typedefs.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 46 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
typedef KernelTransform< TScalarType, NDimensions > itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::Superclass

Constructor & Destructor Documentation

template<class TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::ElasticBodyReciprocalSplineKernelTransform ( )
protected
template<class TScalarType = double, unsigned int NDimensions = 3>
virtual itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::~ElasticBodyReciprocalSplineKernelTransform ( )
protectedvirtual
template<class TScalarType = double, unsigned int NDimensions = 3>
itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::ElasticBodyReciprocalSplineKernelTransform ( const Self )
private

alpha, Poisson's ratio


Member Function Documentation

template<class TScalarType = double, unsigned int NDimensions = 3>
virtual void itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::ComputeG ( const InputVectorType landmarkVector,
GMatrixType gmatrix 
) const
protectedvirtual

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

template<class TScalarType = double, unsigned int NDimensions = 3>
virtual::itk::LightObject::Pointer itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

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

Get alpha

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

Run-time type information (and related methods).

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

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

New macro for creation of through a Smart Pointer

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

template<class TScalarType = double, unsigned int NDimensions = 3>
void itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::operator= ( const Self )
private

alpha, Poisson's ratio

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

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

Stiffness of the spline. A stiffness of zero results in the standard interpolating spline. A non-zero stiffness allows the spline to approximate rather than interpolate the landmarks. Stiffness values are usually rather small, typically in the range of 0.001 to 0.1. The approximating spline formulation is based on the short paper by R. Sprengel, K. Rohr, H. Stiehl. "Thin-Plate Spline Approximation for Image Registration". In 18th International Conference of the IEEE Engineering in Medicine and Biology Society. 1996.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

template<class TScalarType = double, unsigned int NDimensions = 3>
virtual void itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::SetAlpha ( TScalarType  _arg)
virtual

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


Member Data Documentation

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

alpha, Poisson's ratio

Definition at line 104 of file itkElasticBodyReciprocalSplineKernelTransform.h.

template<class TScalarType = double, unsigned int NDimensions = 3>
const unsigned int itk::ElasticBodyReciprocalSplineKernelTransform< TScalarType, NDimensions >::SpaceDimension = Superclass::SpaceDimension
static

Dimension of the domain space.

Reimplemented from itk::KernelTransform< TScalarType, NDimensions >.

Definition at line 69 of file itkElasticBodyReciprocalSplineKernelTransform.h.


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