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

#include <elxRegistrationBase.h>

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

Public Types

typedef
Superclass::ConfigurationPointer 
ConfigurationPointer
 
typedef
Superclass::ConfigurationType 
ConfigurationType
 
typedef Superclass::ElastixPointer ElastixPointer
 
typedef Superclass::ElastixType ElastixType
 
typedef ElastixType::FixedImageType FixedImageType
 
typedef
itk::MultiResolutionImageRegistrationMethod2
< FixedImageType,
MovingImageType
ITKBaseType
 
typedef
ElastixType::MovingImageType 
MovingImageType
 
typedef
Superclass::RegistrationPointer 
RegistrationPointer
 
typedef
Superclass::RegistrationType 
RegistrationType
 
typedef RegistrationBase Self
 
typedef BaseComponentSE< TElastix > Superclass
 
typedef std::vector< boolUseMaskErosionArrayType
 
- 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 ITKBaseTypeGetAsITKBaseType (void)
 
virtual const ITKBaseTypeGetAsITKBaseType (void) const
 
virtual const char * GetClassName () const
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
 itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
 
virtual bool ReadMaskParameters (UseMaskErosionArrayType &useMaskErosionArray, const unsigned int nrOfMasks, const std::string &whichMask, const unsigned int level) 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 void AfterRegistrationBase (void)
 
virtual int BeforeAll (void)
 
virtual int BeforeAllBase (void)
 
virtual void BeforeEachResolution (void)
 
virtual void BeforeEachResolutionBase (void)
 
virtual void BeforeRegistration (void)
 
virtual void BeforeRegistrationBase (void)
 
virtual const char * elxGetClassName (void) const
 
virtual const char * GetComponentLabel (void) const
 
virtual void SetComponentLabel (const char *label, unsigned int idx)
 

Protected Types

typedef
ITKBaseType::FixedImagePyramidType 
FixedImagePyramidType
 
typedef
FixedMaskErodeFilterType::Pointer 
FixedMaskErodeFilterPointer
 
typedef
itk::ErodeMaskImageFilter
< FixedMaskImageType
FixedMaskErodeFilterType
 
typedef FixedMaskImageType::Pointer FixedMaskImagePointer
 
typedef ElastixType::FixedMaskType FixedMaskImageType
 
typedef
FixedMaskSpatialObjectType::Pointer 
FixedMaskSpatialObjectPointer
 
typedef
itk::ImageMaskSpatialObject2
< itkGetStaticConstMacro(FixedImageDimension) > 
FixedMaskSpatialObjectType
 
typedef ElastixType::MaskPixelType MaskPixelType
 
typedef
ITKBaseType::MovingImagePyramidType 
MovingImagePyramidType
 
typedef
MovingMaskErodeFilterType::Pointer 
MovingMaskErodeFilterPointer
 
typedef
itk::ErodeMaskImageFilter
< MovingMaskImageType
MovingMaskErodeFilterType
 
typedef
MovingMaskImageType::Pointer 
MovingMaskImagePointer
 
typedef ElastixType::MovingMaskType MovingMaskImageType
 
typedef
MovingMaskSpatialObjectType::Pointer 
MovingMaskSpatialObjectPointer
 
typedef
itk::ImageMaskSpatialObject2
< itkGetStaticConstMacro(MovingImageDimension) > 
MovingMaskSpatialObjectType
 

Protected Member Functions

FixedMaskSpatialObjectPointer GenerateFixedMaskSpatialObject (const FixedMaskImageType *maskImage, bool useMaskErosion, const FixedImagePyramidType *pyramid, unsigned int level) const
 
MovingMaskSpatialObjectPointer GenerateMovingMaskSpatialObject (const MovingMaskImageType *maskImage, bool useMaskErosion, const MovingImagePyramidType *pyramid, unsigned int level) const
 
 RegistrationBase ()
 
virtual ~RegistrationBase ()
 
- Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
 BaseComponentSE ()
 
virtual ~BaseComponentSE ()
 
- Protected Member Functions inherited from elastix::BaseComponent
 BaseComponent ()
 
virtual ~BaseComponent ()
 

Private Member Functions

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

Additional Inherited Members

- Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
ConfigurationPointer m_Configuration
 
ElastixPointer m_Elastix
 
RegistrationPointer m_Registration
 

Detailed Description

template<class TElastix>
class elastix::RegistrationBase< TElastix >

This class is the elastix base class for all Registration schemes.

This class contains all the common functionality for Registrations.

Parameters:

ErodeMask: a flag to determine if the masks should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeMask "false")
The default is "true". The parameter may be specified for each resolution differently, but that's not obliged. The actual amount of erosion depends on the image pyramid.
Erosion of the mask prevents the border / edge of the mask taken into account. This can be useful for example for ultrasound images, where you don't want to take into account values outside the US-beam, but where you also don't want to match the edge / border of this beam. For example for MRI's of the head, the borders of the head may be wanted to match, and there erosion should be avoided.

ErodeFixedMask: a flag to determine if the fixed mask(s) should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeFixedMask "true" "false") This setting overrules ErodeMask.

ErodeMovingMask: a flag to determine if the moving mask(s) should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeMovingMask "true" "false") This setting overrules ErodeMask.

ErodeFixedMask<i>: a flag to determine if the i-th fixed mask should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeFixedMask2 "true" "false") This setting overrules ErodeMask and ErodeFixedMask.

ErodeMovingMask<i>: a flag to determine if the i-th moving mask should be eroded from one resolution level to another. Choose from {"true", "false"}
example: (ErodeMovingMask2 "true" "false") This setting overrules ErodeMask and ErodeMovingMask.

Definition at line 71 of file elxRegistrationBase.h.

Member Typedef Documentation

Definition at line 86 of file elxRegistrationBase.h.

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

Definition at line 85 of file elxRegistrationBase.h.

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

Definition at line 84 of file elxRegistrationBase.h.

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

Typedef's from Elastix.

Definition at line 80 of file elxRegistrationBase.h.

template<class TElastix>
typedef ITKBaseType::FixedImagePyramidType elastix::RegistrationBase< TElastix >::FixedImagePyramidType
protected

Definition at line 168 of file elxRegistrationBase.h.

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

Other typedef's.

Definition at line 91 of file elxRegistrationBase.h.

template<class TElastix>
typedef FixedMaskErodeFilterType::Pointer elastix::RegistrationBase< TElastix >::FixedMaskErodeFilterPointer
protected

Definition at line 173 of file elxRegistrationBase.h.

template<class TElastix>
typedef itk::ErodeMaskImageFilter< FixedMaskImageType > elastix::RegistrationBase< TElastix >::FixedMaskErodeFilterType
protected

Some typedef's used for eroding the masks

Definition at line 172 of file elxRegistrationBase.h.

template<class TElastix>
typedef FixedMaskImageType::Pointer elastix::RegistrationBase< TElastix >::FixedMaskImagePointer
protected

Definition at line 157 of file elxRegistrationBase.h.

template<class TElastix>
typedef ElastixType::FixedMaskType elastix::RegistrationBase< TElastix >::FixedMaskImageType
protected

Definition at line 155 of file elxRegistrationBase.h.

template<class TElastix>
typedef FixedMaskSpatialObjectType::Pointer elastix::RegistrationBase< TElastix >::FixedMaskSpatialObjectPointer
protected

Definition at line 164 of file elxRegistrationBase.h.

template<class TElastix>
typedef itk::ImageMaskSpatialObject2< itkGetStaticConstMacro( FixedImageDimension ) > elastix::RegistrationBase< TElastix >::FixedMaskSpatialObjectType
protected

Definition at line 160 of file elxRegistrationBase.h.

Typedef for ITKBaseType.

Definition at line 101 of file elxRegistrationBase.h.

template<class TElastix>
typedef ElastixType::MaskPixelType elastix::RegistrationBase< TElastix >::MaskPixelType
protected

Typedef's for mask support.

Definition at line 154 of file elxRegistrationBase.h.

template<class TElastix>
typedef ITKBaseType::MovingImagePyramidType elastix::RegistrationBase< TElastix >::MovingImagePyramidType
protected

Definition at line 169 of file elxRegistrationBase.h.

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

Definition at line 92 of file elxRegistrationBase.h.

template<class TElastix>
typedef MovingMaskErodeFilterType::Pointer elastix::RegistrationBase< TElastix >::MovingMaskErodeFilterPointer
protected

Definition at line 175 of file elxRegistrationBase.h.

template<class TElastix>
typedef itk::ErodeMaskImageFilter< MovingMaskImageType > elastix::RegistrationBase< TElastix >::MovingMaskErodeFilterType
protected

Definition at line 174 of file elxRegistrationBase.h.

template<class TElastix>
typedef MovingMaskImageType::Pointer elastix::RegistrationBase< TElastix >::MovingMaskImagePointer
protected

Definition at line 158 of file elxRegistrationBase.h.

template<class TElastix>
typedef ElastixType::MovingMaskType elastix::RegistrationBase< TElastix >::MovingMaskImageType
protected

Definition at line 156 of file elxRegistrationBase.h.

Definition at line 166 of file elxRegistrationBase.h.

template<class TElastix>
typedef itk::ImageMaskSpatialObject2< itkGetStaticConstMacro( MovingImageDimension ) > elastix::RegistrationBase< TElastix >::MovingMaskSpatialObjectType
protected

Definition at line 162 of file elxRegistrationBase.h.

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

Definition at line 88 of file elxRegistrationBase.h.

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

Definition at line 87 of file elxRegistrationBase.h.

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

Standard ITK stuff.

Definition at line 76 of file elxRegistrationBase.h.

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

Definition at line 77 of file elxRegistrationBase.h.

template<class TElastix>
typedef std::vector< bool > elastix::RegistrationBase< TElastix >::UseMaskErosionArrayType

Typedef for mask erosion options

Definition at line 104 of file elxRegistrationBase.h.

Constructor & Destructor Documentation

template<class TElastix>
elastix::RegistrationBase< TElastix >::RegistrationBase ( )
inlineprotected

The constructor.

Definition at line 149 of file elxRegistrationBase.h.

template<class TElastix>
virtual elastix::RegistrationBase< TElastix >::~RegistrationBase ( )
inlineprotectedvirtual

The destructor.

Definition at line 151 of file elxRegistrationBase.h.

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

The private constructor.

Member Function Documentation

template<class TElastix>
FixedMaskSpatialObjectPointer elastix::RegistrationBase< TElastix >::GenerateFixedMaskSpatialObject ( const FixedMaskImageType maskImage,
bool  useMaskErosion,
const FixedImagePyramidType pyramid,
unsigned int  level 
) const
protected

Generate a spatial object from a mask image, possibly after eroding the image Input:

  • the mask as an image, consisting of 1's and 0's;
  • a boolean that determines whether mask erosion is needed
  • the image pyramid, which is needed to determines the amount of erosion (can be set to 0 if useMaskErosion == false
  • the resolution level Output:
  • the mask as a spatial object, which can be set in a metric for example

This function is used by the registration components

template<class TElastix>
MovingMaskSpatialObjectPointer elastix::RegistrationBase< TElastix >::GenerateMovingMaskSpatialObject ( const MovingMaskImageType maskImage,
bool  useMaskErosion,
const MovingImagePyramidType pyramid,
unsigned int  level 
) const
protected

Generate a spatial object from a mask image, possibly after eroding the image Input:

  • the mask as an image, consisting of 1's and 0's;
  • a boolean that determines whether mask erosion is needed
  • the image pyramid, which is needed to determines the amount of erosion (can be set to 0 if useMaskErosion == false
  • the resolution level Output:
  • the mask as a spatial object, which can be set in a metric for example

This function is used by the registration components

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

Cast to ITKBaseType.

Definition at line 107 of file elxRegistrationBase.h.

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

Cast to ITKBaseType, to use in const functions.

Definition at line 114 of file elxRegistrationBase.h.

template<class TElastix>
virtual const char* elastix::RegistrationBase< TElastix >::GetClassName ( ) const
virtual
template<class TElastix>
elastix::RegistrationBase< TElastix >::itkStaticConstMacro ( FixedImageDimension  ,
unsigned  int,
FixedImageType::ImageDimension   
)

Get the dimension of the fixed image.

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

Get the dimension of the moving image.

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

The private copy constructor.

template<class TElastix>
virtual bool elastix::RegistrationBase< TElastix >::ReadMaskParameters ( UseMaskErosionArrayType useMaskErosionArray,
const unsigned int  nrOfMasks,
const std::string &  whichMask,
const unsigned int  level 
) const
virtual

Function to read the mask parameters from the configuration object.

Todo:
: move to RegistrationBase Input:
  • an array that will contain a bool for each mask, saying if it needs erosion or not
  • the number of masks
  • whichMask: "Fixed" or "Moving"
  • the current resolution level Output:
  • The function returns a bool that says if any mask needs erosion. If the number of masks is zero, this bool will be false.
  • The useMaskErosionArray, which indicates for each mask whether it should be eroded. If the number of masks is zero, this array will be empty.

The function first checks Erode<Fixed,Moving>Mask<i>, with i the mask number, then Erode<Fixed,Moving>Mask, and finally ErodeMask. So, if you do not specify Erode<Fixed,Moving>Mask<i>, Erode<Fixed,Moving>Mask is tried, and then ErodeMask. If you specify ErodeMask, that option will be used for all masks, fixed and moving! All options can be specified for each resolution specifically, or at once for all resolutions.



Generated on 11-03-2014 for elastix by doxygen 1.8.6 elastix logo