18 #ifndef itkMattesMutualInformationImageToImageMetricv4_h
19 #define itkMattesMutualInformationImageToImageMetricv4_h
97 template <
typename TFixedImage,
typename TMovingImage,
typename TVirtualImage = TFixedImage,
98 typename TInternalComputationValueType = double,
99 typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage,TMovingImage,TVirtualImage,TInternalComputationValueType>
102 public ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits>
110 TInternalComputationValueType,TMetricTraits>;
146 static constexpr
typename TVirtualImage::ImageDimensionType VirtualImageDimension = TVirtualImage::ImageDimension;
147 static constexpr
typename TFixedImage::ImageDimensionType FixedImageDimension = TFixedImage::ImageDimension;
148 static constexpr
typename TMovingImage::ImageDimensionType MovingImageDimension = TMovingImage::ImageDimension;
156 itkGetConstReferenceMacro(NumberOfHistogramBins,
SizeValueType);
159 void Initialize()
override;
176 if( this->m_ThreaderJointPDF.empty() )
180 return this->m_ThreaderJointPDF[0];
192 return this->m_JointPDFDerivatives;
195 void FinalizeThread(
const ThreadIdType threadId )
override;
208 void PrintSelf(std::ostream& os, Indent indent) const override;
225 virtual void GetValueCommonAfterThreadedExecution();
227 OffsetValueType ComputeSingleFixedImageParzenWindowIndex( const FixedImagePixelType & value ) const;
279 void Initialize(
size_t maxBufferLength,
const size_t cachedNumberOfLocalParameters,
280 std::mutex * parentDerivativeLockPtr,
283 void DoubleBufferSize();
294 return this->m_CachedNumberOfLocalParameters;
301 void CheckAndReduceIfNecessary();
306 void BlockAndReduce();
311 m_BufferOffsetContainer[m_CurrentFillSize] = offset;
312 PDFValueType * PDFBufferForWriting = m_BufferPDFValuesContainer[m_CurrentFillSize];
314 return PDFBufferForWriting;
325 size_t m_CurrentFillSize{0};
352 virtual void ComputeResults()
const;
358 #ifndef ITK_MANUAL_INSTANTIATION
359 #include "itkMattesMutualInformationImageToImageMetricv4.hxx"
Light weight base class for most itk classes.
typename Superclass::MovingTransformType MovingTransformType
Define numeric traits for std::vector.
unsigned long SizeValueType
typename FixedImageType::IndexType FixedImageIndexType
Class for partitioning of an ImageRegion.
typename MetricTraits::FixedImageGradientType FixedImageGradientType
typename MetricTraits::MovingImageGradientType MovingImageGradientType
typename FixedImageType::PointType FixedImagePointType
typename Superclass::VirtualImageType VirtualImageType
typename DerivativeType::ValueType DerivativeValueType
typename MovingImageType::PixelType MovingImagePixelType
Derivative of a BSpline kernel used for density estimation and nonparameteric regression.
BSpline kernel used for density estimation and nonparameteric regression.
typename Superclass::MeasureType MeasureType
typename FixedSampledPointSetType::Pointer FixedSampledPointSetPointer
typename Superclass::VirtualPointType VirtualPointType
typename MovingImageType::PointType MovingImagePointType
typename Superclass::VirtualPointSetType VirtualPointSetType
typename Superclass::RegionType RegionType
typename Superclass::SizeType SizeType
unsigned int ThreadIdType
typename Superclass::VirtualIndexType VirtualIndexType
typename Superclass::IndexType IndexType
typename FixedImageType::PixelType FixedImagePixelType
typename Superclass::DerivativeType DerivativeType
typename Superclass::JacobianType JacobianType
signed long OffsetValueType
Templated n-dimensional image class.
TFixedImage FixedImageType