19#ifndef itkJointHistogramMutualInformationImageToImageMetricv4_h
20#define itkJointHistogramMutualInformationImageToImageMetricv4_h
43template <
typename TFixedImage,
44 typename TMovingImage,
45 typename TVirtualImage = TFixedImage,
46 typename TInternalComputationValueType = double,
47 typename TMetricTraits =
48 DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
50 :
public ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits>
69 using typename Superclass::CoordinateRepresentationType;
77 using typename Superclass::ParametersType;
78 using typename Superclass::ParametersValueType;
79 using typename Superclass::NumberOfParametersType;
82 using typename Superclass::MeasureType;
83 using typename Superclass::DerivativeType;
84 using typename Superclass::FixedImagePointType;
85 using typename Superclass::FixedImagePixelType;
87 using typename Superclass::MovingImagePointType;
88 using typename Superclass::MovingImagePixelType;
95 using typename Superclass::VirtualIndexType;
96 using typename Superclass::VirtualPointType;
97 using typename Superclass::VirtualPointSetType;
100 static constexpr typename TVirtualImage::ImageDimensionType VirtualImageDimension = TVirtualImage::ImageDimension;
101 static constexpr typename TMovingImage::ImageDimensionType MovingImageDimension = TMovingImage::ImageDimension;
146 itkSetMacro(VarianceForJointPDFSmoothing, TInternalComputationValueType);
147 itkGetMacro(VarianceForJointPDFSmoothing, TInternalComputationValueType);
183 ThreadedImageRegionPartitioner<Self::VirtualImageDimension>,
194 m_JointHistogramMutualInformationDenseComputeJointPDFThreader;
196 m_JointHistogramMutualInformationSparseComputeJointPDFThreader;
199 ThreadedImageRegionPartitioner<Superclass::VirtualImageDimension>,
208 ThreadedImageRegionPartitioner<Superclass::VirtualImageDimension>,
216 PrintSelf(std::ostream & os, Indent indent) const override;
232 TInternalComputationValueType m_VarianceForJointPDFSmoothing{};
236 TInternalComputationValueType m_FixedImageTrueMin{};
237 TInternalComputationValueType m_FixedImageTrueMax{};
238 TInternalComputationValueType m_MovingImageTrueMin{};
239 TInternalComputationValueType m_MovingImageTrueMax{};
240 TInternalComputationValueType m_FixedImageBinSize{};
241 TInternalComputationValueType m_MovingImageBinSize{};
243 TInternalComputationValueType m_JointPDFSum{};
246 TInternalComputationValueType m_Log2{};
252#ifndef ITK_MANUAL_INSTANTIATION
253# include "itkJointHistogramMutualInformationImageToImageMetricv4.hxx"
Computes the gradient of an image by convolution with the first derivative of a Gaussian.
TOutputImage OutputImageType
typename FixedImageType::PixelType FixedImagePixelType
typename MovingImageType::PixelType MovingImagePixelType
Templated n-dimensional image class.
Light weight base class for most itk classes.
Linearly interpolate an image at specified positions.
Define additional traits for native types such as int or float.
Class for partitioning of an ImageRegion.
SmartPointer< Self > Pointer
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::PointType PointType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType