18#ifndef itkMattesMutualInformationImageToImageMetric_h
19#define itkMattesMutualInformationImageToImageMetric_h
116template <
typename TFixedImage,
typename TMovingImage>
136 using typename Superclass::TransformType;
137 using typename Superclass::TransformPointer;
138 using typename Superclass::TransformJacobianType;
139 using typename Superclass::InterpolatorType;
140 using typename Superclass::MeasureType;
141 using typename Superclass::DerivativeType;
142 using typename Superclass::ParametersType;
143 using typename Superclass::FixedImageType;
144 using typename Superclass::MovingImageType;
145 using typename Superclass::MovingImagePointType;
146 using typename Superclass::FixedImageConstPointer;
147 using typename Superclass::MovingImageConstPointer;
148 using typename Superclass::BSplineTransformWeightsType;
149 using typename Superclass::BSplineTransformIndexArrayType;
151 using typename Superclass::CoordinateRepresentationType;
152 using typename Superclass::FixedImageSampleContainer;
153 using typename Superclass::ImageDerivativesType;
154 using typename Superclass::WeightsValueType;
160 static constexpr unsigned int MovingImageDimension = MovingImageType::ImageDimension;
220 itkSetMacro(UseExplicitPDFDerivatives,
bool);
221 itkGetConstReferenceMacro(UseExplicitPDFDerivatives,
bool);
222 itkBooleanMacro(UseExplicitPDFDerivatives);
240 if (this->m_MMIMetricPerThreadVariables ==
nullptr)
244 return this->m_MMIMetricPerThreadVariables[0].JointPDF;
257 if (this->m_MMIMetricPerThreadVariables ==
nullptr)
261 return this->m_MMIMetricPerThreadVariables[0].JointPDFDerivatives;
296 unsigned int sampleNumber,
310 double movingImageValue)
const override;
321 double movingImageValue,
364#if !defined(ITK_WRAPPING_PARSER)
366 itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedMMIMetricPerThreadStruct, AlignedMMIMetricPerThreadStruct);
375 bool m_UseExplicitPDFDerivatives{
true };
376 mutable bool m_ImplicitDerivativesSecondPass{
false };
380#ifndef ITK_MANUAL_INSTANTIATION
381# include "itkMattesMutualInformationImageToImageMetric.hxx"
Array class with size defined at construction time.
Derivative of a BSpline kernel used for density estimation and nonparametric regression.
BSpline kernel used for density estimation and nonparametric regression.
A templated class holding a n-Dimensional covariant vector.
An image region represents a structured region of data.
Computes similarity between regions of two images.
typename TransformType::OutputPointType MovingImagePointType
std::vector< FixedImageSamplePoint > FixedImageSampleContainer
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Define additional traits for native types such as int or float.
Superclass::ParametersType ParametersType
SmartPointer< Self > Pointer
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
unsigned long SizeValueType