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

#include <elxViolaWellsMutualInformationMetric.h>

Detailed Description

template<class TElastix>
class elastix::ViolaWellsMutualInformationMetric< TElastix >

A metric based on the itk::MutualInformationImageToImageMetric.

Warning
: this metric is not very well tested in elastix.
: this metric is not based on the AdvancedImageToImageMetric so does not support the ImageSampler framework and might be very slow in combination with B-spline transform.
: this metric uses stochastic sampling of the images. Do not use a quasi-Newton optimizer or a conjugate gradient. The StandardGradientDescent is a better choice.

The parameters used in this class are:

Parameters:

Metric: Select this metric as follows:
(Metric "ViolaWellsMutualInformation")

NumberOfSpatialSamples: for each resolution the number of samples used to calculate this metrics value and its derivative.
example: (NumberOfSpatialSamples 5000 5000 10000)
The default is 10000 for each resolution.

FixedImageStandardDeviation: for each resolution the standard deviation of the fixed image.
example: (FixedImageStandardDeviation 1.3 1.9 1.0)
The default is 0.4 for each resolution.

MovingImageStandardDeviation: for each resolution the standard deviation of the moving image.
example: (MovingImageStandardDeviation 1.3 1.9 1.0)
The default is 0.4 for each resolution.

See also
MutualInformationImageToImageMetric

Definition at line 60 of file elxViolaWellsMutualInformationMetric.h.

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

Public Types

typedef Superclass2::ConfigurationPointer ConfigurationPointer
 
typedef Superclass2::ConfigurationType ConfigurationType
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef Superclass1::DerivativeType DerivativeType
 
typedef Superclass2::ElastixPointer ElastixPointer
 
typedef Superclass2::ElastixType ElastixType
 
typedef Superclass1::FixedImageConstPointer FixedImageConstPointer
 
typedef Superclass1::FixedImageIndexType FixedImageIndexType
 
typedef Superclass1::FixedImageIndexValueType FixedImageIndexValueType
 
typedef Superclass1::FixedImagePointType FixedImagePointType
 
typedef Superclass1::FixedImageType FixedImageType
 
typedef Superclass1::InterpolatorType InterpolatorType
 
typedef Superclass2::ITKBaseType ITKBaseType
 
typedef Superclass1::MeasureType MeasureType
 
typedef Superclass1::MovingImageConstPointer MovingImageCosntPointer
 
typedef Superclass1::MovingImageIndexType MovingImageIndexType
 
typedef Superclass1::MovingImagePointType MovingImagePointType
 
typedef Superclass1::MovingImageType MovingImageType
 
typedef Superclass1::ParametersType ParametersType
 
typedef itk::SmartPointer< SelfPointer
 
typedef Superclass2::RegistrationPointer RegistrationPointer
 
typedef Superclass2::RegistrationType RegistrationType
 
typedef ViolaWellsMutualInformationMetric Self
 
typedef itk::MutualInformationImageToImageMetric< typename MetricBase< TElastix >::FixedImageType, typename MetricBase< TElastix >::MovingImageTypeSuperclass1
 
typedef MetricBase< TElastix > Superclass2
 
typedef Superclass1::TransformJacobianType TransformJacobianType
 
typedef Superclass1::TransformPointer TransformPointer
 
typedef Superclass1::TransformType TransformType
 
- Public Types inherited from elastix::MetricBase< TElastix >
typedef itk::AdvancedImageToImageMetric< FixedImageType, MovingImageTypeAdvancedMetricType
 
typedef Superclass::ConfigurationPointer ConfigurationPointer
 
typedef Superclass::ConfigurationType ConfigurationType
 
typedef ITKBaseType::ParametersValueType CoordinateRepresentationType
 
typedef Superclass::ElastixPointer ElastixPointer
 
typedef Superclass::ElastixType ElastixType
 
typedef ElastixType::FixedImageType FixedImageType
 
typedef itk::PointSet< CoordinateRepresentationType, FixedImageDimension, itk::DefaultStaticMeshTraits< CoordinateRepresentationType, FixedImageDimension, FixedImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > FixedPointSetType
 
typedef FixedImageType::PointType FixedPointType
 
typedef FixedPointType::ValueType FixedPointValueType
 
typedef AdvancedMetricType::ImageSamplerType ImageSamplerBaseType
 
typedef itk::SingleValuedCostFunction ITKBaseType
 
typedef ITKBaseType::MeasureType MeasureType
 
typedef AdvancedMetricType::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
 
typedef ElastixType::MovingImageType MovingImageType
 
typedef itk::PointSet< CoordinateRepresentationType, MovingImageDimension, itk::DefaultStaticMeshTraits< CoordinateRepresentationType, MovingImageDimension, MovingImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > MovingPointSetType
 
typedef MovingImageType::PointType MovingPointType
 
typedef MovingPointType::ValueType MovingPointValueType
 
typedef Superclass::RegistrationPointer RegistrationPointer
 
typedef Superclass::RegistrationType RegistrationType
 
typedef MetricBase Self
 
typedef BaseComponentSE< TElastix > Superclass
 
- 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

void BeforeEachResolution (void) override
 
 elxClassNameMacro ("ViolaWellsMutualInformation")
 
virtual const char * GetClassName () const
 
void Initialize (void) override
 
 itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
 
- Public Member Functions inherited from elastix::MetricBase< TElastix >
void AfterEachIterationBase (void) override
 
void BeforeEachResolutionBase (void) override
 
virtual ImageSamplerBaseTypeGetAdvancedMetricImageSampler (void) const
 
virtual bool GetAdvancedMetricUseImageSampler (void) const
 
virtual ITKBaseTypeGetAsITKBaseType (void)
 
virtual const ITKBaseTypeGetAsITKBaseType (void) const
 
virtual const char * GetClassName () const
 
virtual MeasureType GetCurrentExactMetricValue (void) const
 
virtual bool GetShowExactMetricValue (void) const
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
 itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
 
virtual void SelectNewSamples (void)
 
virtual void SetAdvancedMetricImageSampler (ImageSamplerBaseType *sampler)
 
- 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)
 

Static Public Member Functions

static Pointer New ()
 
- 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 Member Functions

 ViolaWellsMutualInformationMetric ()
 
 ~ViolaWellsMutualInformationMetric () override
 
- Protected Member Functions inherited from elastix::MetricBase< TElastix >
virtual MeasureType GetExactValue (const ParametersType &parameters)
 
 MetricBase ()
 
 ~MetricBase () 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 &)
 
 ViolaWellsMutualInformationMetric (const Self &)
 

Additional Inherited Members

- Protected Types inherited from elastix::MetricBase< TElastix >
typedef ExactMetricImageSamplerType::Pointer ExactMetricImageSamplerPointer
 
typedef itk::ImageGridSampler< FixedImageTypeExactMetricImageSamplerType
 
typedef ExactMetricImageSamplerType::SampleGridSpacingType ExactMetricSampleGridSpacingType
 
typedef ITKBaseType::ParametersType ParametersType
 
- Protected Attributes inherited from elastix::MetricBase< TElastix >
MeasureType m_CurrentExactMetricValue
 
unsigned int m_ExactMetricEachXNumberOfIterations
 
ExactMetricSampleGridSpacingType m_ExactMetricSampleGridSpacing
 
ExactMetricImageSamplerPointer m_ExactMetricSampler
 
bool m_ShowExactMetricValue
 
- Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
ConfigurationPointer m_Configuration {}
 
ElastixPointer m_Elastix {}
 
RegistrationPointer m_Registration {}
 

Member Typedef Documentation

◆ ConfigurationPointer

template<class TElastix >
typedef Superclass2::ConfigurationPointer elastix::ViolaWellsMutualInformationMetric< TElastix >::ConfigurationPointer

Definition at line 117 of file elxViolaWellsMutualInformationMetric.h.

◆ ConfigurationType

template<class TElastix >
typedef Superclass2::ConfigurationType elastix::ViolaWellsMutualInformationMetric< TElastix >::ConfigurationType

Definition at line 116 of file elxViolaWellsMutualInformationMetric.h.

◆ ConstPointer

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

Definition at line 76 of file elxViolaWellsMutualInformationMetric.h.

◆ DerivativeType

template<class TElastix >
typedef Superclass1::DerivativeType elastix::ViolaWellsMutualInformationMetric< TElastix >::DerivativeType

Definition at line 97 of file elxViolaWellsMutualInformationMetric.h.

◆ ElastixPointer

template<class TElastix >
typedef Superclass2::ElastixPointer elastix::ViolaWellsMutualInformationMetric< TElastix >::ElastixPointer

Definition at line 115 of file elxViolaWellsMutualInformationMetric.h.

◆ ElastixType

template<class TElastix >
typedef Superclass2::ElastixType elastix::ViolaWellsMutualInformationMetric< TElastix >::ElastixType

Typedef's inherited from Elastix.

Definition at line 114 of file elxViolaWellsMutualInformationMetric.h.

◆ FixedImageConstPointer

template<class TElastix >
typedef Superclass1::FixedImageConstPointer elastix::ViolaWellsMutualInformationMetric< TElastix >::FixedImageConstPointer

Definition at line 101 of file elxViolaWellsMutualInformationMetric.h.

◆ FixedImageIndexType

template<class TElastix >
typedef Superclass1::FixedImageIndexType elastix::ViolaWellsMutualInformationMetric< TElastix >::FixedImageIndexType

Definition at line 103 of file elxViolaWellsMutualInformationMetric.h.

◆ FixedImageIndexValueType

template<class TElastix >
typedef Superclass1::FixedImageIndexValueType elastix::ViolaWellsMutualInformationMetric< TElastix >::FixedImageIndexValueType

Definition at line 104 of file elxViolaWellsMutualInformationMetric.h.

◆ FixedImagePointType

template<class TElastix >
typedef Superclass1::FixedImagePointType elastix::ViolaWellsMutualInformationMetric< TElastix >::FixedImagePointType

Definition at line 106 of file elxViolaWellsMutualInformationMetric.h.

◆ FixedImageType

template<class TElastix >
typedef Superclass1::FixedImageType elastix::ViolaWellsMutualInformationMetric< TElastix >::FixedImageType

Definition at line 99 of file elxViolaWellsMutualInformationMetric.h.

◆ InterpolatorType

template<class TElastix >
typedef Superclass1::InterpolatorType elastix::ViolaWellsMutualInformationMetric< TElastix >::InterpolatorType

Definition at line 95 of file elxViolaWellsMutualInformationMetric.h.

◆ ITKBaseType

template<class TElastix >
typedef Superclass2::ITKBaseType elastix::ViolaWellsMutualInformationMetric< TElastix >::ITKBaseType

Definition at line 120 of file elxViolaWellsMutualInformationMetric.h.

◆ MeasureType

template<class TElastix >
typedef Superclass1::MeasureType elastix::ViolaWellsMutualInformationMetric< TElastix >::MeasureType

Definition at line 96 of file elxViolaWellsMutualInformationMetric.h.

◆ MovingImageCosntPointer

template<class TElastix >
typedef Superclass1::MovingImageConstPointer elastix::ViolaWellsMutualInformationMetric< TElastix >::MovingImageCosntPointer

Definition at line 102 of file elxViolaWellsMutualInformationMetric.h.

◆ MovingImageIndexType

template<class TElastix >
typedef Superclass1::MovingImageIndexType elastix::ViolaWellsMutualInformationMetric< TElastix >::MovingImageIndexType

Definition at line 105 of file elxViolaWellsMutualInformationMetric.h.

◆ MovingImagePointType

template<class TElastix >
typedef Superclass1::MovingImagePointType elastix::ViolaWellsMutualInformationMetric< TElastix >::MovingImagePointType

Definition at line 107 of file elxViolaWellsMutualInformationMetric.h.

◆ MovingImageType

template<class TElastix >
typedef Superclass1::MovingImageType elastix::ViolaWellsMutualInformationMetric< TElastix >::MovingImageType

Definition at line 100 of file elxViolaWellsMutualInformationMetric.h.

◆ ParametersType

template<class TElastix >
typedef Superclass1::ParametersType elastix::ViolaWellsMutualInformationMetric< TElastix >::ParametersType

Definition at line 98 of file elxViolaWellsMutualInformationMetric.h.

◆ Pointer

template<class TElastix >
typedef itk::SmartPointer< Self > elastix::ViolaWellsMutualInformationMetric< TElastix >::Pointer

Definition at line 75 of file elxViolaWellsMutualInformationMetric.h.

◆ RegistrationPointer

template<class TElastix >
typedef Superclass2::RegistrationPointer elastix::ViolaWellsMutualInformationMetric< TElastix >::RegistrationPointer

Definition at line 119 of file elxViolaWellsMutualInformationMetric.h.

◆ RegistrationType

template<class TElastix >
typedef Superclass2::RegistrationType elastix::ViolaWellsMutualInformationMetric< TElastix >::RegistrationType

Definition at line 118 of file elxViolaWellsMutualInformationMetric.h.

◆ Self

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

Standard ITK-stuff.

Definition at line 70 of file elxViolaWellsMutualInformationMetric.h.

◆ Superclass1

template<class TElastix >
typedef itk::MutualInformationImageToImageMetric< typename MetricBase< TElastix >::FixedImageType, typename MetricBase< TElastix >::MovingImageType > elastix::ViolaWellsMutualInformationMetric< TElastix >::Superclass1

Definition at line 73 of file elxViolaWellsMutualInformationMetric.h.

◆ Superclass2

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

Definition at line 74 of file elxViolaWellsMutualInformationMetric.h.

◆ TransformJacobianType

template<class TElastix >
typedef Superclass1::TransformJacobianType elastix::ViolaWellsMutualInformationMetric< TElastix >::TransformJacobianType

Definition at line 94 of file elxViolaWellsMutualInformationMetric.h.

◆ TransformPointer

template<class TElastix >
typedef Superclass1::TransformPointer elastix::ViolaWellsMutualInformationMetric< TElastix >::TransformPointer

Definition at line 93 of file elxViolaWellsMutualInformationMetric.h.

◆ TransformType

template<class TElastix >
typedef Superclass1::TransformType elastix::ViolaWellsMutualInformationMetric< TElastix >::TransformType

Typedefs inherited from the superclass.

Definition at line 92 of file elxViolaWellsMutualInformationMetric.h.

Constructor & Destructor Documentation

◆ ViolaWellsMutualInformationMetric() [1/2]

template<class TElastix >
elastix::ViolaWellsMutualInformationMetric< TElastix >::ViolaWellsMutualInformationMetric ( )
protected

The constructor.

◆ ~ViolaWellsMutualInformationMetric()

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

The destructor.

Definition at line 139 of file elxViolaWellsMutualInformationMetric.h.

◆ ViolaWellsMutualInformationMetric() [2/2]

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

The private constructor.

Member Function Documentation

◆ BeforeEachResolution()

template<class TElastix >
void elastix::ViolaWellsMutualInformationMetric< TElastix >::BeforeEachResolution ( void  )
overridevirtual

Execute stuff before each new pyramid resolution:

  • Set the number of spatial samples.
  • Set the standard deviation of the fixed image.
  • Set the standard deviation of the moving image.

Reimplemented from elastix::BaseComponent.

◆ elxClassNameMacro()

template<class TElastix >
elastix::ViolaWellsMutualInformationMetric< TElastix >::elxClassNameMacro ( "ViolaWellsMutualInformation"  )

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

◆ GetClassName()

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

Run-time type information (and related methods).

Reimplemented from elastix::MetricBase< TElastix >.

◆ Initialize()

template<class TElastix >
void elastix::ViolaWellsMutualInformationMetric< TElastix >::Initialize ( void  )
override

Sets up a timer to measure the initialization time and calls the Superclass' implementation.

◆ itkStaticConstMacro()

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

The moving image dimension.

◆ New()

template<class TElastix >
static Pointer elastix::ViolaWellsMutualInformationMetric< TElastix >::New ( )
static

Method for creation through the object factory.

◆ operator=()

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

The private copy constructor.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo