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
elastix::MultiMetricMultiResolutionRegistration< TElastix > Class Template Reference

#include <elxMultiMetricMultiResolutionRegistration.h>

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

Public Types

typedef
Superclass1::CombinationMetricPointer 
CombinationMetricPointer
typedef
Superclass1::CombinationMetricType 
CombinationMetricType
typedef
Superclass2::ConfigurationPointer 
ConfigurationPointer
typedef
Superclass2::ConfigurationType 
ConfigurationType
typedef SmartPointer< const SelfConstPointer
typedef Superclass2::ElastixPointer ElastixPointer
typedef Superclass2::ElastixType ElastixType
typedef
Superclass1::FixedImageConstPointer 
FixedImageConstPointer
typedef
Superclass1::FixedImagePyramidPointer 
FixedImagePyramidPointer
typedef
Superclass1::FixedImagePyramidType 
FixedImagePyramidType
typedef
Superclass1::FixedImageRegionType 
FixedImageRegionType
typedef Superclass1::FixedImageType FixedImageType
typedef
Superclass1::InterpolatorPointer 
InterpolatorPointer
typedef
Superclass1::InterpolatorType 
InterpolatorType
typedef Superclass2::ITKBaseType ITKBaseType
typedef Superclass1::MetricPointer MetricPointer
typedef Superclass1::MetricType MetricType
typedef
Superclass1::MovingImageConstPointer 
MovingImageConstPointer
typedef
Superclass1::MovingImagePyramidPointer 
MovingImagePyramidPointer
typedef
Superclass1::MovingImagePyramidType 
MovingImagePyramidType
typedef
Superclass1::MovingImageType 
MovingImageType
typedef
Superclass1::OptimizerPointer 
OptimizerPointer
typedef Superclass1::OptimizerType OptimizerType
typedef Superclass1::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef
Superclass2::RegistrationPointer 
RegistrationPointer
typedef
Superclass2::RegistrationType 
RegistrationType
typedef
MultiMetricMultiResolutionRegistration 
Self
typedef
MultiMetricMultiResolutionImageRegistrationMethod
< typename RegistrationBase
< TElastix >::FixedImageType,
typename RegistrationBase
< TElastix >::MovingImageType
Superclass1
typedef RegistrationBase
< TElastix > 
Superclass2
typedef
Superclass1::TransformPointer 
TransformPointer
typedef Superclass1::TransformType TransformType
typedef
Superclass2::UseMaskErosionArrayType 
UseMaskErosionArrayType

Public Member Functions

virtual void AfterEachIteration (void)
virtual void BeforeEachResolution (void)
virtual void BeforeRegistration (void)
 elxClassNameMacro ("MultiMetricMultiResolutionRegistration")
virtual const char * GetClassName () const
 itkStaticConstMacro (FixedImageDimension, unsigned int, Superclass2::FixedImageDimension)
 itkStaticConstMacro (MovingImageDimension, unsigned int, Superclass2::MovingImageDimension)

Static Public Member Functions

static Pointer New ()

Protected Types

typedef
Superclass2::FixedMaskImagePointer 
FixedMaskImagePointer
typedef
Superclass2::FixedMaskImageType 
FixedMaskImageType
typedef
Superclass2::FixedMaskSpatialObjectPointer 
FixedMaskSpatialObjectPointer
typedef
Superclass2::FixedMaskSpatialObjectType 
FixedMaskSpatialObjectType
typedef Superclass2::MaskPixelType MaskPixelType
typedef
Superclass2::MovingMaskImagePointer 
MovingMaskImagePointer
typedef
Superclass2::MovingMaskImageType 
MovingMaskImageType
typedef
Superclass2::MovingMaskSpatialObjectPointer 
MovingMaskSpatialObjectPointer
typedef
Superclass2::MovingMaskSpatialObjectType 
MovingMaskSpatialObjectType
typedef TimerType::Pointer TimerPointer
typedef tmr::Timer TimerType

Protected Member Functions

 MultiMetricMultiResolutionRegistration ()
virtual void SetComponents (void)
void UpdateFixedMasks (unsigned int level)
void UpdateMovingMasks (unsigned int level)
virtual ~MultiMetricMultiResolutionRegistration ()

Protected Attributes

bool m_ShowExactMetricValue

Private Member Functions

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

Detailed Description

template<class TElastix>
class elastix::MultiMetricMultiResolutionRegistration< TElastix >

A registration framework based on the itk::MultiMetricMultiResolutionImageRegistrationMethod.

This MultiMetricMultiResolutionRegistration gives a framework for registration with a multi-resolution approach, using multiple metrics. The metrics can use the same pair of images/image pyramids/interpolators /masks, but also different pairs of fixed/moving images etc. If the metrics use the same moving image and the same moving image pyramid, they can use the same interpolator. If multiple moving images are used, enter multiple interpolators, possibly of the same type: Like this for example:
(Interpolator "BSplineInterpolator" "BSplineInterpolator")
For each metric a different instance of an image sampler can be used:
(ImageSampler "Random" "Random")
or:
(ImageSampler "Random" "Full")

Note, that the number of metrics should always be larger than or equal to the number of fixed/moving images, interpolators, image pyramids etc. Also, when all metrics need an image sampler, for each fixed image pyramid, an image sampler must be provided. In some cases, one sampler can be used for all metrics. This is the case when multiple metrics are desired, but

The parameters used in this class are:

Parameters:
Registration: Select this registration framework as follows:
(Registration "MultiMetricMultiResolutionRegistration")
Parameters:
NumberOfResolutions: the number of resolutions used.
example: (NumberOfResolutions 4)
The default is 3.
Parameters:
Metric<i>Weight: The weight for the i-th metric, in each resolution.
example: (Metric0Weight 0.5 0.5 0.8)
example: (Metric1Weight 0.5 0.5 0.2)
The default is 1 / numberOfMetrics.
Parameters:
Metric<i>RelativeWeight: The relative weight $rw_i$ for the i-th metric, in each resolution.
This is an alternative to the default Metric<i>Weight and can be selected with the parameter UseRelativeWeights. The weight $w_i$ is computed in each iteration based on the magnitude of the metric derivative (gradient) $|g_i|$ related to that of the first metric $|g_0|$. It is done such that the fraction $|g_0|/|g_i|$ is identical to $rw_0/rw_i$, so

\[w_i = rw_i |g_0|/|g_i|.\]

example: (Metric0RelativeWeight 0.5 0.5 0.8)
example: (Metric1RelativeWeight 0.5 0.5 0.2)
The default is 1 / numberOfMetrics.
Parameters:
UseRelativeWeights: Whether relative weights are used or simple static, fixed weights.
example: (UseRelativeWeights "false" "true")
The default is "false", which means using Metric<i>Weight.
Parameters:
Metric<i>Use: Whether the i-th metric is only computed or also used, in each resolution.
example: (Metric0Use "false" "true")
example: (Metric1Use "true" "false")
The default is "true".

Definition at line 95 of file elxMultiMetricMultiResolutionRegistration.h.


Member Typedef Documentation

template<class TElastix >
typedef SmartPointer<const Self> elastix::MultiMetricMultiResolutionRegistration< TElastix >::ConstPointer

Typedef's from Elastix.

Reimplemented from elastix::RegistrationBase< TElastix >.

Definition at line 176 of file elxMultiMetricMultiResolutionRegistration.h.

Type of the Fixed image multiresolution pyramid.

Reimplemented from elastix::RegistrationBase< TElastix >.

Definition at line 159 of file elxMultiMetricMultiResolutionRegistration.h.

Typedef's inherited from Superclass1. Type of the Fixed image.

Reimplemented from elastix::RegistrationBase< TElastix >.

Definition at line 134 of file elxMultiMetricMultiResolutionRegistration.h.

template<class TElastix >
typedef Superclass2::MaskPixelType elastix::MultiMetricMultiResolutionRegistration< TElastix >::MaskPixelType [protected]

Typedef's for mask support.

Reimplemented from elastix::RegistrationBase< TElastix >.

Definition at line 222 of file elxMultiMetricMultiResolutionRegistration.h.

Type of the moving image multiresolution pyramid.

Reimplemented from elastix::RegistrationBase< TElastix >.

Definition at line 163 of file elxMultiMetricMultiResolutionRegistration.h.

Type of the Moving image.

Reimplemented from elastix::RegistrationBase< TElastix >.

Definition at line 139 of file elxMultiMetricMultiResolutionRegistration.h.

Type of the Transformation parameters. This is the same type used to represent the search space of the optimization algorithm.

Reimplemented from itk::MultiMetricMultiResolutionImageRegistrationMethod< RegistrationBase< TElastix >::FixedImageType, RegistrationBase< TElastix >::MovingImageType >.

Definition at line 169 of file elxMultiMetricMultiResolutionRegistration.h.

template<class TElastix >
typedef SmartPointer<Self> elastix::MultiMetricMultiResolutionRegistration< TElastix >::Pointer

Standard ITK: Self

Reimplemented from elastix::RegistrationBase< TElastix >.

Definition at line 105 of file elxMultiMetricMultiResolutionRegistration.h.

Standard ITK: Superclasses.

Definition at line 111 of file elxMultiMetricMultiResolutionRegistration.h.

template<class TElastix >
typedef RegistrationBase<TElastix> elastix::MultiMetricMultiResolutionRegistration< TElastix >::Superclass2

Definition at line 112 of file elxMultiMetricMultiResolutionRegistration.h.

template<class TElastix >
typedef TimerType::Pointer elastix::MultiMetricMultiResolutionRegistration< TElastix >::TimerPointer [protected]

Typedef for timer.

Definition at line 219 of file elxMultiMetricMultiResolutionRegistration.h.

template<class TElastix >
typedef tmr::Timer elastix::MultiMetricMultiResolutionRegistration< TElastix >::TimerType [protected]

Typedef for timer.

Definition at line 214 of file elxMultiMetricMultiResolutionRegistration.h.


Constructor & Destructor Documentation

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

The constructor.

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

The destructor.

Definition at line 214 of file elxMultiMetricMultiResolutionRegistration.h.

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

The private constructor.


Member Function Documentation

template<class TElastix >
virtual void elastix::MultiMetricMultiResolutionRegistration< TElastix >::AfterEachIteration ( void  ) [virtual]

Execute stuff after each iteration

  • Print the latest computed submetric values to screen.

Reimplemented from elastix::BaseComponent.

template<class TElastix >
virtual void elastix::MultiMetricMultiResolutionRegistration< TElastix >::BeforeEachResolution ( void  ) [virtual]

Execute stuff before each resolution:

  • Update masks with an erosion.
  • Set the metric weights.

Reimplemented from elastix::BaseComponent.

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

Execute stuff before the actual registration:

  • Connect all components to the registration framework.
  • Set the number of resolution levels.
  • Set the fixed image regions.
  • Add the sub metric columns to the iteration info object.

Reimplemented from elastix::BaseComponent.

template<class TElastix >
elastix::MultiMetricMultiResolutionRegistration< TElastix >::elxClassNameMacro ( "MultiMetricMultiResolutionRegistration< TElastix >"  )

Name of this class. Use this name in the parameter file to select this specific registration framework.
example: (Registration "MultiMetricMultiResolutionRegistration")

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

Run-time type information (and related methods).

Reimplemented from elastix::RegistrationBase< TElastix >.

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

Get the dimension of the fixed image.

template<class TElastix >
elastix::MultiMetricMultiResolutionRegistration< TElastix >::itkStaticConstMacro ( MovingImageDimension  ,
unsigned  int,
Superclass2::MovingImageDimension   
)

Get the dimension of the moving image.

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

The private copy constructor.

template<class TElastix >
virtual void elastix::MultiMetricMultiResolutionRegistration< TElastix >::SetComponents ( void  ) [protected, virtual]

Read the components from m_Elastix and set them in the Registration class.

template<class TElastix >
void elastix::MultiMetricMultiResolutionRegistration< TElastix >::UpdateFixedMasks ( unsigned int  level) [protected]

Function to update masks.

template<class TElastix >
void elastix::MultiMetricMultiResolutionRegistration< TElastix >::UpdateMovingMasks ( unsigned int  level) [protected]

Field Documentation

template<class TElastix >
bool elastix::MultiMetricMultiResolutionRegistration< TElastix >::m_ShowExactMetricValue [protected]

Definition at line 239 of file elxMultiMetricMultiResolutionRegistration.h.



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