18#ifndef itkObjectToObjectMetricBase_h
19#define itkObjectToObjectMetricBase_h
23#include "ITKOptimizersv4Export.h"
61extern ITKOptimizersv4_EXPORT std::ostream &
63extern ITKOptimizersv4_EXPORT std::ostream &
89template <
typename TInternalComputationValueType =
double>
134#if !defined(ITK_LEGACY_REMOVE)
138 static constexpr GradientSourceEnum GRADIENT_SOURCE_FIXED = GradientSourceEnum::GRADIENT_SOURCE_FIXED;
139 static constexpr GradientSourceEnum GRADIENT_SOURCE_MOVING = GradientSourceEnum::GRADIENT_SOURCE_MOVING;
140 static constexpr GradientSourceEnum GRADIENT_SOURCE_BOTH = GradientSourceEnum::GRADIENT_SOURCE_BOTH;
236#if !defined(ITK_LEGACY_REMOVE)
238 static constexpr MetricCategoryEnum UNKNOWN_METRIC = MetricCategoryEnum::UNKNOWN_METRIC;
239 static constexpr MetricCategoryEnum OBJECT_METRIC = MetricCategoryEnum::OBJECT_METRIC;
241 static constexpr MetricCategoryEnum POINT_SET_METRIC = MetricCategoryEnum::POINT_SET_METRIC;
249 return MetricCategoryEnum::UNKNOWN_METRIC;
273#ifndef ITK_MANUAL_INSTANTIATION
274# include "itkObjectToObjectMetricBase.hxx"
TParametersValueType ValueType
Control indentation during Print() invocation.
This class contains all the enum classes used by the ObjectToObjectMetricBaseTemplate class.
Base class for all object-to-object similarity metrics added in ITKv4.
Array< TParametersValueType > DerivativeType
virtual void GetDerivative(DerivativeType &) const =0
ObjectConstPointer m_MovingObject
itk::ObjectToObjectMetricBaseTemplateEnums::MetricCategory MetricCategoryEnum
virtual bool HasLocalSupport() const =0
typename ObjectType::ConstPointer ObjectConstPointer
bool GetGradientSourceIncludesMoving() const
virtual MetricCategoryEnum GetMetricCategory() const
typename DerivativeType::ValueType DerivativeValueType
itk::ObjectToObjectMetricBaseTemplateEnums::GradientSource GradientSourceEnum
unsigned int NumberOfParametersType
ObjectToObjectMetricBaseTemplate Self
MeasureType GetValue() const override=0
SmartPointer< Self > Pointer
TParametersValueType ParametersValueType
NumberOfParametersType GetNumberOfParameters() const override=0
TParametersValueType MeasureType
ObjectToObjectMetricBaseTemplate()
void PrintSelf(std::ostream &os, Indent indent) const override
SingleValuedCostFunctionv4Template< TParametersValueType > Superclass
void GetValueAndDerivative(MeasureType &value, DerivativeType &derivative) const override=0
virtual void Initialize()=0
TParametersValueType CoordinateRepresentationType
virtual void SetParameters(ParametersType ¶ms)=0
virtual const ParametersType & GetParameters() const =0
virtual NumberOfParametersType GetNumberOfLocalParameters() const =0
GradientSourceEnum m_GradientSource
~ObjectToObjectMetricBaseTemplate() override=default
SmartPointer< const Self > ConstPointer
MeasureType GetCurrentValue() const
ObjectConstPointer m_FixedObject
bool GetGradientSourceIncludesFixed() const
virtual void UpdateTransformParameters(const DerivativeType &derivative, ParametersValueType factor=NumericTraits< ParametersValueType >::OneValue())=0
typename Superclass::Object ObjectType
Base class for most ITK classes.
SmartPointer< const Self > ConstPointer
Array< TInternalComputationValueType > DerivativeType
SingleValuedCostFunctionv4Template()=default
OptimizerParameters< TInternalComputationValueType > ParametersType
TInternalComputationValueType MeasureType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ObjectToObjectMetricBaseTemplate< double > ObjectToObjectMetricBase
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)