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>

Inheritance diagram for elastix::TransformBase< TElastix >:
Inheritance graph
[legend]
Collaboration diagram for elastix::TransformBase< TElastix >:
Collaboration 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 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 const
CombinationTransformType
GetAsCombinationTransform (void) const
virtual CombinationTransformTypeGetAsCombinationTransform (void)
virtual ITKBaseTypeGetAsITKBaseType (void)
virtual const ITKBaseTypeGetAsITKBaseType (void) const
virtual const char * GetClassName () const
virtual const
InitialTransformType
GetInitialTransform (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 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)
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

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.
Transform 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: "Compose".
Transform Parameters:
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.
Transform Parameters:
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.
Transform Parameters:
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.
Transform Parameters:
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.
Transform Parameters:
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).
Transform Parameters:
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.
Transform Parameters:
NumberOfParameters: the length of the transform parameter vector.
example (NumberOfParameters 722)
Transform Parameters:
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
Command line arguments:
-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 128 of file elxTransformBase.h.

Member Typedef Documentation

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

Definition at line 180 of file elxTransformBase.h.

Definition at line 146 of file elxTransformBase.h.

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

Definition at line 148 of file elxTransformBase.h.

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

Typedef's from ComponentDatabase.

Definition at line 158 of file elxTransformBase.h.

Definition at line 159 of file elxTransformBase.h.

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

Definition at line 144 of file elxTransformBase.h.

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

Definition at line 143 of file elxTransformBase.h.

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

Elastix typedef's.

Definition at line 153 of file elxTransformBase.h.

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

Definition at line 142 of file elxTransformBase.h.

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

Typedef's from Superclass.

Definition at line 138 of file elxTransformBase.h.

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

Definition at line 154 of file elxTransformBase.h.

Definition at line 182 of file elxTransformBase.h.

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

Typedef's for TransformPoint.

Definition at line 189 of file elxTransformBase.h.

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

Definition at line 178 of file elxTransformBase.h.

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

Typedefs needed for AutomaticScalesEstimation function

Definition at line 193 of file elxTransformBase.h.

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

Definition at line 155 of file elxTransformBase.h.

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

Other typedef's.

Definition at line 174 of file elxTransformBase.h.

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

Definition at line 194 of file elxTransformBase.h.

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

Definition at line 190 of file elxTransformBase.h.

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

Typedef's from Transform.

Definition at line 185 of file elxTransformBase.h.

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

Typedef for the ProgressCommand.

Definition at line 163 of file elxTransformBase.h.

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

Definition at line 160 of file elxTransformBase.h.

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

Definition at line 150 of file elxTransformBase.h.

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

Definition at line 149 of file elxTransformBase.h.

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

Definition at line 195 of file elxTransformBase.h.

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

Standard ITK stuff.

Definition at line 134 of file elxTransformBase.h.

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

Definition at line 135 of file elxTransformBase.h.

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

Definition at line 186 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 const CombinationTransformType* elastix::TransformBase< TElastix >::GetAsCombinationTransform ( void  ) const
inlinevirtual

Definition at line 209 of file elxTransformBase.h.

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

Definition at line 213 of file elxTransformBase.h.

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

Cast to ITKBaseType.

Definition at line 198 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 204 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 >::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 307 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 317 of file elxTransformBase.h.

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

Definition at line 306 of file elxTransformBase.h.

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

Member variables.

Definition at line 305 of file elxTransformBase.h.



Generated on 21-03-2014 for elastix by doxygen 1.8.1.2 elastix logo