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

This class defines the elastic body spline (EBS) transformation. More...

#include <itkElasticBodySplineKernelTransform.h>

Inheritance diagram for itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >:
Collaboration diagram for itk::ElasticBodySplineKernelTransform< 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
ElasticBodySplineKernelTransform 
Self
typedef KernelTransform
< TScalarType, NDimensions > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual TScalarType GetAlpha () const
virtual const char * GetNameOfClass () const
virtual void SetAlpha (TScalarType _arg)

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int SpaceDimension = Superclass::SpaceDimension

Protected Types

typedef Superclass::GMatrixType GMatrixType

Protected Member Functions

virtual void ComputeG (const InputVectorType &landmarkVector, GMatrixType &gmatrix) const
 ElasticBodySplineKernelTransform ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~ElasticBodySplineKernelTransform ()
TScalarType m_Alpha
 ElasticBodySplineKernelTransform (const Self &)
void operator= (const Self &)

Detailed Description

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

This class defines the elastic body spline (EBS) transformation.

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 43 of file itkElasticBodySplineKernelTransform.h.


Member Typedef Documentation

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

'G' matrix typedef.

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

Definition at line 92 of file itkElasticBodySplineKernelTransform.h.

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

Standard covariant vector type for this class

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

Definition at line 85 of file itkElasticBodySplineKernelTransform.h.

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

Standard coordinate point type for this class.

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

Definition at line 79 of file itkElasticBodySplineKernelTransform.h.

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

Standard vector type for this class.

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

Definition at line 83 of file itkElasticBodySplineKernelTransform.h.

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

Jacobian type.

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

Definition at line 68 of file itkElasticBodySplineKernelTransform.h.

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

Parameters type.

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

Definition at line 65 of file itkElasticBodySplineKernelTransform.h.

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

Scalar type.

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

Definition at line 59 of file itkElasticBodySplineKernelTransform.h.

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

Standard class typedefs.

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

Definition at line 48 of file itkElasticBodySplineKernelTransform.h.

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

Constructor & Destructor Documentation

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

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


Member Function Documentation

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

Compute G(x) For the elastic body spline, this is: $ G(x) = [alpha*r(x)^2*I - 3*x*x']*r(x) $ $ 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) = 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::ElasticBodySplineKernelTransform< 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::ElasticBodySplineKernelTransform< TScalarType, NDimensions >::GetAlpha ( ) const [virtual]

Get alpha

template<class TScalarType = double, unsigned int NDimensions = 3>
virtual const char* itk::ElasticBodySplineKernelTransform< 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::ElasticBodySplineKernelTransform< 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::ElasticBodySplineKernelTransform< TScalarType, NDimensions >::operator= ( const Self ) [private]

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

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

template<class TScalarType = double, unsigned int NDimensions = 3>
void itk::ElasticBodySplineKernelTransform< TScalarType, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

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::ElasticBodySplineKernelTransform< TScalarType, NDimensions >::SetAlpha ( TScalarType  _arg) [virtual]

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


Member Data Documentation

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

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

Definition at line 109 of file itkElasticBodySplineKernelTransform.h.

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

Dimension of the domain space.

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

Definition at line 71 of file itkElasticBodySplineKernelTransform.h.


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