18 #ifndef itkMattesMutualInformationImageToImageMetric_h
19 #define itkMattesMutualInformationImageToImageMetric_h
111 template <
typename TFixedImage,
typename TMovingImage>
156 static constexpr
unsigned int MovingImageDimension = MovingImageType::ImageDimension;
165 void Initialize()
override;
184 itkGetConstReferenceMacro(NumberOfHistogramBins,
SizeValueType);
211 itkSetMacro(UseExplicitPDFDerivatives,
bool);
212 itkGetConstReferenceMacro(UseExplicitPDFDerivatives,
bool);
213 itkBooleanMacro(UseExplicitPDFDerivatives);
229 if( this->m_MMIMetricPerThreadVariables ==
nullptr )
233 return this->m_MMIMetricPerThreadVariables[0].JointPDF;
245 if( this->m_MMIMetricPerThreadVariables ==
nullptr )
249 return this->m_MMIMetricPerThreadVariables[0].JointPDFDerivatives;
257 void PrintSelf(std::ostream & os,
Indent indent)
const override;
277 void ComputePDFDerivatives(
ThreadIdType threadId,
unsigned int sampleNumber,
int movingImageParzenWindowIndex,
279 & movingImageGradientValue,
282 void GetValueThreadPreProcess(
ThreadIdType threadId,
bool withinSampleThread)
const override;
283 void GetValueThreadPostProcess(
ThreadIdType threadId,
bool withinSampleThread)
const override;
287 double movingImageValue)
const override;
289 void GetValueAndDerivativeThreadPreProcess(
ThreadIdType threadId,
bool withinSampleThread)
const override;
290 void GetValueAndDerivativeThreadPostProcess(
ThreadIdType threadId,
bool withinSampleThread)
const override;
295 movingImageGradientValue)
const override;
341 #if !defined(ITK_WRAPPING_PARSER)
343 PaddedMMIMetricPerThreadStruct);
344 itkAlignedTypedef( ITK_CACHE_LINE_ALIGNMENT, PaddedMMIMetricPerThreadStruct,
345 AlignedMMIMetricPerThreadStruct );
354 bool m_UseExplicitPDFDerivatives{
true};
355 mutable bool m_ImplicitDerivativesSecondPass{
false};
359 #ifndef ITK_MANUAL_INSTANTIATION
360 #include "itkMattesMutualInformationImageToImageMetric.hxx"
Array class with size defined at construction time.
typename BSplineTransformWeightsType::ValueType WeightsValueType
Light weight base class for most itk classes.
Define numeric traits for std::vector.
typename BSplineTransformType::WeightsType BSplineTransformWeightsType
typename TransformType::JacobianType TransformJacobianType
unsigned long SizeValueType
Derivative of a BSpline kernel used for density estimation and nonparameteric regression.
BSpline kernel used for density estimation and nonparameteric regression.
ImageBaseType::SizeType SizeType
ImageBaseType::IndexType IndexType
TMovingImage MovingImageType
signed long IndexValueType
typename Superclass::ParametersValueType CoordinateRepresentationType
std::vector< FixedImageSamplePoint > FixedImageSampleContainer
typename FixedImageType::ConstPointer FixedImageConstPointer
unsigned int ThreadIdType
Base class for all image interpolaters.
typename TransformType::Pointer TransformPointer
typename BSplineTransformType::ParameterIndexArrayType BSplineTransformIndexArrayType
TFixedImage FixedImageType
Control indentation during Print() invocation.
ImageBaseType::RegionType RegionType
Computes similarity between regions of two images.
A templated class holding a n-Dimensional covariant vector.
signed long OffsetValueType
typename MovingImageType::ConstPointer MovingImageConstPointer
typename BSplineTransformIndexArrayType::ValueType IndexValueType
Templated n-dimensional image class.
typename TransformType::OutputPointType MovingImagePointType