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>

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 75 of file elxRegistrationBase.h.

+ Inheritance diagram for elastix::RegistrationBase< TElastix >:

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, MovingImageTypeITKBaseType
 
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 Configuration::Pointer ConfigurationPointer
 
typedef Configuration ConfigurationType
 
typedef itk::WeakPointer< ElastixTypeElastixPointer
 
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 >
ConfigurationTypeGetConfiguration (void) const
 
ElastixTypeGetElastix (void) const
 
RegistrationPointer GetRegistration (void) const
 
 ITK_DISALLOW_COPY_AND_ASSIGN (BaseComponentSE)
 
void SetConfiguration (ConfigurationType *_arg)
 
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
 
const char * GetComponentLabel (void) const
 
 ITK_DISALLOW_COPY_AND_ASSIGN (BaseComponent)
 
 itkTypeMacroNoParent (BaseComponent)
 
void SetComponentLabel (const char *label, unsigned int idx)
 

Protected Types

typedef ITKBaseType::FixedImagePyramidType FixedImagePyramidType
 
typedef FixedMaskErodeFilterType::Pointer FixedMaskErodeFilterPointer
 
typedef itk::ErodeMaskImageFilter< FixedMaskImageTypeFixedMaskErodeFilterType
 
typedef FixedMaskImageType::Pointer FixedMaskImagePointer
 
typedef ElastixType::FixedMaskType FixedMaskImageType
 
typedef FixedMaskSpatialObjectType::Pointer FixedMaskSpatialObjectPointer
 
typedef itk::ImageMaskSpatialObject< itkGetStaticConstMacro(FixedImageDimension) > FixedMaskSpatialObjectType
 
typedef ElastixType::MaskPixelType MaskPixelType
 
typedef ITKBaseType::MovingImagePyramidType MovingImagePyramidType
 
typedef MovingMaskErodeFilterType::Pointer MovingMaskErodeFilterPointer
 
typedef itk::ErodeMaskImageFilter< MovingMaskImageTypeMovingMaskErodeFilterType
 
typedef MovingMaskImageType::Pointer MovingMaskImagePointer
 
typedef ElastixType::MovingMaskType MovingMaskImageType
 
typedef MovingMaskSpatialObjectType::Pointer MovingMaskSpatialObjectPointer
 
typedef itk::ImageMaskSpatialObject< 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 ()
 
 ~RegistrationBase () override
 
- Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
 BaseComponentSE ()=default
 
 ~BaseComponentSE () override=default
 
- Protected Member Functions inherited from elastix::BaseComponent
 BaseComponent ()=default
 
virtual ~BaseComponent ()=default
 

Private Member Functions

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

Additional Inherited Members

- Static Public Member Functions inherited from elastix::BaseComponent
static std::string ConvertSecondsToDHMS (const double totalSeconds, const unsigned int precision)
 
static void InitializeElastixExecutable ()
 
static bool IsElastixLibrary ()
 
- Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
ConfigurationPointer m_Configuration {}
 
ElastixPointer m_Elastix {}
 
RegistrationPointer m_Registration {}
 

Member Typedef Documentation

◆ ConfigurationPointer

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

Definition at line 90 of file elxRegistrationBase.h.

◆ ConfigurationType

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

Definition at line 89 of file elxRegistrationBase.h.

◆ ElastixPointer

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

Definition at line 88 of file elxRegistrationBase.h.

◆ ElastixType

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

Typedef's from Elastix.

Definition at line 87 of file elxRegistrationBase.h.

◆ FixedImagePyramidType

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

Definition at line 172 of file elxRegistrationBase.h.

◆ FixedImageType

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

Other typedef's.

Definition at line 95 of file elxRegistrationBase.h.

◆ FixedMaskErodeFilterPointer

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

Definition at line 177 of file elxRegistrationBase.h.

◆ FixedMaskErodeFilterType

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

Some typedef's used for eroding the masks

Definition at line 176 of file elxRegistrationBase.h.

◆ FixedMaskImagePointer

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

Definition at line 161 of file elxRegistrationBase.h.

◆ FixedMaskImageType

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

Definition at line 159 of file elxRegistrationBase.h.

◆ FixedMaskSpatialObjectPointer

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

Definition at line 168 of file elxRegistrationBase.h.

◆ FixedMaskSpatialObjectType

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

Definition at line 164 of file elxRegistrationBase.h.

◆ ITKBaseType

template<class TElastix >
typedef itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType > elastix::RegistrationBase< TElastix >::ITKBaseType

Typedef for ITKBaseType.

Definition at line 105 of file elxRegistrationBase.h.

◆ MaskPixelType

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

Typedef's for mask support.

Definition at line 158 of file elxRegistrationBase.h.

◆ MovingImagePyramidType

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

Definition at line 173 of file elxRegistrationBase.h.

◆ MovingImageType

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

Definition at line 96 of file elxRegistrationBase.h.

◆ MovingMaskErodeFilterPointer

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

Definition at line 179 of file elxRegistrationBase.h.

◆ MovingMaskErodeFilterType

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

Definition at line 178 of file elxRegistrationBase.h.

◆ MovingMaskImagePointer

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

Definition at line 162 of file elxRegistrationBase.h.

◆ MovingMaskImageType

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

Definition at line 160 of file elxRegistrationBase.h.

◆ MovingMaskSpatialObjectPointer

template<class TElastix >
typedef MovingMaskSpatialObjectType::Pointer elastix::RegistrationBase< TElastix >::MovingMaskSpatialObjectPointer
protected

Definition at line 170 of file elxRegistrationBase.h.

◆ MovingMaskSpatialObjectType

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

Definition at line 166 of file elxRegistrationBase.h.

◆ RegistrationPointer

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

Definition at line 92 of file elxRegistrationBase.h.

◆ RegistrationType

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

Definition at line 91 of file elxRegistrationBase.h.

◆ Self

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

Standard ITK stuff.

Definition at line 80 of file elxRegistrationBase.h.

◆ Superclass

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

Definition at line 81 of file elxRegistrationBase.h.

◆ UseMaskErosionArrayType

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

Typedef for mask erosion options

Definition at line 108 of file elxRegistrationBase.h.

Constructor & Destructor Documentation

◆ RegistrationBase() [1/2]

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

The constructor.

Definition at line 153 of file elxRegistrationBase.h.

◆ ~RegistrationBase()

template<class TElastix >
elastix::RegistrationBase< TElastix >::~RegistrationBase ( )
inlineoverrideprotected

The destructor.

Definition at line 155 of file elxRegistrationBase.h.

◆ RegistrationBase() [2/2]

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

The private constructor.

Member Function Documentation

◆ GenerateFixedMaskSpatialObject()

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

◆ GenerateMovingMaskSpatialObject()

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

◆ GetAsITKBaseType() [1/2]

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

Cast to ITKBaseType.

Definition at line 111 of file elxRegistrationBase.h.

◆ GetAsITKBaseType() [2/2]

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

Cast to ITKBaseType, to use in const functions.

Definition at line 118 of file elxRegistrationBase.h.

◆ GetClassName()

template<class TElastix >
virtual const char * elastix::RegistrationBase< TElastix >::GetClassName ( ) const
virtual

◆ itkStaticConstMacro() [1/2]

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

Get the dimension of the fixed image.

◆ itkStaticConstMacro() [2/2]

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

Get the dimension of the moving image.

◆ operator=()

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

The private copy constructor.

◆ ReadMaskParameters()

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 1667476801 for elastix by doxygen 1.9.4 elastix logo