go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
elastix::SplineKernelTransform< TElastix > Class Template Reference

#include <elxSplineKernelTransform.h>

Inheritance diagram for elastix::SplineKernelTransform< TElastix >:
Inheritance graph
[legend]
Collaboration diagram for elastix::SplineKernelTransform< TElastix >:
Collaboration graph
[legend]

Public Types

typedef
Superclass2::CombinationTransformType 
CombinationTransformType
typedef
Superclass2::ConfigurationPointer 
ConfigurationPointer
typedef
Superclass2::ConfigurationType 
ConfigurationType
typedef SmartPointer< const SelfConstPointer
typedef Superclass2::CoordRepType CoordRepType
typedef Superclass2::ElastixPointer ElastixPointer
typedef Superclass2::ElastixType ElastixType
typedef Superclass2::FixedImageType FixedImageType
typedef
Superclass1::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass1::InputPointType InputPointType
typedef
Superclass1::InputVectorType 
InputVectorType
typedef
Superclass1::InputVnlVectorType 
InputVnlVectorType
typedef Superclass2::ITKBaseType ITKBaseType
typedef Superclass1::JacobianType JacobianType
typedef
KernelTransformType::Pointer 
KernelTransformPointer
typedef KernelTransform2
< typename elx::TransformBase
< TElastix >::CoordRepType,
elx::TransformBase< TElastix >
::FixedImageDimension > 
KernelTransformType
typedef
Superclass2::MovingImageType 
MovingImageType
typedef
Superclass1::OutputCovariantVectorType 
OutputCovariantVectorType
typedef
Superclass1::OutputPointType 
OutputPointType
typedef
Superclass1::OutputVectorType 
OutputVectorType
typedef
Superclass1::OutputVnlVectorType 
OutputVnlVectorType
typedef Superclass1::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef PointSetType::Pointer PointSetPointer
typedef
KernelTransformType::PointSetType 
PointSetType
typedef
Superclass2::RegistrationPointer 
RegistrationPointer
typedef
Superclass2::RegistrationType 
RegistrationType
typedef Superclass1::ScalarType ScalarType
typedef SplineKernelTransform Self
typedef
AdvancedCombinationTransform
< typename elx::TransformBase
< TElastix >::CoordRepType,
elx::TransformBase< TElastix >
::FixedImageDimension > 
Superclass1
typedef elx::TransformBase
< TElastix > 
Superclass2

Public Member Functions

virtual int BeforeAll (void)
virtual void BeforeRegistration (void)
 elxClassNameMacro ("SplineKernelTransform")
virtual const char * GetClassName () const
 itkStaticConstMacro (SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
virtual void ReadFromFile (void)
virtual void WriteToFile (const ParametersType &param) const

Static Public Member Functions

static Pointer New ()

Protected Types

typedef
ElasticBodySplineKernelTransform2
< CoordRepType,
itkGetStaticConstMacro(SpaceDimension) > 
EBKernelTransformType
typedef
ElasticBodyReciprocalSplineKernelTransform2
< CoordRepType,
itkGetStaticConstMacro(SpaceDimension) > 
EBRKernelTransformType
typedef
ThinPlateSplineKernelTransform2
< CoordRepType,
itkGetStaticConstMacro(SpaceDimension) > 
TPKernelTransformType
typedef
ThinPlateR2LogRSplineKernelTransform2
< CoordRepType,
itkGetStaticConstMacro(SpaceDimension) > 
TPRKernelTransformType
typedef
VolumeSplineKernelTransform2
< CoordRepType,
itkGetStaticConstMacro(SpaceDimension) > 
VKernelTransformType

Protected Member Functions

virtual void DetermineSourceLandmarks (void)
virtual bool DetermineTargetLandmarks (void)
virtual void ReadLandmarkFile (const std::string &filename, PointSetPointer &landmarkPointSet, const bool &landmarksInFixedImage)
virtual bool SetKernelType (const std::string &kernelType)
 SplineKernelTransform ()
virtual ~SplineKernelTransform ()

Protected Attributes

KernelTransformPointer m_KernelTransform

Private Member Functions

void operator= (const Self &)
 SplineKernelTransform (const Self &)

Private Attributes

std::string m_SplineKernelType

Detailed Description

template<class TElastix>
class elastix::SplineKernelTransform< TElastix >

A transform based on the itk::KernelTransform2.

This transform is a nonrigid transformation, based on thin-plate-spline-like kernels.

The ITK code for this class is largely based on code by Rupert Brooks. For elastix a few modifications were made (making the transform thread safe, and make it support the AdvancedTransform framework).

This nonrigid transformation model allows the user to place control points at application-specific positions, unlike the BSplineTransform, which always uses a regular grid of control points.

NB: in order to use this class for registration, the -fp command line argument is mandatory! It is used to place the fixed image landmarks.

The parameters used in this class are:

Parameters:
Transform: Select this transform as follows:
(Transform "SplineKernelTransform")
Parameters:
SplineKernelType: Select the deformation model, which must be one of { ThinPlateSpline, ThinPlateR2LogRSpline, VolumeSpline, ElasticBodySpline, ElasticBodyReciprocalSpline). In 2D this option is ignored and a ThinPlateSpline will always be used.
example: (SplineKernelType "ElasticBodySpline")
Default: ThinPlateSpline. You cannot specify this parameter for each resolution differently.
Parameters:
SplineRelaxationFactor: make the spline interpolating or approximating. A value of 0.0 gives an interpolating transform. Higher values result in approximating splines.
example: (SplineRelaxationFactor 0.01 )
Default: 0.0. You cannot specify this parameter for each resolution differently.
Parameters:
SplinePoissonRatio: Set the poisson ratio for the ElasticBodySpline and the ElastixBodyReciprocalSpline. For other SplineKernelTypes this parameters is ignored.
example: (SplinePoissonRatio 0.3 )
Default: 0.3. You cannot specify this parameter for each resolution differently.
Valid values are withing -1.0 and 0.5. 0.5 means incompressible. Negative values are a bit odd, but possible. See Wikipedia on PoissonRatio.
Command line arguments:
-fp: a file specifying a set of points that will serve as fixed image landmarks.
example: -fp fixedImagePoints.txt
The fixedImagePoints.txt file should be structured: first line should be "index" or "point", depending if the user supplies voxel indices or real world coordinates. The second line should be the number of points that should be transformed. The third and following lines give the indices or points. The same structure thus as used for transformix.
Command line arguments:
-mp: an optional file specifying a set of points that will serve as moving image landmarks, used to initialize the transformation.
example: -mp movingImagePoints.txt
The movingImagePoints.txt should be structured like the fixedImagePoints.txt. The moving landmarks should be corresponding to the fixed landmarks. If no file is provided, the transformation is initialized to be the identity, i.e. the moving landmarks are chosen identical to the fixed landmarks.
Transform Parameters:
Transform: Select this transform as follows:
(Transform "SplineKernelTransform")
Transform Parameters:
SplineKernelType: Select the deformation model, which must be one of { ThinPlateSpline, ThinPlateR2LogRSpline, VolumeSpline, ElasticBodySpline, ElasticBodyReciprocalSpline). In 2D this option is ignored and a ThinPlateSpline will always be used.
example: (SplineKernelType "ElasticBodySpline")
*
Transform Parameters:
SplineRelaxationFactor: make the spline interpolating or approximating. A value of 0.0 gives an interpolating transform. Higher values result in approximating splines.
example: (SplineRelaxationFactor 0.01 )
*
Transform Parameters:
SplinePoissonRatio: Set the Poisson ratio for the ElasticBodySpline and the ElastixBodyReciprocalSpline. For other SplineKernelTypes this parameters is ignored.
example: (SplinePoissonRatio 0.3 )
Valid values are withing -1.0 and 0.5. 0.5 means incompressible. Negative values are a bit odd, but possible. See Wikipedia on PoissonRatio.
Transform Parameters:
FixedImageLandmarks: The landmark positions in the fixed image, in world coordinates. Positions written as x1 y1 [z1] x2 y2 [z2] etc.
example: (FixedImageLandmarks 10.0 11.0 12.0 4.0 4.0 4.0 6.0 6.0 6.0 )

Definition at line 113 of file elxSplineKernelTransform.h.


Member Typedef Documentation

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 175 of file elxSplineKernelTransform.h.

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 168 of file elxSplineKernelTransform.h.

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 167 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef SmartPointer<const Self> elastix::SplineKernelTransform< TElastix >::ConstPointer
template<class TElastix >
typedef Superclass2::CoordRepType elastix::SplineKernelTransform< TElastix >::CoordRepType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 171 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef ElasticBodySplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > elastix::SplineKernelTransform< TElastix >::EBKernelTransformType [protected]

Definition at line 216 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > elastix::SplineKernelTransform< TElastix >::EBRKernelTransformType [protected]

Definition at line 218 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass2::ElastixPointer elastix::SplineKernelTransform< TElastix >::ElastixPointer

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 166 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass2::ElastixType elastix::SplineKernelTransform< TElastix >::ElastixType

Typedef's from the TransformBase class.

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 165 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass2::FixedImageType elastix::SplineKernelTransform< TElastix >::FixedImageType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 172 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass1::InputPointType elastix::SplineKernelTransform< TElastix >::InputPointType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 161 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass1::InputVectorType elastix::SplineKernelTransform< TElastix >::InputVectorType
template<class TElastix >
typedef Superclass2::ITKBaseType elastix::SplineKernelTransform< TElastix >::ITKBaseType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 174 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass1::JacobianType elastix::SplineKernelTransform< TElastix >::JacobianType

Extra typedefs

Definition at line 178 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef KernelTransform2< typename elx::TransformBase<TElastix>::CoordRepType, elx::TransformBase<TElastix>::FixedImageDimension > elastix::SplineKernelTransform< TElastix >::KernelTransformType

The ITK-class that provides most of the functionality, and that is set as the "CurrentTransform" in the CombinationTransform.

Definition at line 132 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass2::MovingImageType elastix::SplineKernelTransform< TElastix >::MovingImageType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 173 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass1::OutputPointType elastix::SplineKernelTransform< TElastix >::OutputPointType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 162 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass1::OutputVectorType elastix::SplineKernelTransform< TElastix >::OutputVectorType
template<class TElastix >
typedef Superclass1::ParametersType elastix::SplineKernelTransform< TElastix >::ParametersType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 153 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef SmartPointer<Self> elastix::SplineKernelTransform< TElastix >::Pointer
template<class TElastix >
typedef PointSetType::Pointer elastix::SplineKernelTransform< TElastix >::PointSetPointer

Definition at line 180 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef KernelTransformType::PointSetType elastix::SplineKernelTransform< TElastix >::PointSetType

Definition at line 179 of file elxSplineKernelTransform.h.

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 170 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass2::RegistrationType elastix::SplineKernelTransform< TElastix >::RegistrationType

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 169 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef Superclass1::ScalarType elastix::SplineKernelTransform< TElastix >::ScalarType
template<class TElastix >
typedef SplineKernelTransform elastix::SplineKernelTransform< TElastix >::Self

Standard ITK-stuff.

Reimplemented from elastix::TransformBase< TElastix >.

Definition at line 121 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef AdvancedCombinationTransform< typename elx::TransformBase<TElastix>::CoordRepType, elx::TransformBase<TElastix>::FixedImageDimension > elastix::SplineKernelTransform< TElastix >::Superclass1

Definition at line 124 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef elx::TransformBase<TElastix> elastix::SplineKernelTransform< TElastix >::Superclass2

Definition at line 125 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef ThinPlateSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > elastix::SplineKernelTransform< TElastix >::TPKernelTransformType [protected]

Definition at line 207 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef ThinPlateR2LogRSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > elastix::SplineKernelTransform< TElastix >::TPRKernelTransformType [protected]

Definition at line 212 of file elxSplineKernelTransform.h.

template<class TElastix >
typedef VolumeSplineKernelTransform2< CoordRepType, itkGetStaticConstMacro(SpaceDimension) > elastix::SplineKernelTransform< TElastix >::VKernelTransformType [protected]

Definition at line 214 of file elxSplineKernelTransform.h.


Constructor & Destructor Documentation

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::SplineKernelTransform ( ) [protected]

The constructor.

template<class TElastix >
virtual elastix::SplineKernelTransform< TElastix >::~SplineKernelTransform ( ) [inline, protected, virtual]

The destructor.

Definition at line 207 of file elxSplineKernelTransform.h.

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::SplineKernelTransform ( const Self ) [private]

The private constructor.


Member Function Documentation

template<class TElastix >
virtual int elastix::SplineKernelTransform< TElastix >::BeforeAll ( void  ) [virtual]

Execute stuff before everything else:

  • Check if -fp command line argument was given
  • Check if -mp command line argument was given

Reimplemented from elastix::BaseComponent.

template<class TElastix >
virtual void elastix::SplineKernelTransform< TElastix >::BeforeRegistration ( void  ) [virtual]

Execute stuff before the actual registration:

  • Setup transform
  • Determine fixed image (source) landmarks
  • Determine moving image (target) landmarks
  • Call InitializeTransform.

Reimplemented from elastix::BaseComponent.

template<class TElastix >
virtual void elastix::SplineKernelTransform< TElastix >::DetermineSourceLandmarks ( void  ) [protected, virtual]

Read source landmarks from fp file

  • Try reading -fp file
template<class TElastix >
virtual bool elastix::SplineKernelTransform< TElastix >::DetermineTargetLandmarks ( void  ) [protected, virtual]

Read target landmarks from mp file or load identity.

  • Try reading -mp file
  • If no -mp file was given, place landmarks as identity.
template<class TElastix >
elastix::SplineKernelTransform< TElastix >::elxClassNameMacro ( "SplineKernelTransform< TElastix >"  )

Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "SplineKernelTransform")

template<class TElastix >
virtual const char* elastix::SplineKernelTransform< TElastix >::GetClassName ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from elastix::TransformBase< TElastix >.

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
Superclass2::FixedImageDimension   
)

Dimension of the domain space.

template<class TElastix >
static Pointer elastix::SplineKernelTransform< TElastix >::New ( ) [static]
template<class TElastix >
void elastix::SplineKernelTransform< TElastix >::operator= ( const Self ) [private]

The private copy constructor.

template<class TElastix >
virtual void elastix::SplineKernelTransform< TElastix >::ReadFromFile ( void  ) [virtual]

Function to read transform-parameters from a file.

Reimplemented from elastix::TransformBase< TElastix >.

template<class TElastix >
virtual void elastix::SplineKernelTransform< TElastix >::ReadLandmarkFile ( const std::string &  filename,
PointSetPointer landmarkPointSet,
const bool landmarksInFixedImage 
) [protected, virtual]

General function to read all landmarks.

template<class TElastix >
virtual bool elastix::SplineKernelTransform< TElastix >::SetKernelType ( const std::string &  kernelType) [protected, virtual]

Create an instance of a kernel transform. Returns false if the kernelType is unknown.

template<class TElastix >
virtual void elastix::SplineKernelTransform< TElastix >::WriteToFile ( const ParametersType param) const [virtual]

Function to write transform-parameters to a file.

Reimplemented from elastix::TransformBase< TElastix >.


Field Documentation

template<class TElastix >
KernelTransformPointer elastix::SplineKernelTransform< TElastix >::m_KernelTransform [protected]

The itk kernel transform.

Definition at line 243 of file elxSplineKernelTransform.h.

template<class TElastix >
std::string elastix::SplineKernelTransform< TElastix >::m_SplineKernelType [private]

Definition at line 252 of file elxSplineKernelTransform.h.



Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo