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

#include <elxAdvancedMattesMutualInformationMetric.h>

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

Public Types

typedef
Superclass2::ConfigurationPointer 
ConfigurationPointer
typedef
Superclass2::ConfigurationType 
ConfigurationType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass1::CoordinateRepresentationType 
CoordinateRepresentationType
typedef Superclass1::DerivativeType DerivativeType
typedef Superclass2::ElastixPointer ElastixPointer
typedef Superclass2::ElastixType ElastixType
typedef
Superclass1::FixedImageConstPointer 
FixedImageConstPointer
typedef
Superclass1::FixedImageLimiterOutputType 
FixedImageLimiterOutputType
typedef
Superclass1::FixedImageLimiterType 
FixedImageLimiterType
typedef
Superclass1::FixedImageMaskPointer 
FixedImageMaskPointer
typedef
Superclass1::FixedImageMaskType 
FixedImageMaskType
typedef
Superclass1::FixedImagePixelType 
FixedImagePixelType
typedef
Superclass1::FixedImageRegionType 
FixedImageRegionType
typedef Superclass1::FixedImageType FixedImageType
typedef
Superclass1::GradientImageFilterPointer 
GradientImageFilterPointer
typedef
Superclass1::GradientImageFilterType 
GradientImageFilterType
typedef
Superclass1::GradientImagePointer 
GradientImagePointer
typedef
Superclass1::GradientImageType 
GradientImageType
typedef
Superclass1::GradientPixelType 
GradientPixelType
typedef
Superclass1::ImageSampleContainerPointer 
ImageSampleContainerPointer
typedef
Superclass1::ImageSampleContainerType 
ImageSampleContainerType
typedef
Superclass1::ImageSamplerPointer 
ImageSamplerPointer
typedef
Superclass1::ImageSamplerType 
ImageSamplerType
typedef Superclass1::InputPointType InputPointType
typedef
Superclass1::InterpolatorPointer 
InterpolatorPointer
typedef
Superclass1::InterpolatorType 
InterpolatorType
typedef Superclass2::ITKBaseType ITKBaseType
typedef Superclass1::MeasureType MeasureType
typedef
Superclass1::MovingImageConstPointer 
MovingImageConstPointer
typedef
Superclass1::MovingImageDerivativeScalesType 
MovingImageDerivativeScalesType
typedef
Superclass1::MovingImageLimiterOutputType 
MovingImageLimiterOutputType
typedef
Superclass1::MovingImageLimiterType 
MovingImageLimiterType
typedef
Superclass1::MovingImageMaskPointer 
MovingImageMaskPointer
typedef
Superclass1::MovingImageMaskType 
MovingImageMaskType
typedef
Superclass1::MovingImagePixelType 
MovingImagePixelType
typedef
Superclass1::MovingImageRegionType 
MovingImageRegionType
typedef
Superclass1::MovingImageType 
MovingImageType
typedef
Superclass1::OutputPointType 
OutputPointType
typedef Superclass1::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef Superclass1::RealType RealType
typedef
Superclass2::RegistrationPointer 
RegistrationPointer
typedef
Superclass2::RegistrationType 
RegistrationType
typedef
AdvancedMattesMutualInformationMetric 
Self
typedef
ParzenWindowMutualInformationImageToImageMetric
< typename MetricBase
< TElastix >::FixedImageType,
typename MetricBase< TElastix >
::MovingImageType
Superclass1
typedef MetricBase< TElastix > Superclass2
typedef TimerType::Pointer TimerPointer
typedef tmr::Timer TimerType
typedef
Superclass1::TransformJacobianType 
TransformJacobianType
typedef
Superclass1::TransformParametersType 
TransformParametersType
typedef
Superclass1::TransformPointer 
TransformPointer
typedef Superclass1::TransformType TransformType

Public Member Functions

virtual void AfterEachIteration (void)
virtual void BeforeEachResolution (void)
 elxClassNameMacro ("AdvancedMattesMutualInformation")
virtual const char * GetClassName () const
virtual unsigned int GetCurrentIteration () const
virtual double GetParam_c () const
virtual double GetParam_gamma () const
virtual void Initialize (void) throw (ExceptionObject)
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
virtual void SetCurrentIteration (unsigned int _arg)
virtual void SetParam_c (double _arg)
virtual void SetParam_gamma (double _arg)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 AdvancedMattesMutualInformationMetric ()
double Compute_c (unsigned long k) const
virtual ~AdvancedMattesMutualInformationMetric ()

Protected Attributes

unsigned long m_CurrentIteration

Private Member Functions

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

Private Attributes

double m_Param_c
double m_Param_gamma

Detailed Description

template<class TElastix>
class elastix::AdvancedMattesMutualInformationMetric< TElastix >

A metric based on the itk::ParzenWindowMutualInformationImageToImageMetric.

This metric is based on an adapted version of the itk::MattesMutualInformationImageToImageMetric.

The parameters used in this class are:

Parameters:
Metric: Select this metric as follows:
(Metric "AdvancedMattesMutualInformation")
Parameters:
NumberOfHistogramBins: The size of the histogram. Must be given for each resolution, or for all resolutions at once.
example: (NumberOfHistogramBins 32 32 64)
The default is 32 for each resolution.
Parameters:
NumberOfFixedHistogramBins: The size of the histogram in the fixed dimension. Can be given for each resolution, or for all resolutions at once. If not given, NumberOfHistogramBins is used.
example: (NumberOfFixedHistogramBins 32 32 64)
The default is the value of NumberOfHistogramBins, or, if that one is also not given, 32.
Parameters:
NumberOfMovingHistogramBins: The size of the histogram in the fixed dimension. Can be given for each resolution, or for all resolutions at once. If not given, NumberOfHistogramBins is used.
example: (NumberOfMovingHistogramBins 32 32 64)
The default is the value of NumberOfHistogramBins, or, if that one is also not given, 32.
Parameters:
FixedKernelBSplineOrder: The B-spline order of the Parzen window, used to estimate the joint histogram. Can be given for each resolution, or for all resolutions at once.
example: (FixedKernelBSplineOrder 0 1 1)
The default value is 0.
Parameters:
MovingKernelBSplineOrder: The B-spline order of the Parzen window, used to estimate the joint histogram. Can be given for each resolution, or for all resolutions at once.
example: (MovingKernelBSplineOrder 3 3 3)
The default value is 3.
Parameters:
FixedLimitRangeRatio: The relative extension of the intensity range of the fixed image.
If your fixed image has grey values from a to b and the FixedLimitRangeRatio is 0.001, the joint histogram will expect fixed image grey values from a-0.001(b-a) to b+0.001(b-a). This may be useful if you use high order B-spline interpolator for the fixed image.
example: (FixedLimitRangeRatio 0.001 0.01 0.01)
The default value is 0.01. Can be given for each resolution, or for all resolutions at once.
Parameters:
MovingLimitRangeRatio: The relative extension of the intensity range of the moving image.
If your moving image has grey values from a to b and the MovingLimitRangeRatio is 0.001, the joint histogram will expect moving image grey values from a-0.001(b-a) to b+0.001(b-a). This may be useful if you use high order B-spline interpolator for the moving image.
example: (MovingLimitRangeRatio 0.001 0.01 0.01)
The default value is 0.01. Can be given for each resolution, or for all resolutions at once.
Parameters:
FiniteDifferenceDerivative: Experimental feature, do not use.
Parameters:
UseFastAndLowMemoryVersion: Switch between a version of mutual information that explicitely computes the derivatives of the joint histogram to each transformation parameter (false) and a version that computes the mutual information via another route (true). The first option allocates a large 3D matrix of size: NumberOfFixedHistogramBins * NumberOfMovingHistogramBins * number of affected B-spline parameters. This method is faster for a low number of parameters. The second method does not use this huge matrix, and is therefore much more memory efficient for large images and fine B-spline grids. example: (UseFastAndLowMemoryVersion "false")
The default is "true".
See also:
ParzenWindowMutualInformationImageToImageMetric

Definition at line 100 of file elxAdvancedMattesMutualInformationMetric.h.


Member Typedef Documentation

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 189 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 188 of file elxAdvancedMattesMutualInformationMetric.h.

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

Typedefs from the superclass.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 133 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 187 of file elxAdvancedMattesMutualInformationMetric.h.

Typedef's inherited from Elastix.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 186 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 137 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 192 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 158 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 134 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 160 of file elxAdvancedMattesMutualInformationMetric.h.

template<class TElastix >
typedef SmartPointer<Self> elastix::AdvancedMattesMutualInformationMetric< TElastix >::Pointer
template<class TElastix >
typedef Superclass1::RealType elastix::AdvancedMattesMutualInformationMetric< TElastix >::RealType

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 191 of file elxAdvancedMattesMutualInformationMetric.h.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 190 of file elxAdvancedMattesMutualInformationMetric.h.

Standard ITK-stuff.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 110 of file elxAdvancedMattesMutualInformationMetric.h.

Definition at line 113 of file elxAdvancedMattesMutualInformationMetric.h.

template<class TElastix >
typedef MetricBase<TElastix> elastix::AdvancedMattesMutualInformationMetric< TElastix >::Superclass2

Definition at line 114 of file elxAdvancedMattesMutualInformationMetric.h.

template<class TElastix >
typedef TimerType::Pointer elastix::AdvancedMattesMutualInformationMetric< TElastix >::TimerPointer

Typedef for timer.

Definition at line 197 of file elxAdvancedMattesMutualInformationMetric.h.

template<class TElastix >
typedef tmr::Timer elastix::AdvancedMattesMutualInformationMetric< TElastix >::TimerType

Typedef for timer.

Definition at line 195 of file elxAdvancedMattesMutualInformationMetric.h.


Constructor & Destructor Documentation

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

The constructor.

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

The destructor.

Definition at line 233 of file elxAdvancedMattesMutualInformationMetric.h.

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

The private constructor.


Member Function Documentation

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

Update the CurrenIteration. This is only important if a finite difference derivative estimation is used (selected by the experimental parameter FiniteDifferenceDerivative)

Reimplemented from elastix::BaseComponent.

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

Execute stuff before each new pyramid resolution:

  • Set the number of histogram bins.
  • Set the CheckNumberOfSamples option.
  • Set the fixed/moving LimitRangeRatio
  • Set the fixed/moving limiter.

Reimplemented from elastix::BaseComponent.

template<class TElastix >
double elastix::AdvancedMattesMutualInformationMetric< TElastix >::Compute_c ( unsigned long  k) const [protected]

A function to compute the finite difference perturbation in each iteration

template<class TElastix >
elastix::AdvancedMattesMutualInformationMetric< TElastix >::elxClassNameMacro ( "AdvancedMattesMutualInformation"  )

Name of this class. Use this name in the parameter file to select this specific metric.
example: (Metric "AdvancedMattesMutualInformation")

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

Run-time type information (and related methods).

Reimplemented from elastix::MetricBase< TElastix >.

template<class TElastix >
virtual unsigned int elastix::AdvancedMattesMutualInformationMetric< TElastix >::GetCurrentIteration ( ) const [virtual]
template<class TElastix >
virtual double elastix::AdvancedMattesMutualInformationMetric< TElastix >::GetParam_c ( ) const [virtual]
template<class TElastix >
virtual double elastix::AdvancedMattesMutualInformationMetric< TElastix >::GetParam_gamma ( ) const [virtual]
template<class TElastix >
virtual void elastix::AdvancedMattesMutualInformationMetric< TElastix >::Initialize ( void  ) throw (ExceptionObject) [virtual]

Set up a timer to measure the intialisation time and call the Superclass' implementation.

Reimplemented from itk::ParzenWindowHistogramImageToImageMetric< MetricBase< TElastix >::FixedImageType, MetricBase< TElastix >::MovingImageType >.

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

The fixed image dimension.

Reimplemented from elastix::MetricBase< TElastix >.

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

The moving image dimension.

Reimplemented from elastix::MetricBase< TElastix >.

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

The private copy constructor.

template<class TElastix >
virtual void elastix::AdvancedMattesMutualInformationMetric< TElastix >::SetCurrentIteration ( unsigned int  _arg) [virtual]

Set/Get the current iteration. For finite difference derivative estimation

template<class TElastix >
virtual void elastix::AdvancedMattesMutualInformationMetric< TElastix >::SetParam_c ( double  _arg) [virtual]

Set/Get c. For finite difference derivative estimation

template<class TElastix >
virtual void elastix::AdvancedMattesMutualInformationMetric< TElastix >::SetParam_gamma ( double  _arg) [virtual]

Set/Get gamma. For finite difference derivative estimation


Field Documentation

template<class TElastix >
unsigned long elastix::AdvancedMattesMutualInformationMetric< TElastix >::m_CurrentIteration [protected]

Definition at line 233 of file elxAdvancedMattesMutualInformationMetric.h.

template<class TElastix >
double elastix::AdvancedMattesMutualInformationMetric< TElastix >::m_Param_c [private]

Definition at line 247 of file elxAdvancedMattesMutualInformationMetric.h.

template<class TElastix >
double elastix::AdvancedMattesMutualInformationMetric< TElastix >::m_Param_gamma [private]

Definition at line 248 of file elxAdvancedMattesMutualInformationMetric.h.



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