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 | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
elastix::TransformBase< TElastix > Class Template Reference

#include <elxTransformBase.h>

Detailed Description

template<class TElastix>
class elastix::TransformBase< TElastix >

This class is the elastix base class for all Transforms.

This class contains the common functionality for all Transforms.

The parameters used in this class are:

Parameters:
HowToCombineTransforms: Indicates how to use the initial transform
(given by the command-line argument -t0, or, if using multiple parameter files, by the result of registration using the previous parameter file). Possible options are "Add" and "Compose".
"Add" combines the initial transform $T_0$ and the current transform $T_1$ (which is currently optimized) by addition: $T(x) = T_0(x) + T_1(x)$;
"Compose" by composition: $T(x) = T_1 ( T_0(x) )$.
example: (HowToCombineTransforms "Add")
Default: "Add".
Transform Parameters:

UseDirectionCosines: Controls whether to use or ignore the direction cosines (world matrix, transform matrix) set in the images. Voxel spacing and image origin are always taken into account, regardless the setting of this parameter.
example: (UseDirectionCosines "true")
Default: false. Recommended: true. The default value is false for backward compatibility reasons. This parameter was introduced in elastix 4.3. Setting it to false means that you choose to ignore important information from the image, which relates voxel coordinates to world coordinates. Ignoring it may easily lead to left/right swaps for example, which could skrew up a (medical) analysis.

HowToCombineTransforms: Indicates how to use the initial transform (given by the command-line argument -t0, or, if using multiple parameter files, by the result of registration using the previous parameter file). Possible options are "Add" and "Compose".
"Add" combines the initial transform $T_0$ and the current transform $T_1$ (which is currently optimized) by addition: $T(x) = T_0(x) + T_1(x)$;
"Compose" by composition: $T(x) = T_1 ( T_0(x) )$.
example: (HowToCombineTransforms "Add")
Default: "Compose".

Size: The size (number of voxels in each dimension) of the fixed image that was used during registration, and which is used for resampling the deformed moving image.
example: (Size 100 90 90)
Mandatory parameter.

Index: The starting index of the fixed image region that was used during registration, and which is used for resampling the deformed moving image.
example: (Index 0 0 0)
Currently always zero.

Spacing: The voxel spacing of the fixed image that was used during registration, and which is used for resampling the deformed moving image.
example: (Spacing 1.0 1.0 1.0)
Default: 1.0 for each dimension.

Origin: The origin (location of the first voxel in world coordinate) of the fixed image that was used during registration, and which is used for resampling the deformed moving image.
example: (Origin 5.0 10.0 11.0)
Default: 0.0 for each dimension.

Direction: The direction cosines matrix of the fixed image that was used during registration, and which is used for resampling the deformed moving image if the UseDirectionCosines parameter is set to "true".
example: (Direction -1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.1)
Default: identity matrix. Elements are sorted as follows: [ d11 d21 d31 d12 d22 d32 d13 d23 d33] (in 3D).

TransformParameters: the transform parameter vector that defines the transformation.
example (TransformParameters 0.03 1.0 0.2 ...)
The number of entries is stored the NumberOfParameters entry.

NumberOfParameters: the length of the transform parameter vector.
example (NumberOfParameters 722)

InitialTransformParametersFileName: The location/name of an initial transform that will be loaded when loading the current transform parameter file. Note that transform parameter file can also contain an initial transform. Recursively all transforms are thus automatically loaded when loading the last transform parameter file.
example (InitialTransformParametersFileName "./res/TransformParameters.0.txt")
The location is relative to the path from where elastix/transformix is started!
Default: "NoInitialTransform", which (obviously) means that there is no initial transform to be loaded.

The command line arguments used by this class are:

Command line arguments:

-t0: optional argument for elastix for specifying an initial transform parameter file.
example: -t0 TransformParameters.txt

-def: optional argument for transformix for specifying a set of points that have to be transformed.
example: -def inputPoints.txt
The inputPoints.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.
It is also possible to deform all points, thereby generating a deformation field image. This is done by:
example: -def all

Definition at line 132 of file elxTransformBase.h.

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

Public Types

typedef itk::AdvancedCombinationTransform< CoordRepType, itkGetStaticConstMacro(FixedImageDimension) > CombinationTransformType
 
typedef ConfigurationType::CommandLineArgumentMapType CommandLineArgumentMapType
 
typedef ConfigurationType::CommandLineEntryType CommandLineEntryType
 
typedef ComponentDatabase ComponentDatabaseType
 
typedef ComponentDatabaseType::ComponentDescriptionType ComponentDescriptionType
 
typedef Superclass::ConfigurationPointer ConfigurationPointer
 
typedef Superclass::ConfigurationType ConfigurationType
 
typedef ElastixType::CoordRepType CoordRepType
 
typedef Superclass::ElastixPointer ElastixPointer
 
typedef Superclass::ElastixType ElastixType
 
typedef ElastixType::FixedImageType FixedImageType
 
typedef CombinationTransformType::InitialTransformType InitialTransformType
 
typedef ITKBaseType::InputPointType InputPointType
 
typedef itk::AdvancedTransform< CoordRepType, itkGetStaticConstMacro(FixedImageDimension), itkGetStaticConstMacro(MovingImageDimension) > ITKBaseType
 
typedef RegistrationType::ITKBaseType ITKRegistrationType
 
typedef ElastixType::MovingImageType MovingImageType
 
typedef itk::Object ObjectType
 
typedef ITKRegistrationType::OptimizerType OptimizerType
 
typedef ITKBaseType::OutputPointType OutputPointType
 
typedef ElastixType::ParameterMapType ParameterMapType
 
typedef ITKBaseType::ParametersType ParametersType
 
typedef elx::ProgressCommand ProgressCommandType
 
typedef ComponentDatabase::PtrToCreator PtrToCreator
 
typedef Superclass::RegistrationPointer RegistrationPointer
 
typedef Superclass::RegistrationType RegistrationType
 
typedef OptimizerType::ScalesType ScalesType
 
typedef TransformBase Self
 
typedef BaseComponentSE< TElastix > Superclass
 
typedef ParametersType::ValueType ValueType
 
- Public Types inherited from elastix::BaseComponentSE< TElastix >
typedef ElastixType::ConfigurationPointer ConfigurationPointer
 
typedef ElastixType::ConfigurationType ConfigurationType
 
typedef ElastixType::Pointer ElastixPointer
 
typedef TElastix ElastixType
 
typedef RegistrationTypeRegistrationPointer
 
typedef ElastixType::RegistrationBaseType RegistrationType
 
typedef BaseComponentSE Self
 
typedef BaseComponent Superclass
 

Public Member Functions

virtual void AfterRegistrationBase (void)
 
virtual int BeforeAllBase (void)
 
virtual int BeforeAllTransformix (void)
 
virtual void BeforeRegistrationBase (void)
 
virtual void ComputeDeterminantOfSpatialJacobian (void) const
 
virtual void ComputeSpatialJacobian (void) const
 
virtual void CreateTransformParametersMap (const ParametersType &param, ParameterMapType *paramsMap) const
 
virtual const CombinationTransformTypeGetAsCombinationTransform (void) const
 
virtual CombinationTransformTypeGetAsCombinationTransform (void)
 
virtual ITKBaseTypeGetAsITKBaseType (void)
 
virtual const ITKBaseTypeGetAsITKBaseType (void) const
 
virtual const char * GetClassName () const
 
virtual const InitialTransformTypeGetInitialTransform (void) const
 
virtual const char * GetTransformParametersFileName () const
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
 itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
 
virtual void ReadFromFile (void)
 
virtual void ReadInitialTransformFromFile (const char *transformParameterFileName)
 
virtual void ReadInitialTransformFromVector (const vcl_size_t index)
 
virtual void SetFinalParameters (void)
 
virtual void SetInitialTransform (InitialTransformType *_arg)
 
virtual void SetReadWriteTransformParameters (const bool _arg)
 
virtual void SetTransformParametersFileName (const char *filename)
 
virtual void TransformPoints (void) const
 
virtual void TransformPointsAllPoints (void) const
 
virtual void TransformPointsSomePoints (const std::string filename) const
 
virtual void TransformPointsSomePointsVTK (const std::string filename) const
 
virtual void WriteToFile (const ParametersType &param) const
 
virtual void WriteToFile (void) const
 
- Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
virtual ConfigurationTypeGetConfiguration (void) const
 
virtual ElastixTypeGetElastix (void) const
 
virtual RegistrationPointer GetRegistration (void) const
 
virtual void SetConfiguration (ConfigurationType *_arg)
 
virtual void SetElastix (ElastixType *_arg)
 
- Public Member Functions inherited from elastix::BaseComponent
virtual void AfterEachIteration (void)
 
virtual void AfterEachIterationBase (void)
 
virtual void AfterEachResolution (void)
 
virtual void AfterEachResolutionBase (void)
 
virtual void AfterRegistration (void)
 
virtual int BeforeAll (void)
 
virtual void BeforeEachResolution (void)
 
virtual void BeforeEachResolutionBase (void)
 
virtual void BeforeRegistration (void)
 
std::string ConvertSecondsToDHMS (const double totalSeconds, const unsigned int precision) const
 
virtual const char * elxGetClassName (void) const
 
virtual const char * GetComponentLabel (void) const
 
virtual void SetComponentLabel (const char *label, unsigned int idx)
 

Protected Member Functions

void AutomaticScalesEstimation (ScalesType &scales) const
 
 TransformBase ()
 
virtual ~TransformBase ()
 
- Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
 BaseComponentSE ()
 
virtual ~BaseComponentSE ()
 
- Protected Member Functions inherited from elastix::BaseComponent
 BaseComponent ()
 
virtual ~BaseComponent ()
 

Protected Attributes

ParametersType m_FinalParameters
 
std::string m_TransformParametersFileName
 
ParametersTypem_TransformParametersPointer
 
- Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
ConfigurationPointer m_Configuration
 
ElastixPointer m_Elastix
 
RegistrationPointer m_Registration
 

Private Member Functions

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

Private Attributes

bool m_ReadWriteTransformParameters
 

Member Typedef Documentation

template<class TElastix>
typedef itk::AdvancedCombinationTransform< CoordRepType, itkGetStaticConstMacro( FixedImageDimension ) > elastix::TransformBase< TElastix >::CombinationTransformType

Definition at line 184 of file elxTransformBase.h.

Definition at line 150 of file elxTransformBase.h.

template<class TElastix>
typedef ConfigurationType ::CommandLineEntryType elastix::TransformBase< TElastix >::CommandLineEntryType

Definition at line 152 of file elxTransformBase.h.

template<class TElastix>
typedef ComponentDatabase elastix::TransformBase< TElastix >::ComponentDatabaseType

Typedef's from ComponentDatabase.

Definition at line 162 of file elxTransformBase.h.

Definition at line 163 of file elxTransformBase.h.

template<class TElastix>
typedef Superclass::ConfigurationPointer elastix::TransformBase< TElastix >::ConfigurationPointer

Definition at line 148 of file elxTransformBase.h.

template<class TElastix>
typedef Superclass::ConfigurationType elastix::TransformBase< TElastix >::ConfigurationType

Definition at line 147 of file elxTransformBase.h.

template<class TElastix>
typedef ElastixType::CoordRepType elastix::TransformBase< TElastix >::CoordRepType

Elastix typedef's.

Definition at line 157 of file elxTransformBase.h.

template<class TElastix>
typedef Superclass::ElastixPointer elastix::TransformBase< TElastix >::ElastixPointer

Definition at line 146 of file elxTransformBase.h.

template<class TElastix>
typedef Superclass::ElastixType elastix::TransformBase< TElastix >::ElastixType

Typedef's from Superclass.

Definition at line 142 of file elxTransformBase.h.

template<class TElastix>
typedef ElastixType::FixedImageType elastix::TransformBase< TElastix >::FixedImageType

Definition at line 158 of file elxTransformBase.h.

Definition at line 186 of file elxTransformBase.h.

template<class TElastix>
typedef ITKBaseType::InputPointType elastix::TransformBase< TElastix >::InputPointType

Typedef's for TransformPoint.

Definition at line 193 of file elxTransformBase.h.

template<class TElastix>
typedef itk::AdvancedTransform< CoordRepType, itkGetStaticConstMacro( FixedImageDimension ), itkGetStaticConstMacro( MovingImageDimension ) > elastix::TransformBase< TElastix >::ITKBaseType

Definition at line 182 of file elxTransformBase.h.

template<class TElastix>
typedef RegistrationType::ITKBaseType elastix::TransformBase< TElastix >::ITKRegistrationType

Typedefs needed for AutomaticScalesEstimation function

Definition at line 197 of file elxTransformBase.h.

template<class TElastix>
typedef ElastixType::MovingImageType elastix::TransformBase< TElastix >::MovingImageType

Definition at line 159 of file elxTransformBase.h.

template<class TElastix>
typedef itk::Object elastix::TransformBase< TElastix >::ObjectType

Other typedef's.

Definition at line 178 of file elxTransformBase.h.

template<class TElastix>
typedef ITKRegistrationType::OptimizerType elastix::TransformBase< TElastix >::OptimizerType

Definition at line 198 of file elxTransformBase.h.

template<class TElastix>
typedef ITKBaseType::OutputPointType elastix::TransformBase< TElastix >::OutputPointType

Definition at line 194 of file elxTransformBase.h.

template<class TElastix>
typedef ElastixType::ParameterMapType elastix::TransformBase< TElastix >::ParameterMapType

Typedef that is used in the elastix dll version.

Definition at line 202 of file elxTransformBase.h.

template<class TElastix>
typedef ITKBaseType::ParametersType elastix::TransformBase< TElastix >::ParametersType

Typedef's from Transform.

Definition at line 189 of file elxTransformBase.h.

template<class TElastix>
typedef elx::ProgressCommand elastix::TransformBase< TElastix >::ProgressCommandType

Typedef for the ProgressCommand.

Definition at line 167 of file elxTransformBase.h.

template<class TElastix>
typedef ComponentDatabase::PtrToCreator elastix::TransformBase< TElastix >::PtrToCreator

Definition at line 164 of file elxTransformBase.h.

template<class TElastix>
typedef Superclass::RegistrationPointer elastix::TransformBase< TElastix >::RegistrationPointer

Definition at line 154 of file elxTransformBase.h.

template<class TElastix>
typedef Superclass::RegistrationType elastix::TransformBase< TElastix >::RegistrationType

Definition at line 153 of file elxTransformBase.h.

template<class TElastix>
typedef OptimizerType::ScalesType elastix::TransformBase< TElastix >::ScalesType

Definition at line 199 of file elxTransformBase.h.

template<class TElastix>
typedef TransformBase elastix::TransformBase< TElastix >::Self

Standard ITK stuff.

Definition at line 138 of file elxTransformBase.h.

template<class TElastix>
typedef BaseComponentSE< TElastix > elastix::TransformBase< TElastix >::Superclass

Definition at line 139 of file elxTransformBase.h.

template<class TElastix>
typedef ParametersType::ValueType elastix::TransformBase< TElastix >::ValueType

Definition at line 190 of file elxTransformBase.h.

Constructor & Destructor Documentation

template<class TElastix>
elastix::TransformBase< TElastix >::TransformBase ( )
protected

The constructor.

template<class TElastix>
virtual elastix::TransformBase< TElastix >::~TransformBase ( )
protectedvirtual

The destructor.

template<class TElastix>
elastix::TransformBase< TElastix >::TransformBase ( const Self )
private

The private constructor.

Member Function Documentation

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::AfterRegistrationBase ( void  )
virtual

Execute stuff after the registration:

  • Get and set the final parameters for the resampler.

Reimplemented from elastix::BaseComponent.

template<class TElastix>
void elastix::TransformBase< TElastix >::AutomaticScalesEstimation ( ScalesType scales) const
protected

Estimate a scales vector AutomaticScalesEstimation works like this:

  • N=10000 points are sampled on a uniform grid on the fixed image.
  • Jacobians dT/dmu are computed
  • Scales_i = 1/N sum_x || dT / dmu_i ||^2
template<class TElastix>
virtual int elastix::TransformBase< TElastix >::BeforeAllBase ( void  )
virtual

Execute stuff before everything else:

  • Check the appearance of an initial transform.

Reimplemented from elastix::BaseComponent.

template<class TElastix>
virtual int elastix::TransformBase< TElastix >::BeforeAllTransformix ( void  )
virtual

Execute stuff before the actual transformation:

  • Check the appearance of inputpoints to be transformed.
template<class TElastix>
virtual void elastix::TransformBase< TElastix >::BeforeRegistrationBase ( void  )
virtual

Execute stuff before the actual registration:

  • Set the initial transform and how to group transforms.

Reimplemented from elastix::BaseComponent.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::ComputeDeterminantOfSpatialJacobian ( void  ) const
virtual

Function to compute the determinant of the spatial Jacobian.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::ComputeSpatialJacobian ( void  ) const
virtual

Function to compute the determinant of the spatial Jacobian.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::CreateTransformParametersMap ( const ParametersType param,
ParameterMapType paramsMap 
) const
virtual
template<class TElastix>
virtual const CombinationTransformType* elastix::TransformBase< TElastix >::GetAsCombinationTransform ( void  ) const
inlinevirtual

Definition at line 218 of file elxTransformBase.h.

template<class TElastix>
virtual CombinationTransformType* elastix::TransformBase< TElastix >::GetAsCombinationTransform ( void  )
inlinevirtual

Definition at line 224 of file elxTransformBase.h.

template<class TElastix>
virtual ITKBaseType* elastix::TransformBase< TElastix >::GetAsITKBaseType ( void  )
inlinevirtual

Cast to ITKBaseType.

Definition at line 205 of file elxTransformBase.h.

template<class TElastix>
virtual const ITKBaseType* elastix::TransformBase< TElastix >::GetAsITKBaseType ( void  ) const
inlinevirtual

Cast to ITKBaseType, to use in const functions.

Definition at line 212 of file elxTransformBase.h.

template<class TElastix>
virtual const char* elastix::TransformBase< TElastix >::GetClassName ( ) const
virtual
template<class TElastix>
virtual const InitialTransformType* elastix::TransformBase< TElastix >::GetInitialTransform ( void  ) const
virtual

Get the initial transform.

template<class TElastix>
virtual const char* elastix::TransformBase< TElastix >::GetTransformParametersFileName ( ) const
virtual

Get the TransformParametersFileName.

template<class TElastix>
elastix::TransformBase< TElastix >::itkStaticConstMacro ( FixedImageDimension  ,
unsigned  int,
FixedImageType::ImageDimension   
)

Get the dimension of the fixed image.

template<class TElastix>
elastix::TransformBase< TElastix >::itkStaticConstMacro ( MovingImageDimension  ,
unsigned  int,
MovingImageType::ImageDimension   
)

Get the dimension of the moving image.

template<class TElastix>
void elastix::TransformBase< TElastix >::operator= ( const Self )
private

The private copy constructor.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::ReadFromFile ( void  )
virtual
template<class TElastix>
virtual void elastix::TransformBase< TElastix >::ReadInitialTransformFromFile ( const char *  transformParameterFileName)
virtual

Function to read the initial transform parameters from a file.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::ReadInitialTransformFromVector ( const vcl_size_t  index)
virtual

Function to read the initial transform parameters from the internally stored configuration object.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::SetFinalParameters ( void  )
virtual

Makes sure that the final parameters from the registration components are copied, set, and stored.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::SetInitialTransform ( InitialTransformType _arg)
virtual

Set the initial transform.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::SetReadWriteTransformParameters ( const bool  _arg)
virtual

Macro for reading and writing the transform parameters in WriteToFile or not.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::SetTransformParametersFileName ( const char *  filename)
virtual

Set the TransformParametersFileName.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::TransformPoints ( void  ) const
virtual

Function to transform coordinates from fixed to moving image.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::TransformPointsAllPoints ( void  ) const
virtual

Function to transform all coordinates from fixed to moving image.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::TransformPointsSomePoints ( const std::string  filename) const
virtual

Function to transform coordinates from fixed to moving image.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::TransformPointsSomePointsVTK ( const std::string  filename) const
virtual

Function to transform coordinates from fixed to moving image, given as VTK file.

template<class TElastix>
virtual void elastix::TransformBase< TElastix >::WriteToFile ( const ParametersType param) const
virtual
template<class TElastix>
virtual void elastix::TransformBase< TElastix >::WriteToFile ( void  ) const
virtual

Function to write transform-parameters to a file.

Field Documentation

template<class TElastix>
ParametersType elastix::TransformBase< TElastix >::m_FinalParameters
protected

Definition at line 328 of file elxTransformBase.h.

template<class TElastix>
bool elastix::TransformBase< TElastix >::m_ReadWriteTransformParameters
private

Boolean to decide whether or not the transform parameters are written.

Definition at line 338 of file elxTransformBase.h.

template<class TElastix>
std::string elastix::TransformBase< TElastix >::m_TransformParametersFileName
protected

Definition at line 327 of file elxTransformBase.h.

template<class TElastix>
ParametersType* elastix::TransformBase< TElastix >::m_TransformParametersPointer
protected

Member variables.

Definition at line 326 of file elxTransformBase.h.



Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo