18 #ifndef __itkMattesMutualInformationImageToImageMetricv4_h
19 #define __itkMattesMutualInformationImageToImageMetricv4_h
95 template <
class TFixedImage,
class TMovingImage,
class TVirtualImage = TFixedImage >
113 typedef typename Superclass::MeasureType
MeasureType;
148 itkGetConstReferenceMacro(NumberOfHistogramBins,
SizeValueType);
166 const typename JointPDFType::
Pointer GetJointPDF ()
const
168 if( this->m_ThreaderJointPDF.size() == 0 )
172 return this->m_ThreaderJointPDF[0];
184 if( this->m_ThreaderJointPDFDerivatives.size() == 0 )
188 return this->m_ThreaderJointPDFDerivatives[0];
203 void PrintSelf(std::ostream& os, Indent indent) const;
220 virtual void GetValueCommonAfterThreadedExecution();
222 OffsetValueType ComputeSingleFixedImageParzenWindowIndex( const FixedImagePixelType & value ) const;
247 mutable std::vector<OffsetValueType> m_JointPdfIndex1DArray;
250 mutable std::vector<PDFValueType> m_MovingImageMarginalPDF;
251 mutable std::vector<std::vector<PDFValueType> > m_ThreaderFixedImageMarginalPDF;
254 typename std::vector<JointPDFType::Pointer> m_ThreaderJointPDF;
255 typename std::vector<JointPDFDerivativesType::Pointer> m_ThreaderJointPDFDerivatives;
257 std::vector<int> m_ThreaderJointPDFStartBin;
258 std::vector<int> m_ThreaderJointPDFEndBin;
260 mutable std::vector<PDFValueType> m_ThreaderJointPDFSum;
264 mutable std::vector<DerivativeType> m_LocalDerivativeByParzenBin;
268 void operator = (const Self &);
271 virtual void ComputeResults( void ) const;
277 #ifndef ITK_MANUAL_INSTANTIATION
278 #include "itkMattesMutualInformationImageToImageMetricv4.hxx"