18 #ifndef itkMattesMutualInformationImageToImageMetric_h
19 #define itkMattesMutualInformationImageToImageMetric_h
111 template <
typename TFixedImage,
typename TMovingImage>
155 itkStaticConstMacro(MovingImageDimension,
unsigned int,
156 MovingImageType::ImageDimension);
165 virtual void Initialize(
void) ITK_OVERRIDE;
184 itkGetConstReferenceMacro(NumberOfHistogramBins, SizeValueType);
211 itkSetMacro(UseExplicitPDFDerivatives,
bool);
212 itkGetConstReferenceMacro(UseExplicitPDFDerivatives,
bool);
213 itkBooleanMacro(UseExplicitPDFDerivatives);
227 const typename JointPDFType::
Pointer GetJointPDF ()
const
229 if( this->m_MMIMetricPerThreadVariables == ITK_NULLPTR )
233 return this->m_MMIMetricPerThreadVariables[0].JointPDF;
245 if( this->m_MMIMetricPerThreadVariables == ITK_NULLPTR )
249 return this->m_MMIMetricPerThreadVariables[0].JointPDFDerivatives;
257 void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
279 void ComputePDFDerivatives(
ThreadIdType threadId,
unsigned int sampleNumber,
int movingImageParzenWindowIndex,
281 & movingImageGradientValue,
284 virtual
void GetValueThreadPreProcess(
ThreadIdType threadId,
bool withinSampleThread) const ITK_OVERRIDE;
285 virtual
void GetValueThreadPostProcess(
ThreadIdType threadId,
bool withinSampleThread) const ITK_OVERRIDE;
289 double movingImageValue) const ITK_OVERRIDE;
291 virtual
void GetValueAndDerivativeThreadPreProcess(
ThreadIdType threadId,
bool withinSampleThread) const ITK_OVERRIDE;
292 virtual
void GetValueAndDerivativeThreadPostProcess(
ThreadIdType threadId,
bool withinSampleThread) const ITK_OVERRIDE;
297 movingImageGradientValue) const ITK_OVERRIDE;
311 typename CubicBSplineFunctionType::
Pointer m_CubicBSplineKernel;
312 typename CubicBSplineDerivativeFunctionType::
Pointer m_CubicBSplineDerivativeKernel;
318 mutable PRatioArrayType m_PRatioArray;
322 mutable MarginalPDFType m_MovingImageMarginalPDF;
343 #if !defined(ITK_WRAPPING_PARSER)
345 PaddedMMIMetricPerThreadStruct);
346 itkAlignedTypedef( ITK_CACHE_LINE_ALIGNMENT, PaddedMMIMetricPerThreadStruct,
347 AlignedMMIMetricPerThreadStruct );
361 #ifndef ITK_MANUAL_INSTANTIATION
362 #include "itkMattesMutualInformationImageToImageMetric.hxx"
Array class with size defined at construction time.
Light weight base class for most itk classes.
Represent the size (bounds) of a n-dimensional image.
signed long OffsetValueType
signed long IndexValueType
unsigned long SizeValueType
Derivative of a BSpline kernel used for density estimation and nonparameteric regression.
BSpline kernel used for density estimation and nonparameteric regression.
Array2D class representing a 2D array with size defined at construction time.
unsigned int ThreadIdType
std::vector< FixedImageSamplePoint > FixedImageSampleContainer
Control indentation during Print() invocation.
ImageBaseType::SizeType SizeType
Define additional traits for native types such as int or float.
Computes similarity between regions of two images.
A templated class holding a geometric point in n-Dimensional space.
A templated class holding a n-Dimensional covariant vector.
Templated n-dimensional image class.
ImageBaseType::IndexType IndexType