Loading...
Searching...
No Matches
itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage > Class Template Reference
Components » Metrics

`#include <itkParzenWindowNormalizedMutualInformationImageToImageMetric.h>`

## Detailed Description

template<class TFixedImage, class TMovingImage>
class itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >

Computes the normalized mutual information between two images to be registered using a method based on Thevenaz&Unser [3].

ParzenWindowNormalizedMutualInformationImageToImageMetric computes the normalized mutual information between a fixed and moving image to be registered. The calculations are based on the method of Mattes et al [1,2] and Thevenaz&Unser [3], where the probability density distribution are estimated using Parzen histograms. The expression for the derivative is derived following [3].

Construction of the PDFs is implemented in the superclass ParzenWindowHistogramImageToImageMetric.

This implementation of the NormalizedMutualInformation is based on the AdvancedImageToImageMetric, which means that:

- It uses the ImageSampler-framework
- It makes use of the compact support of B-splines, in case of B-spline transforms.
- Image derivatives are computed using either the B-spline interpolator's implementation or by nearest neighbor interpolation of a precomputed central difference image.
- A minimum number of samples that should map within the moving image (mask) can be specified.

Notes:

1. This class returns the negative normalized mutual information value.
2. This class in not thread safe due the private data structures used to the store the marginal and joint pdfs.

References:
[1] "Nonrigid multimodality image registration"
D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank
Medical Imaging 2001: Image Processing, 2001, pp. 1609-1620.
[2] "PET-CT Image Registration in the Chest Using Free-form Deformations"
D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank
IEEE Transactions in Medical Imaging. To Appear.
[3] "Optimization of Mutual Information for MultiResolution Image Registration"
P. Thevenaz and M. Unser
IEEE Transactions in Image Processing, 9(12) December 2000.

See also
  ParzenWindowHistogramImageToImageMetric

Definition at line 72 of file itkParzenWindowNormalizedMutualInformationImageToImageMetric.h.

Inheritance diagram for itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >:
[legend]

## Public Types

using | ConstPointer = SmartPointer<const Self>
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 = ParzenWindowNormalizedMutualInformationImageToImageMetric
using | Superclass = ParzenWindowHistogramImageToImageMetric<TFixedImage, TMovingImage>
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 Member Functions

virtual const char * | GetClassName () const
MeasureType | GetValue (const ParametersType &parameters) const override
void | GetValueAndDerivative (const ParametersType &parameters, MeasureType &Value, DerivativeType &Derivative) const override
| ITK_DISALLOW_COPY_AND_MOVE (ParzenWindowNormalizedMutualInformationImageToImageMetric)
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
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 ()

## Static Public Member Functions

static Pointer | New ()

## Protected Types

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 | 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 Member Functions

virtual void | ComputeLogMarginalPDF (MarginalPDFType &pdf) const
virtual MeasureType | ComputeNormalizedMutualInformation (MeasureType &jointEntropy) const
| ParzenWindowNormalizedMutualInformationImageToImageMetric ()=default
void | PrintSelf (std::ostream &os, Indent indent) const override
| ~ParzenWindowNormalizedMutualInformationImageToImageMetric () 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 | GetValueAndAnalyticDerivative (const ParametersType &, MeasureType &, DerivativeType &) const
virtual void | GetValueAndFiniteDifferenceDerivative (const ParametersType &, MeasureType &, DerivativeType &) const
virtual void | InitializeHistograms ()
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

## Additional Inherited Members

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

## Member Typedef Documentation

## BSplineInterpolatorType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::BSplineInterpolatorType

protected

Typedefs used for computing image derivatives.

Definition at line 236 of file itkAdvancedImageToImageMetric.h.

## ConstPointer

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer = SmartPointer<const Self>

Definition at line 82 of file itkParzenWindowNormalizedMutualInformationImageToImageMetric.h.

## FixedImageIndexType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImageIndexType

protected

Protected Typedefs Typedefs for indices and points.

Definition at line 229 of file itkAdvancedImageToImageMetric.h.

## FixedImageIndexValueType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImageIndexValueType

protected

Definition at line 230 of file itkAdvancedImageToImageMetric.h.

## FixedImageLimiterOutputType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImageLimiterOutputType

Definition at line 126 of file itkAdvancedImageToImageMetric.h.

## FixedImageLimiterType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImageLimiterType

Typedefs for Limiter support.

Definition at line 124 of file itkAdvancedImageToImageMetric.h.

## FixedImageMaskPointer

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImageMaskPointer

Definition at line 111 of file itkAdvancedImageToImageMetric.h.

## FixedImageMaskType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImageMaskType

Definition at line 110 of file itkAdvancedImageToImageMetric.h.

## FixedImagePixelType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImagePixelType

Some useful extra typedefs.

Definition at line 118 of file itkAdvancedImageToImageMetric.h.

## FixedImagePointType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::FixedImagePointType

protected

Definition at line 233 of file itkAdvancedImageToImageMetric.h.

## ImageSampleContainerPointer

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::ImageSampleContainerPointer

Definition at line 123 of file itkAdvancedImageToImageMetric.h.

## ImageSampleContainerType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::ImageSampleContainerType

Definition at line 122 of file itkAdvancedImageToImageMetric.h.

## ImageSamplerPointer

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::ImageSamplerPointer

Definition at line 121 of file itkAdvancedImageToImageMetric.h.

## ImageSamplerType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::ImageSamplerType

Typedefs for the ImageSampler.

Definition at line 120 of file itkAdvancedImageToImageMetric.h.

## IncrementalMarginalPDFType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::IncrementalMarginalPDFType

protected

Definition at line 248 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFDerivativesIndexType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesIndexType

protected

Definition at line 253 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFDerivativesRegionType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesRegionType

protected

Definition at line 254 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFDerivativesSizeType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesSizeType

protected

Definition at line 255 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFDerivativesType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFDerivativesType

protected

Definition at line 246 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFIndexType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFIndexType

protected

Definition at line 250 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFRegionType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFRegionType

protected

Definition at line 251 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFSizeType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFSizeType

protected

Definition at line 252 of file itkParzenWindowHistogramImageToImageMetric.h.

## JointPDFType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::JointPDFType

protected

Definition at line 244 of file itkParzenWindowHistogramImageToImageMetric.h.

## KernelFunctionType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::KernelFunctionType

protected

Typedefs for Parzen kernel.

Definition at line 262 of file itkParzenWindowHistogramImageToImageMetric.h.

## MarginalPDFType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::MarginalPDFType

protected

Definition at line 243 of file itkParzenWindowHistogramImageToImageMetric.h.

## MovingImageContinuousIndexType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageContinuousIndexType

protected

Definition at line 235 of file itkAdvancedImageToImageMetric.h.

## MovingImageDerivativeScalesType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageDerivativeScalesType

Definition at line 128 of file itkAdvancedImageToImageMetric.h.

## MovingImageDerivativeType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageDerivativeType

protected

Definition at line 237 of file itkAdvancedImageToImageMetric.h.

## MovingImageIndexType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageIndexType

protected

Definition at line 232 of file itkAdvancedImageToImageMetric.h.

## MovingImageLimiterOutputType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageLimiterOutputType

Definition at line 127 of file itkAdvancedImageToImageMetric.h.

## MovingImageLimiterType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageLimiterType

Definition at line 125 of file itkAdvancedImageToImageMetric.h.

## MovingImageMaskPointer

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageMaskPointer

Definition at line 113 of file itkAdvancedImageToImageMetric.h.

## MovingImageMaskType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageMaskType

Definition at line 112 of file itkAdvancedImageToImageMetric.h.

## MovingImagePointType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImagePointType

protected

Definition at line 234 of file itkAdvancedImageToImageMetric.h.

## MovingImageRegionType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::MovingImageRegionType

Definition at line 119 of file itkAdvancedImageToImageMetric.h.

## NonZeroJacobianIndicesType

template<class TFixedImage, class TMovingImage>

using itk::AdvancedImageToImageMetric< TFixedImage, TMovingImage >::NonZeroJacobianIndicesType

protected

Typedefs for support of sparse Jacobians and compact support of transformations.

Definition at line 238 of file itkAdvancedImageToImageMetric.h.

## ParzenValueContainerType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::ParzenValueContainerType

protected

Definition at line 259 of file itkParzenWindowHistogramImageToImageMetric.h.

## PDFValueType

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowHistogramImageToImageMetric< TFixedImage, TMovingImage >::PDFValueType

protected

Typedefs for the PDFs and PDF derivatives.

Definition at line 241 of file itkParzenWindowHistogramImageToImageMetric.h.

## Pointer

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Pointer = SmartPointer<Self>

Definition at line 81 of file itkParzenWindowNormalizedMutualInformationImageToImageMetric.h.

## Self

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Self = ParzenWindowNormalizedMutualInformationImageToImageMetric

Standard class typedefs.

Definition at line 79 of file itkParzenWindowNormalizedMutualInformationImageToImageMetric.h.

## Superclass

template<class TFixedImage, class TMovingImage>

using itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::Superclass = ParzenWindowHistogramImageToImageMetric<TFixedImage, TMovingImage>

Definition at line 80 of file itkParzenWindowNormalizedMutualInformationImageToImageMetric.h.

## Constructor & Destructor Documentation

## ParzenWindowNormalizedMutualInformationImageToImageMetric()

template<class TFixedImage, class TMovingImage>

itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ParzenWindowNormalizedMutualInformationImageToImageMetric | ( |  | ) |

protected default

The constructor.

## ~ParzenWindowNormalizedMutualInformationImageToImageMetric()

template<class TFixedImage, class TMovingImage>

itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::~ParzenWindowNormalizedMutualInformationImageToImageMetric | ( |  | ) |

override protected default

The destructor.

## Member Function Documentation

## ComputeLogMarginalPDF()

template<class TFixedImage, class TMovingImage>

virtual void itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ComputeLogMarginalPDF | ( | MarginalPDFType & | pdf | ) | const

protected virtual

Replace the marginal probabilities by log(probabilities) Changes the input pdf since they are not needed anymore!

## ComputeNormalizedMutualInformation()

template<class TFixedImage, class TMovingImage>

virtual MeasureType itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ComputeNormalizedMutualInformation | ( | MeasureType & | jointEntropy | ) | const

protected virtual

Compute the normalized mutual information and the jointEntropy NMI = (Ef + Em) / Ej Ef = fixed marginal entropy = - sum_k sum_i p(i,k) log pf(k) Em = moving marginal entropy = - sum_k sum_i p(i,k) log pm(i) Ej = joint entropy = - sum_k sum_i p(i,k) log p(i,k)

## GetClassName()

template<class TFixedImage, class TMovingImage>

virtual const char * itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

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

Reimplemented in elastix::NormalizedMutualInformationMetric< TElastix >.

## GetValue()

template<class TFixedImage, class TMovingImage>

MeasureType itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValue | ( | const ParametersType & | parameters | ) | const

override

Get the value: the negative normalized mutual information.

## GetValueAndDerivative()

template<class TFixedImage, class TMovingImage>

void itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::GetValueAndDerivative | ( | const ParametersType & | parameters,
|  | MeasureType & | Value,
|  | DerivativeType & | Derivative ) const

override

Get the value and derivatives for single valued optimizers.

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TFixedImage, class TMovingImage>

itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::ITK_DISALLOW_COPY_AND_MOVE | ( | ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage > |  | ) |

## itkStaticConstMacro() [1/2]

template<class TFixedImage, class TMovingImage>

itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::itkStaticConstMacro | ( | FixedImageDimension | ,
|  | unsigned int | ,
|  | FixedImageType::ImageDimension | )

The fixed image dimension.

## itkStaticConstMacro() [2/2]

template<class TFixedImage, class TMovingImage>

itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::itkStaticConstMacro | ( | MovingImageDimension | ,
|  | unsigned int | ,
|  | MovingImageType::ImageDimension | )

The moving image dimension.

## New()

template<class TFixedImage, class TMovingImage>

Pointer itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::New | ( |  | ) |

static

Method for creation through the object factory.

## PrintSelf()

template<class TFixedImage, class TMovingImage>

void itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< TFixedImage, TMovingImage >::PrintSelf | ( | std::ostream & | os,
|  | Indent | indent ) const

override protected

Print Self.

Generated on 1768596610 for elastix by 1.15.0 |