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);
173 const typename JointPDFType::
Pointer GetJointPDF ()
const
175 if( this->m_ThreaderJointPDF.size() == 0 )
179 return this->m_ThreaderJointPDF[0];
191 if( this->m_ThreaderJointPDFDerivatives.size() == 0 )
195 return this->m_ThreaderJointPDFDerivatives[0];
211 void PrintSelf(std::ostream& os, Indent indent) const;
228 virtual void GetValueCommonAfterThreadedExecution();
230 OffsetValueType ComputeSingleFixedImageParzenWindowIndex( const FixedImagePixelType & value ) const;
255 mutable std::vector<OffsetValueType> m_JointPdfIndex1DArray;
258 mutable std::vector<PDFValueType> m_MovingImageMarginalPDF;
259 mutable std::vector<std::vector<PDFValueType> > m_ThreaderFixedImageMarginalPDF;
262 typename std::vector<JointPDFType::Pointer> m_ThreaderJointPDF;
263 typename std::vector<JointPDFDerivativesType::Pointer> m_ThreaderJointPDFDerivatives;
265 std::vector<int> m_ThreaderJointPDFStartBin;
266 std::vector<int> m_ThreaderJointPDFEndBin;
268 mutable std::vector<PDFValueType> m_ThreaderJointPDFSum;
272 mutable std::vector<DerivativeType> m_LocalDerivativeByParzenBin;
276 void operator = (const Self &);
279 virtual void ComputeResults( void ) const;
282 mutable bool m_ComputeDerivative;
288 #ifndef ITK_MANUAL_INSTANTIATION
289 #include "itkMattesMutualInformationImageToImageMetricv4.hxx"