Loading...
Searching...
No Matches
elastix::AdvancedMattesMutualInformationMetric< TElastix > Class Template Reference
Components » Metrics

`#include <elxAdvancedMattesMutualInformationMetric.h>`

## 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")

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  FiniteDifferenceDerivative: Experimental feature, do not use.

  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.

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

## Public Types

using | ConstPointer = itk::SmartPointer<const Self>
using | ITKBaseType = typename Superclass2::ITKBaseType
using | Pointer = itk::SmartPointer<Self>
using | Self = AdvancedMattesMutualInformationMetric
using | Superclass1
using | Superclass2 = MetricBase<TElastix>
Public Types inherited from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >
using | ConstPointer = SmartPointer<const Self>
using | DerivativeValueType
using | FixedImageLimiterOutputType
using | FixedImageLimiterType
using | FixedImageMaskPointer
using | FixedImageMaskType
using | FixedImagePixelType
using | ImageSampleContainerPointer
using | ImageSampleContainerType
using | ImageSamplerPointer
using | ImageSamplerType
using | MovingImageDerivativeScalesType
using | MovingImageLimiterOutputType
using | MovingImageLimiterType
using | MovingImageMaskPointer
using | MovingImageMaskType
using | MovingImageRegionType
using | Pointer = SmartPointer<Self>
using | Self = ParzenWindowMutualInformationImageToImageMetric
using | Superclass = ParzenWindowHistogramImageToImageMetric<TFixedImage, TMovingImage>
using | ThreadInfoType
Public Types inherited from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >
using | ConstPointer = SmartPointer<const Self>
using | DerivativeValueType
using | FixedImageLimiterOutputType
using | FixedImageLimiterType
using | FixedImageMaskPointer
using | FixedImageMaskType
using | FixedImagePixelType
using | ImageSampleContainerPointer
using | ImageSampleContainerType
using | ImageSamplerPointer
using | ImageSamplerType
using | MovingImageDerivativeScalesType
using | MovingImageLimiterOutputType
using | MovingImageLimiterType
using | MovingImageMaskPointer
using | MovingImageMaskType
using | MovingImageRegionType
using | Pointer = SmartPointer<Self>
using | Self = ParzenWindowHistogramImageToImageMetric
using | Superclass = AdvancedImageToImageMetric<TFixedImage, TMovingImage>
using | ThreadInfoType
Public Types inherited from itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >
using | AdvancedTransformType = AdvancedTransform<ScalarType, FixedImageDimension, MovingImageDimension>
using | BSplineOrder1TransformPointer = typename BSplineOrder1TransformType::Pointer
using | BSplineOrder1TransformType = AdvancedBSplineDeformableTransform<ScalarType, FixedImageDimension, 1>
using | BSplineOrder2TransformPointer = typename BSplineOrder2TransformType::Pointer
using | BSplineOrder2TransformType = AdvancedBSplineDeformableTransform<ScalarType, FixedImageDimension, 2>
using | BSplineOrder3TransformPointer = typename BSplineOrder3TransformType::Pointer
using | BSplineOrder3TransformType = AdvancedBSplineDeformableTransform<ScalarType, FixedImageDimension, 3>
using | CombinationTransformType = AdvancedCombinationTransform<ScalarType, FixedImageDimension>
using | ConstPointer = SmartPointer<const Self>
using | DerivativeValueType = typename DerivativeType::ValueType
using | FixedImageLimiterOutputType = typename FixedImageLimiterType::OutputType
using | FixedImageLimiterPointer = typename FixedImageLimiterType::Pointer
using | FixedImageLimiterType = LimiterFunctionBase<RealType, FixedImageDimension>
using | FixedImageMaskConstPointer = SmartPointer<const FixedImageMaskType>
using | FixedImageMaskPointer = SmartPointer<FixedImageMaskType>
using | FixedImageMaskType = ImageMaskSpatialObject<Self::FixedImageDimension>
using | FixedImagePixelType = typename FixedImageType::PixelType
using | FixedImagePointer = typename FixedImageType::Pointer
using | ImageSampleContainerPointer = typename ImageSamplerType::OutputVectorContainerPointer
using | ImageSampleContainerType = typename ImageSamplerType::OutputVectorContainerType
using | ImageSamplerPointer = typename ImageSamplerType::Pointer
using | ImageSamplerType = ImageSamplerBase<FixedImageType>
using | MovingImageDerivativeScalesType = FixedArray<double, Self::MovingImageDimension>
using | MovingImageLimiterOutputType = typename MovingImageLimiterType::OutputType
using | MovingImageLimiterPointer = typename MovingImageLimiterType::Pointer
using | MovingImageLimiterType = LimiterFunctionBase<RealType, MovingImageDimension>
using | MovingImageMaskConstPointer = SmartPointer<const MovingImageMaskType>
using | MovingImageMaskPointer = SmartPointer<MovingImageMaskType>
using | MovingImageMaskType = ImageMaskSpatialObject<Self::MovingImageDimension>
using | MovingImagePointer = typename MovingImageType::Pointer
using | MovingImageRegionType = typename MovingImageType::RegionType
using | NumberOfParametersType = typename AdvancedTransformType::NumberOfParametersType
using | Pointer = SmartPointer<Self>
using | ScalarType = typename TransformType::ScalarType
using | Self = AdvancedImageToImageMetric
using | Superclass = ImageToImageMetric<TFixedImage, TMovingImage>
using | ThreadInfoType = MultiThreaderBase::WorkUnitInfo
Public Types inherited from elastix::MetricBase< TElastix >
using | AdvancedMetricType = itk::AdvancedImageToImageMetric<FixedImageType, MovingImageType>
using | CoordinateRepresentationType = typename ITKBaseType::ParametersValueType
using | ElastixType
using | FixedImageType = typename ElastixType::FixedImageType
using | FixedPointSetType
using | FixedPointType = typename FixedImageType::PointType
using | FixedPointValueType = typename FixedPointType::ValueType
using | ImageSamplerBaseType = typename AdvancedMetricType::ImageSamplerType
using | ITKBaseType = itk::SingleValuedCostFunction
using | MeasureType = typename ITKBaseType::MeasureType
using | MovingImageDerivativeScalesType = typename AdvancedMetricType::MovingImageDerivativeScalesType
using | MovingImageType = typename ElastixType::MovingImageType
using | MovingPointSetType
using | MovingPointType = typename MovingImageType::PointType
using | MovingPointValueType = typename MovingPointType::ValueType
using | RegistrationType
using | Self = MetricBase
using | Superclass = BaseComponentSE<TElastix>
Public Types inherited from elastix::BaseComponentSE< TElastix >
using | ElastixType = TElastix
using | RegistrationType = typename ElastixType::RegistrationBaseType
using | Self = BaseComponentSE
using | Superclass = BaseComponent

## Public Member Functions

void | AfterEachIteration () override
void | BeforeEachResolution () override
| elxClassNameMacro ("AdvancedMattesMutualInformation")
virtual const char * | GetClassName () const
virtual unsigned int | GetCurrentIteration () const
virtual double | GetParam_c () const
virtual double | GetParam_gamma () const
void | Initialize () override
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedMattesMutualInformationMetric)
| 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)
Public Member Functions inherited from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >
virtual bool | GetUseJacobianPreconditioning () const
MeasureType | GetValue (const ParametersType &parameters) const override
| ITK_DISALLOW_COPY_AND_MOVE (ParzenWindowMutualInformationImageToImageMetric)
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
virtual void | SetUseJacobianPreconditioning (bool _arg)
Public Member Functions inherited from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >
void | GetDerivative (const ParametersType &parameters, DerivativeType &Derivative) const override
virtual double | GetFiniteDifferencePerturbation () const
virtual unsigned int | GetFixedKernelBSplineOrder () const
virtual unsigned int | GetMovingKernelBSplineOrder () const
virtual unsigned long | GetNumberOfFixedHistogramBins () const
virtual unsigned long | GetNumberOfMovingHistogramBins () const
virtual bool | GetUseDerivative () const
virtual const bool & | GetUseExplicitPDFDerivatives ()
virtual bool | GetUseFiniteDifferenceDerivative () const
void | GetValueAndDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const override
void | Initialize () override
| ITK_DISALLOW_COPY_AND_MOVE (ParzenWindowHistogramImageToImageMetric)
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
virtual void | SetFiniteDifferencePerturbation (double _arg)
virtual void | SetFixedKernelBSplineOrder (unsigned int _arg)
virtual void | SetMovingKernelBSplineOrder (unsigned int _arg)
virtual void | SetNumberOfFixedHistogramBins (unsigned long _arg)
virtual void | SetNumberOfMovingHistogramBins (unsigned long _arg)
virtual void | SetUseDerivative (bool _arg)
virtual void | SetUseExplicitPDFDerivatives (bool _arg)
virtual void | SetUseFiniteDifferenceDerivative (bool _arg)
virtual void | UseExplicitPDFDerivativesOff ()
virtual void | UseExplicitPDFDerivativesOn ()
Public Member Functions inherited from itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >
virtual void | BeforeThreadedGetValueAndDerivative (const TransformParametersType &parameters) const
virtual const FixedImageLimiterType * | GetFixedImageLimiter ()
const FixedImageMaskType * | GetFixedImageMask () const override
virtual double | GetFixedLimitRangeRatio () const
ImageSamplerType * | GetImageSampler () const
virtual const MovingImageDerivativeScalesType & | GetMovingImageDerivativeScales ()
virtual const MovingImageLimiterType * | GetMovingImageLimiter ()
const MovingImageMaskType * | GetMovingImageMask () const override
virtual double | GetMovingLimitRangeRatio () const
virtual double | GetRequiredRatioOfValidSamples () const
virtual bool | GetScaleGradientWithRespectToMovingImageOrientation () const
const AdvancedTransformType * | GetTransform () const override
AdvancedTransformType * | GetTransform () override
virtual bool | GetUseFixedImageLimiter () const
virtual bool | GetUseImageSampler () const
virtual const bool & | GetUseMetricSingleThreaded ()
virtual bool | GetUseMovingImageDerivativeScales () const
virtual bool | GetUseMovingImageLimiter () const
virtual const bool & | GetUseMultiThread ()
void | Initialize () override
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedImageToImageMetric)
| itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, TMovingImage::ImageDimension)
virtual void | SetFixedImageLimiter (FixedImageLimiterType *_arg)
virtual void | SetFixedImageMask (const FixedImageMaskType *const arg)
virtual void | SetFixedLimitRangeRatio (double _arg)
virtual void | SetImageSampler (ImageSamplerType *_arg)
virtual void | SetMovingImageDerivativeScales (MovingImageDerivativeScalesType _arg)
virtual void | SetMovingImageLimiter (MovingImageLimiterType *_arg)
virtual void | SetMovingImageMask (const MovingImageMaskType *const arg)
virtual void | SetMovingLimitRangeRatio (double _arg)
virtual void | SetRequiredRatioOfValidSamples (double _arg)
virtual void | SetScaleGradientWithRespectToMovingImageOrientation (bool _arg)
virtual void | SetTransform (AdvancedTransformType *arg)
virtual void | SetUseMetricSingleThreaded (bool _arg)
virtual void | SetUseMovingImageDerivativeScales (bool _arg)
virtual void | SetUseMultiThread (bool _arg)
virtual void | UseMetricSingleThreadedOff ()
virtual void | UseMetricSingleThreadedOn ()
virtual void | UseMultiThreadOff ()
virtual void | UseMultiThreadOn ()
Public Member Functions inherited from elastix::MetricBase< TElastix >
void | AfterEachIterationBase () override
void | BeforeEachResolutionBase () override
virtual ImageSamplerBaseType * | GetAdvancedMetricImageSampler () const
virtual bool | GetAdvancedMetricUseImageSampler () const
ITKBaseType * | GetAsITKBaseType ()
const ITKBaseType * | GetAsITKBaseType () const
virtual MeasureType | GetCurrentExactMetricValue () const
virtual bool | GetShowExactMetricValue () const
| ITK_DISALLOW_COPY_AND_MOVE (MetricBase)
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
virtual void | SelectNewSamples ()
virtual void | SetAdvancedMetricImageSampler (ImageSamplerBaseType *sampler)
Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
void | AddTargetCellToIterationInfo (const char *const name)
const Configuration * | GetConfiguration () const
ElastixType * | GetElastix () const
auto & | GetIterationInfoAt (const char *const name)
RegistrationType * | GetRegistration () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE)
void | RemoveTargetCellFromIterationInfo (const char *const name)
void | SetConfiguration (const Configuration *_arg)
void | SetElastix (ElastixType *_arg)
Public Member Functions inherited from elastix::BaseComponent
virtual void | AfterEachResolution ()
virtual void | AfterEachResolutionBase ()
virtual void | AfterRegistration ()
virtual void | AfterRegistrationBase ()
virtual int | BeforeAll ()
virtual int | BeforeAllBase ()
virtual void | BeforeRegistration ()
virtual void | BeforeRegistrationBase ()
virtual const char * | elxGetClassName () const
const char * | GetComponentLabel () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponent)
| itkTypeMacroNoParent (BaseComponent)
void | SetComponentLabel (const char *label, unsigned int idx)

## Static Public Member Functions

static Pointer | New ()
Static Public Member Functions inherited from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >
static Pointer | New ()
Static Public Member Functions inherited from elastix::BaseComponent
template<typename TBaseComponent>
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType())
static void | InitializeElastixExecutable ()
static bool | IsElastixLibrary ()

## Protected Member Functions

| AdvancedMattesMutualInformationMetric ()
double | Compute_c (unsigned long k) const
| ~AdvancedMattesMutualInformationMetric () override=default
Protected Member Functions inherited from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >
void | AfterThreadedComputeDerivativeLowMemory (DerivativeType &derivative) const
virtual void | ComputeJacobianPreconditioner (const TransformJacobianType &jac, const NonZeroJacobianIndicesType &nzji, DerivativeType &preconditioner, DerivativeType &divisor) const
void | GetValueAndAnalyticDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const override
virtual void | GetValueAndAnalyticDerivativeLowMemory (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const
void | GetValueAndFiniteDifferenceDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const override
void | InitializeHistograms () override
void | LaunchComputeDerivativeLowMemoryThreaderCallback () const
| ParzenWindowMutualInformationImageToImageMetric ()
void | ThreadedComputeDerivativeLowMemory (ThreadIdType threadId)
| ~ParzenWindowMutualInformationImageToImageMetric () override=default
Protected Member Functions inherited from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >
void | AfterThreadedComputePDFs () const
virtual void | ComputeIncrementalMarginalPDFs (const JointPDFDerivativesType *incrementalPDF, IncrementalMarginalPDFType *fixedIncrementalMarginalPDF, IncrementalMarginalPDFType *movingIncrementalMarginalPDF) const
void | ComputeMarginalPDF (const JointPDFType *jointPDF, MarginalPDFType &marginalPDF, const unsigned int direction) const
virtual void | ComputePDFs (const ParametersType &parameters) const
virtual void | ComputePDFsAndIncrementalPDFs (const ParametersType &parameters) const
virtual void | ComputePDFsAndPDFDerivatives (const ParametersType &parameters) const
virtual void | ComputePDFsSingleThreaded (const ParametersType &parameters) const
virtual void | InitializeKernels ()
void | InitializeThreadingParameters () const override
void | LaunchComputePDFsThreaderCallback () const
void | NormalizeJointPDF (JointPDFType *pdf, const double factor) const
void | NormalizeJointPDFDerivatives (JointPDFDerivativesType *pdf, const double factor) const
| ParzenWindowHistogramImageToImageMetric ()
void | PrintSelf (std::ostream &os, Indent indent) const override
void | ThreadedComputePDFs (ThreadIdType threadId)
virtual void | UpdateJointPDFAndDerivatives (const RealType fixedImageValue, const RealType movingImageValue, const DerivativeType *imageJacobian, const NonZeroJacobianIndicesType *nzji, JointPDFType *jointPDF) const
virtual void | UpdateJointPDFAndIncrementalPDFs (RealType fixedImageValue, RealType movingImageValue, RealType movingMaskValue, const DerivativeType &movingImageValuesRight, const DerivativeType &movingImageValuesLeft, const DerivativeType &movingMaskValuesRight, const DerivativeType &movingMaskValuesLeft, const NonZeroJacobianIndicesType &nzji) const
void | UpdateJointPDFDerivatives (const JointPDFIndexType &pdfIndex, double factor, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji) const
| ~ParzenWindowHistogramImageToImageMetric () override=default
Protected Member Functions inherited from itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >
| AdvancedImageToImageMetric ()
virtual void | AfterThreadedGetValue (MeasureType &) const
virtual void | AfterThreadedGetValueAndDerivative (MeasureType &, DerivativeType &) const
void | CheckForAdvancedTransform ()
void | CheckForBSplineInterpolator ()
void | CheckForBSplineTransform () const
void | CheckNumberOfSamples (unsigned long wanted, unsigned long found) const
virtual bool | EvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient) const
bool | EvaluateTransformJacobian (const FixedImagePointType &fixedImagePoint, TransformJacobianType &jacobian, NonZeroJacobianIndicesType &nzji) const
virtual void | EvaluateTransformJacobianInnerProduct (const TransformJacobianType &jacobian, const MovingImageDerivativeType &movingImageDerivative, DerivativeType &imageJacobian) const
bool | FastEvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient, const ThreadIdType threadId) const
virtual void | InitializeImageSampler ()
void | InitializeLimiters ()
virtual bool | IsInsideMovingMask (const MovingImagePointType &point) const
| itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct)
| itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct)
void | LaunchGetValueAndDerivativeThreaderCallback () const
void | LaunchGetValueThreaderCallback () const
void | PrintSelf (std::ostream &os, Indent indent) const override
void | SetFixedImageMask (const typename Superclass::FixedImageMaskType *) final
void | SetFixedImageMask (typename Superclass::FixedImageMaskType *) final
void | SetMovingImageMask (const typename Superclass::MovingImageMaskType *) final
void | SetMovingImageMask (typename Superclass::MovingImageMaskType *) final
virtual void | SetUseFixedImageLimiter (bool _arg)
virtual void | SetUseImageSampler (bool _arg)
virtual void | SetUseMovingImageLimiter (bool _arg)
virtual void | ThreadedGetValue (ThreadIdType) const
virtual void | ThreadedGetValueAndDerivative (ThreadIdType) const
MovingImagePointType | TransformPoint (const FixedImagePointType &fixedImagePoint) const
| ~AdvancedImageToImageMetric () override=default
Protected Member Functions inherited from elastix::MetricBase< TElastix >
virtual MeasureType | GetExactValue (const ParametersType &parameters)
| MetricBase ()=default
| ~MetricBase () override=default
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

## Protected Attributes

unsigned long | m_CurrentIteration
Protected Attributes inherited from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >
ParzenWindowMutualInformationMultiThreaderParameterType | m_ParzenWindowMutualInformationThreaderParameters {}
Protected Attributes inherited from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >
double | m_Alpha { 0.0 }
KernelFunctionPointer | m_DerivativeMovingKernel { nullptr }
double | m_FixedImageBinSize { 0.0 }
MarginalPDFType | m_FixedImageMarginalPDF {}
double | m_FixedImageNormalizedMin { 0.0 }
IncrementalMarginalPDFPointer | m_FixedIncrementalMarginalPDFLeft { nullptr }
IncrementalMarginalPDFPointer | m_FixedIncrementalMarginalPDFRight { nullptr }
KernelFunctionPointer | m_FixedKernel { nullptr }
double | m_FixedParzenTermToIndexOffset { 0.5 }
JointPDFDerivativesPointer | m_IncrementalJointPDFLeft {}
JointPDFDerivativesPointer | m_IncrementalJointPDFRight {}
JointPDFPointer | m_JointPDF { nullptr }
JointPDFDerivativesPointer | m_JointPDFDerivatives { nullptr }
JointPDFRegionType | m_JointPDFWindow {}
double | m_MovingImageBinSize { 0.0 }
MarginalPDFType | m_MovingImageMarginalPDF {}
double | m_MovingImageNormalizedMin { 0.0 }
IncrementalMarginalPDFPointer | m_MovingIncrementalMarginalPDFLeft { nullptr }
IncrementalMarginalPDFPointer | m_MovingIncrementalMarginalPDFRight { nullptr }
KernelFunctionPointer | m_MovingKernel { nullptr }
double | m_MovingParzenTermToIndexOffset { -1.0 }
DerivativeType | m_PerturbedAlphaLeft {}
DerivativeType | m_PerturbedAlphaRight {}
Protected Attributes inherited from itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >
AdvancedTransformType::Pointer | m_AdvancedTransform { nullptr }
FixedImageLimiterOutputType | m_FixedImageMaxLimit { 1 }
FixedImageLimiterOutputType | m_FixedImageMinLimit { 0 }
FixedImagePixelType | m_FixedImageTrueMax { 1 }
FixedImagePixelType | m_FixedImageTrueMin { 0 }
double | m_FixedLimitRangeRatio { 0.01 }
std::unique_ptr< AlignedGetValueAndDerivativePerThreadStruct[]> | m_GetValueAndDerivativePerThreadVariables
ThreadIdType | m_GetValueAndDerivativePerThreadVariablesSize { 0 }
ImageSamplerPointer | m_ImageSampler { nullptr }
MovingImageLimiterOutputType | m_MovingImageMaxLimit { 1 }
MovingImageLimiterOutputType | m_MovingImageMinLimit { 0 }
MovingImagePixelType | m_MovingImageTrueMax { 1 }
MovingImagePixelType | m_MovingImageTrueMin { 0 }
double | m_MovingLimitRangeRatio { 0.01 }
MultiThreaderParameterType | m_ThreaderMetricParameters {}
bool | m_TransformIsBSpline { false }
bool | m_UseMetricSingleThreaded { true }
bool | m_UseMultiThread { false }
Protected Attributes inherited from elastix::MetricBase< TElastix >
MeasureType | m_CurrentExactMetricValue { 0.0 }
unsigned int | m_ExactMetricEachXNumberOfIterations { 1 }
ExactMetricSampleGridSpacingType | m_ExactMetricSampleGridSpacing
ExactMetricImageSamplerPointer | m_ExactMetricSampler { nullptr }
bool | m_ShowExactMetricValue { false }
Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
Configuration::ConstPointer | m_Configuration {}
itk::WeakPointer< TElastix > | m_Elastix {}
RegistrationType * | m_Registration {}

## Private Attributes

| elxOverrideGetSelfMacro
double | m_Param_c
double | m_Param_gamma

## Additional Inherited Members

Protected Types inherited from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >
using | BSplineInterpolatorType
using | FixedImageIndexType
using | FixedImageIndexValueType
using | FixedImagePointType
using | IncrementalMarginalPDFType
using | JointPDFDerivativesIndexType
using | JointPDFDerivativesRegionType
using | JointPDFDerivativesSizeType
using | JointPDFDerivativesType
using | JointPDFIndexType
using | JointPDFRegionType
using | JointPDFSizeType
using | JointPDFType
using | KernelFunctionType
using | MarginalPDFType
using | MovingImageContinuousIndexType
using | MovingImageDerivativeType
using | MovingImageIndexType
using | MovingImagePointType
using | NonZeroJacobianIndicesType
using | ParzenValueContainerType
using | PDFDerivativeValueType
using | PDFValueType
Protected Types inherited from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >
using | BSplineInterpolatorType
using | FixedImageIndexType
using | FixedImageIndexValueType
using | FixedImagePointType
using | IncrementalMarginalPDFIndexType = IncrementalMarginalPDFType::IndexType
using | IncrementalMarginalPDFPointer = typename IncrementalMarginalPDFType::Pointer
using | IncrementalMarginalPDFRegionType = IncrementalMarginalPDFType::RegionType
using | IncrementalMarginalPDFSizeType = IncrementalMarginalPDFType::SizeType
using | IncrementalMarginalPDFType = Image<PDFValueType, 2>
using | JointPDFDerivativesIndexType = JointPDFDerivativesType::IndexType
using | JointPDFDerivativesPointer = typename JointPDFDerivativesType::Pointer
using | JointPDFDerivativesRegionType = JointPDFDerivativesType::RegionType
using | JointPDFDerivativesSizeType = JointPDFDerivativesType::SizeType
using | JointPDFDerivativesType = Image<PDFDerivativeValueType, 3>
using | JointPDFIndexType = JointPDFType::IndexType
using | JointPDFPointer = typename JointPDFType::Pointer
using | JointPDFRegionType = JointPDFType::RegionType
using | JointPDFSizeType = JointPDFType::SizeType
using | JointPDFType = Image<PDFValueType, 2>
using | KernelFunctionPointer = typename KernelFunctionType::Pointer
using | KernelFunctionType = KernelFunctionBase2<PDFValueType>
using | MarginalPDFType = Array<PDFValueType>
using | MovingImageContinuousIndexType
using | MovingImageDerivativeType
using | MovingImageIndexType
using | MovingImagePointType
using | NonZeroJacobianIndicesType
using | OffsetValueType = typename FixedImageType::OffsetValueType
using | ParzenValueContainerType = Array<PDFValueType>
using | PDFDerivativeValueType = float
using | PDFValueType = double
Protected Types inherited from itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >
using | BSplineInterpolatorFloatPointer = typename BSplineInterpolatorFloatType::Pointer
using | BSplineInterpolatorFloatType
using | BSplineInterpolatorPointer = typename BSplineInterpolatorType::Pointer
using | BSplineInterpolatorType
using | FixedImageIndexType = typename FixedImageType::IndexType
using | FixedImageIndexValueType = typename FixedImageIndexType::IndexValueType
using | FixedImagePointType = typename TransformType::InputPointType
using | LinearInterpolatorPointer = typename LinearInterpolatorType::Pointer
using | LinearInterpolatorType = AdvancedLinearInterpolateImageFunction<MovingImageType, CoordinateRepresentationType>
using | MovingImageContinuousIndexType = typename InterpolatorType::ContinuousIndexType
using | MovingImageDerivativeType = typename BSplineInterpolatorType::CovariantVectorType
using | MovingImageIndexType = typename MovingImageType::IndexType
using | MovingImagePointType = typename TransformType::OutputPointType
using | NonZeroJacobianIndicesType = typename AdvancedTransformType::NonZeroJacobianIndicesType
using | ReducedBSplineInterpolatorPointer = typename ReducedBSplineInterpolatorType::Pointer
using | ReducedBSplineInterpolatorType
Protected Types inherited from elastix::MetricBase< TElastix >
using | ExactMetricImageSamplerPointer = typename ExactMetricImageSamplerType::Pointer
using | ExactMetricImageSamplerType = itk::ImageGridSampler<FixedImageType>
using | ExactMetricSampleGridSpacingType = typename ExactMetricImageSamplerType::SampleGridSpacingType
using | ParametersType = typename ITKBaseType::ParametersType
Static Protected Member Functions inherited from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ComputeDerivativeLowMemoryThreaderCallback (void *arg)
Static Protected Member Functions inherited from itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ComputePDFsThreaderCallback (void *arg)
static void | EvaluateParzenValues (double parzenWindowTerm, OffsetValueType parzenWindowIndex, const KernelFunctionType &kernel, PDFValueType *parzenValues)
Static Protected Member Functions inherited from itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | AccumulateDerivativesThreaderCallback (void *arg)
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueAndDerivativeThreaderCallback (void *arg)
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueThreaderCallback (void *arg)

## Member Typedef Documentation

## ConstPointer

template<class TElastix>

using elastix::AdvancedMattesMutualInformationMetric< TElastix >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 115 of file elxAdvancedMattesMutualInformationMetric.h.

## ITKBaseType

template<class TElastix>

using elastix::AdvancedMattesMutualInformationMetric< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType

Definition at line 177 of file elxAdvancedMattesMutualInformationMetric.h.

## Pointer

template<class TElastix>

using elastix::AdvancedMattesMutualInformationMetric< TElastix >::Pointer = itk::SmartPointer<Self>

Definition at line 114 of file elxAdvancedMattesMutualInformationMetric.h.

## Self

template<class TElastix>

using elastix::AdvancedMattesMutualInformationMetric< TElastix >::Self = AdvancedMattesMutualInformationMetric

Standard ITK-stuff.

Definition at line 109 of file elxAdvancedMattesMutualInformationMetric.h.

## Superclass1

template<class TElastix>

using elastix::AdvancedMattesMutualInformationMetric< TElastix >::Superclass1

Initial value:
itk::ParzenWindowMutualInformationImageToImageMetric<typename MetricBase<TElastix>::FixedImageType,
typename MetricBase<TElastix>::MovingImageType>
elastix::MetricBase::MovingImageType
typename ElastixType::MovingImageType MovingImageType
Definition elxMetricBase.h:92
itk::ParzenWindowMutualInformationImageToImageMetric
Computes the mutual information between two images to be registered using the method of Mattes et al.
Definition itkParzenWindowMutualInformationImageToImageMetric.h:77

Definition at line 110 of file elxAdvancedMattesMutualInformationMetric.h.

## Superclass2

template<class TElastix>

using elastix::AdvancedMattesMutualInformationMetric< TElastix >::Superclass2 = MetricBase<TElastix>

Definition at line 113 of file elxAdvancedMattesMutualInformationMetric.h.

## Constructor & Destructor Documentation

## AdvancedMattesMutualInformationMetric()

template<class TElastix>

elastix::AdvancedMattesMutualInformationMetric< TElastix >::AdvancedMattesMutualInformationMetric | ( |  | ) |

protected

The constructor.

## ~AdvancedMattesMutualInformationMetric()

template<class TElastix>

elastix::AdvancedMattesMutualInformationMetric< TElastix >::~AdvancedMattesMutualInformationMetric | ( |  | ) |

override protected default

The destructor.

## Member Function Documentation

## AfterEachIteration()

template<class TElastix>

void elastix::AdvancedMattesMutualInformationMetric< TElastix >::AfterEachIteration | ( |  | ) |

override 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.

## BeforeEachResolution()

template<class TElastix>

void elastix::AdvancedMattesMutualInformationMetric< TElastix >::BeforeEachResolution | ( |  | ) |

override 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.

## Compute_c()

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

## elxClassNameMacro()

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")

## GetClassName()

template<class TElastix>

virtual const char * elastix::AdvancedMattesMutualInformationMetric< TElastix >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::ParzenWindowMutualInformationImageToImageMetric< TFixedImage, TMovingImage >.

## GetCurrentIteration()

template<class TElastix>

virtual unsigned int elastix::AdvancedMattesMutualInformationMetric< TElastix >::GetCurrentIteration | ( |  | ) | const

virtual

## GetParam_c()

template<class TElastix>

virtual double elastix::AdvancedMattesMutualInformationMetric< TElastix >::GetParam_c | ( |  | ) | const

virtual

## GetParam_gamma()

template<class TElastix>

virtual double elastix::AdvancedMattesMutualInformationMetric< TElastix >::GetParam_gamma | ( |  | ) | const

virtual

## Initialize()

template<class TElastix>

void elastix::AdvancedMattesMutualInformationMetric< TElastix >::Initialize | ( |  | ) |

override

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

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TElastix>

elastix::AdvancedMattesMutualInformationMetric< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | AdvancedMattesMutualInformationMetric< TElastix > |  | ) |

## itkStaticConstMacro() [1/2]

template<class TElastix>

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

The fixed image dimension.

## itkStaticConstMacro() [2/2]

template<class TElastix>

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

The moving image dimension.

## New()

template<class TElastix>

Pointer elastix::AdvancedMattesMutualInformationMetric< TElastix >::New | ( |  | ) |

static

Method for creation through the object factory.

## SetCurrentIteration()

template<class TElastix>

virtual void elastix::AdvancedMattesMutualInformationMetric< TElastix >::SetCurrentIteration | ( | unsigned int | _arg | ) |

virtual

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

## SetParam_c()

template<class TElastix>

virtual void elastix::AdvancedMattesMutualInformationMetric< TElastix >::SetParam_c | ( | double | _arg | ) |

virtual

Set/Get c. For finite difference derivative estimation

## SetParam_gamma()

template<class TElastix>

virtual void elastix::AdvancedMattesMutualInformationMetric< TElastix >::SetParam_gamma | ( | double | _arg | ) |

virtual

Set/Get gamma. For finite difference derivative estimation

## Field Documentation

## elxOverrideGetSelfMacro

template<class TElastix>

elastix::AdvancedMattesMutualInformationMetric< TElastix >::elxOverrideGetSelfMacro

private

Definition at line 224 of file elxAdvancedMattesMutualInformationMetric.h.

## m_CurrentIteration

template<class TElastix>

unsigned long elastix::AdvancedMattesMutualInformationMetric< TElastix >::m_CurrentIteration

protected

Definition at line 217 of file elxAdvancedMattesMutualInformationMetric.h.

## m_Param_c

template<class TElastix>

double elastix::AdvancedMattesMutualInformationMetric< TElastix >::m_Param_c

private

Definition at line 226 of file elxAdvancedMattesMutualInformationMetric.h.

## m_Param_gamma

template<class TElastix>

double elastix::AdvancedMattesMutualInformationMetric< TElastix >::m_Param_gamma

private

Definition at line 227 of file elxAdvancedMattesMutualInformationMetric.h.

Generated on 1768596610 for elastix by 1.15.0 |