18#ifndef itkHistogramImageToImageMetric_h
19#define itkHistogramImageToImageMetric_h
38template <
typename TFixedImage,
typename TMovingImage>
54 using typename Superclass::RealType;
55 using typename Superclass::TransformType;
56 using typename Superclass::TransformPointer;
57 using typename Superclass::TransformParametersType;
58 using typename Superclass::TransformJacobianType;
59 using typename Superclass::GradientPixelType;
60 using typename Superclass::InputPointType;
61 using typename Superclass::OutputPointType;
62 using typename Superclass::MeasureType;
63 using typename Superclass::DerivativeType;
64 using typename Superclass::FixedImageType;
66 using typename Superclass::MovingImageType;
98 itkSetMacro(UpperBoundIncreaseFactor,
double);
99 itkGetConstMacro(UpperBoundIncreaseFactor,
double);
116 itkSetMacro(UsePaddingValue,
bool);
117 itkGetConstMacro(UsePaddingValue,
bool);
121 itkSetMacro(DerivativeStepLength,
double);
124 itkGetConstMacro(DerivativeStepLength,
double);
133 itkGetConstReferenceMacro(DerivativeStepLengthScales,
ScalesType);
186 double m_UpperBoundIncreaseFactor{};
190 bool m_LowerBoundSetByUser{};
194 bool m_UpperBoundSetByUser{};
205 unsigned int parameter,
229 bool m_UsePaddingValue{};
232 double m_DerivativeStepLength{};
243#ifndef ITK_MANUAL_INSTANTIATION
244# include "itkHistogramImageToImageMetric.hxx"
Computes similarity between two objects to be registered.
HistogramImageToImageMetric()
void SetTransform(TransformType *transform) override
void ComputeHistogram(const TransformParametersType ¶meters, unsigned int parameter, double step, HistogramType &histogram) const
const MeasurementVectorType & GetLowerBound() const
typename Superclass::MovingImageConstPointer MovingImageConstPointerType
const MeasurementVectorType & GetUpperBound() const
typename HistogramType::SizeType HistogramSizeType
void SetLowerBound(const MeasurementVectorType &bounds)
void GetValueAndDerivative(const TransformParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override
void ComputeHistogram(const TransformParametersType ¶meters, HistogramType &histogram) const
~HistogramImageToImageMetric() override=default
virtual MeasureType EvaluateMeasure(HistogramType &histogram) const =0
void SetUpperBound(const MeasurementVectorType &bounds)
void Initialize() override
typename Superclass::MovingImageType::PixelType MovingImagePixelType
typename Superclass::FixedImageConstPointer FixedImageConstPointerType
typename Superclass::FixedImageType::PixelType FixedImagePixelType
typename HistogramType::Pointer HistogramPointer
void CopyHistogram(HistogramType &target, HistogramType &source) const
MeasureType GetValue(const TransformParametersType ¶meters) const override
void GetDerivative(const TransformParametersType ¶meters, DerivativeType &derivative) const override
typename HistogramType::MeasurementVectorType MeasurementVectorType
void PrintSelf(std::ostream &os, Indent indent) const override
Computes similarity between regions of two images.
typename TransformType::ParametersType TransformParametersType
Control indentation during Print() invocation.
Light weight base class for most itk classes.
This class stores measurement vectors in the context of n-dimensional histogram.
SmartPointer< Self > Pointer
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....