![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <elxNormalizedMutualInformationMetric.h>
A metric based on the itk::ParzenWindowNormalizedMutualInformationImageToImageMetric.
The parameters used in this class are:
Metric: Select this metric as follows:
(Metric "NormalizedMutualInformation")
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, NumberOfHistograms is used.
example: (NumberOfFixedHistogramBins 32 32 64)
The default is the value of NumberOfHistograms.
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, NumberOfHistograms is used.
example: (NumberOfMovingHistogramBins 32 32 64)
The default is the value of NumberOfHistograms.
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 image has gray values from 0 to 1000 and the FixedLimitRangeRatio is 0.001, the joint histogram will expect fixed image gray values from -0.001 to 1000.001. 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 image has gray values from 0 to 1000 and the MovingLimitRangeRatio is 0.001, the joint histogram will expect moving image gray values from -0.001 to 1000.001. 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.
Definition at line 73 of file elxNormalizedMutualInformationMetric.h.
Public Types | |
using | ConstPointer = itk::SmartPointer< const Self > |
using | ITKBaseType = typename Superclass2::ITKBaseType |
using | Pointer = itk::SmartPointer< Self > |
using | Self = NormalizedMutualInformationMetric |
using | Superclass1 = itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< typename MetricBase< TElastix >::FixedImageType, typename MetricBase< TElastix >::MovingImageType > |
using | Superclass2 = MetricBase< TElastix > |
![]() | |
using | ConstPointer = SmartPointer< const Self > |
using | FixedImageLimiterOutputType = typename FixedImageLimiterType::OutputType |
using | FixedImageLimiterType = LimiterFunctionBase< RealType, FixedImageDimension > |
using | FixedImageMaskPointer = SmartPointer< FixedImageMaskType > |
using | FixedImageMaskType = ImageMaskSpatialObject< Self::FixedImageDimension > |
using | FixedImagePixelType = typename FixedImageType::PixelType |
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 | MovingImageLimiterType = LimiterFunctionBase< RealType, MovingImageDimension > |
using | MovingImageMaskPointer = SmartPointer< MovingImageMaskType > |
using | MovingImageMaskType = ImageMaskSpatialObject< Self::MovingImageDimension > |
using | MovingImageRegionType = typename MovingImageType::RegionType |
using | Pointer = SmartPointer< Self > |
using | Self = ParzenWindowNormalizedMutualInformationImageToImageMetric |
using | Superclass = ParzenWindowHistogramImageToImageMetric< MetricBase< TElastix >::FixedImageType, MetricBase< TElastix >::MovingImageType > |
![]() | |
using | ConstPointer = SmartPointer< const Self > |
using | DerivativeValueType = typename DerivativeType::ValueType |
using | FixedImageLimiterOutputType = typename FixedImageLimiterType::OutputType |
using | FixedImageLimiterType = LimiterFunctionBase< RealType, FixedImageDimension > |
using | FixedImageMaskPointer = SmartPointer< FixedImageMaskType > |
using | FixedImageMaskType = ImageMaskSpatialObject< Self::FixedImageDimension > |
using | FixedImagePixelType = typename FixedImageType::PixelType |
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 | MovingImageLimiterType = LimiterFunctionBase< RealType, MovingImageDimension > |
using | MovingImageMaskPointer = SmartPointer< MovingImageMaskType > |
using | MovingImageMaskType = ImageMaskSpatialObject< Self::MovingImageDimension > |
using | MovingImageRegionType = typename MovingImageType::RegionType |
using | Pointer = SmartPointer< Self > |
using | Self = ParzenWindowHistogramImageToImageMetric |
using | Superclass = AdvancedImageToImageMetric< TFixedImage, TMovingImage > |
using | ThreadInfoType = MultiThreaderBase::WorkUnitInfo |
![]() | |
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 |
![]() | |
using | AdvancedMetricType = itk::AdvancedImageToImageMetric< FixedImageType, MovingImageType > |
using | CoordinateRepresentationType = typename ITKBaseType::ParametersValueType |
using | ElastixType = TElastix |
using | FixedImageType = typename ElastixType::FixedImageType |
using | FixedPointSetType = itk::PointSet< CoordinateRepresentationType, FixedImageDimension, itk::DefaultStaticMeshTraits< CoordinateRepresentationType, FixedImageDimension, FixedImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > |
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 = itk::PointSet< CoordinateRepresentationType, MovingImageDimension, itk::DefaultStaticMeshTraits< CoordinateRepresentationType, MovingImageDimension, MovingImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > |
using | MovingPointType = typename MovingImageType::PointType |
using | MovingPointValueType = typename MovingPointType::ValueType |
using | RegistrationType = typename ElastixType::RegistrationBaseType |
using | Self = MetricBase |
using | Superclass = BaseComponentSE< TElastix > |
![]() | |
using | ElastixType = TElastix |
using | RegistrationType = typename ElastixType::RegistrationBaseType |
using | Self = BaseComponentSE |
using | Superclass = BaseComponent |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
template<typename TBaseComponent > | |
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType()) |
static void | InitializeElastixExecutable () |
static bool | IsElastixLibrary () |
Protected Member Functions | |
NormalizedMutualInformationMetric () | |
~NormalizedMutualInformationMetric () override=default | |
![]() | |
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 | |
![]() | |
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 ¶meters) const |
virtual void | ComputePDFsAndIncrementalPDFs (const ParametersType ¶meters) const |
virtual void | ComputePDFsAndPDFDerivatives (const ParametersType ¶meters) const |
virtual void | ComputePDFsSingleThreaded (const ParametersType ¶meters) 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 | |
![]() | |
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 | |
![]() | |
virtual MeasureType | GetExactValue (const ParametersType ¶meters) |
MetricBase ()=default | |
~MetricBase () override=default | |
![]() | |
BaseComponentSE ()=default | |
~BaseComponentSE () override=default | |
![]() | |
BaseComponent ()=default | |
virtual | ~BaseComponent ()=default |
Private Attributes | |
elxOverrideGetSelfMacro | |
using elastix::NormalizedMutualInformationMetric< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 89 of file elxNormalizedMutualInformationMetric.h.
using elastix::NormalizedMutualInformationMetric< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 151 of file elxNormalizedMutualInformationMetric.h.
using elastix::NormalizedMutualInformationMetric< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 88 of file elxNormalizedMutualInformationMetric.h.
using elastix::NormalizedMutualInformationMetric< TElastix >::Self = NormalizedMutualInformationMetric |
Standard ITK-stuff.
Definition at line 83 of file elxNormalizedMutualInformationMetric.h.
using elastix::NormalizedMutualInformationMetric< TElastix >::Superclass1 = itk::ParzenWindowNormalizedMutualInformationImageToImageMetric<typename MetricBase<TElastix>::FixedImageType, typename MetricBase<TElastix>::MovingImageType> |
Definition at line 84 of file elxNormalizedMutualInformationMetric.h.
using elastix::NormalizedMutualInformationMetric< TElastix >::Superclass2 = MetricBase<TElastix> |
Definition at line 87 of file elxNormalizedMutualInformationMetric.h.
|
inlineprotected |
The constructor.
Definition at line 168 of file elxNormalizedMutualInformationMetric.h.
|
overrideprotecteddefault |
The destructor.
|
overridevirtual |
Execute stuff before each new pyramid resolution:
Reimplemented from elastix::BaseComponent.
elastix::NormalizedMutualInformationMetric< TElastix >::elxClassNameMacro | ( | "NormalizedMutualInformation" | ) |
Name of this class. Use this name in the parameter file to select this specific metric.
example: (Metric "NormalizedMutualInformation")
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ParzenWindowNormalizedMutualInformationImageToImageMetric< MetricBase< TElastix >::FixedImageType, MetricBase< TElastix >::MovingImageType >.
|
override |
Set up a timer to measure the initialization time and call the Superclass' implementation.
elastix::NormalizedMutualInformationMetric< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | NormalizedMutualInformationMetric< TElastix > | ) |
elastix::NormalizedMutualInformationMetric< TElastix >::itkStaticConstMacro | ( | FixedImageDimension | , |
unsigned int | , | ||
FixedImageType::ImageDimension | |||
) |
The fixed image dimension.
elastix::NormalizedMutualInformationMetric< TElastix >::itkStaticConstMacro | ( | MovingImageDimension | , |
unsigned int | , | ||
MovingImageType::ImageDimension | |||
) |
The moving image dimension.
|
static |
Method for creation through the object factory.
|
private |
Definition at line 175 of file elxNormalizedMutualInformationMetric.h.
Generated on 1739326392 for elastix by ![]() |
![]() |