18#ifndef itkObjectToObjectOptimizerBase_h
19#define itkObjectToObjectOptimizerBase_h
21#include "ITKOptimizersv4Export.h"
56extern ITKOptimizersv4_EXPORT std::ostream &
112template <
typename TInternalComputationValueType =
double>
184 itkGetConstReferenceMacro(ScalesAreIdentity,
bool);
194 itkGetConstReferenceMacro(WeightsAreIdentity,
bool);
217 itkSetMacro(DoEstimateScales,
bool);
218 itkGetConstReferenceMacro(DoEstimateScales,
bool);
219 itkBooleanMacro(DoEstimateScales);
228#if !defined(ITK_LEGACY_REMOVE)
232 itkLegacyMacro(
virtual void SetNumberOfThreads(
ThreadIdType number))
236 itkLegacyMacro(
virtual const ThreadIdType & GetNumberOfThreads()
const)
238 return this->m_NumberOfWorkUnits;
334#ifndef ITK_TEMPLATE_EXPLICIT_ObjectToObjectOptimizerBaseTemplate
343#if defined(ITKOptimizersv4_EXPORTS)
345# define ITKOptimizersv4_EXPORT_EXPLICIT ITK_FORWARD_EXPORT
348# define ITKOptimizersv4_EXPORT_EXPLICIT ITKOptimizersv4_EXPORT
353ITK_GCC_PRAGMA_DIAG_PUSH()
354ITK_GCC_PRAGMA_DIAG(ignored
"-Wattributes")
357# pragma warning(disable : 4661)
362ITK_GCC_PRAGMA_DIAG_POP()
365#undef ITKOptimizersv4_EXPORT_EXPLICIT
Control indentation during Print() invocation.
Base class for all object-to-object similarity metrics added in ITKv4.
Array< TInternalComputationValueType > DerivativeType
unsigned int NumberOfParametersType
SmartPointer< Self > Pointer
TInternalComputationValueType MeasureType
This class contains all the enum classes used by ObjectToObjectOptimizerBaseTemplate class.
StopConditionObjectToObjectOptimizer
@ GRADIENT_MAGNITUDE_TOLEARANCE
@ CONVERGENCE_CHECKER_PASSED
@ UPDATE_PARAMETERS_ERROR
@ MAXIMUM_NUMBER_OF_ITERATIONS
Abstract base for object-to-object optimizers.
MetricTypePointer m_Metric
typename MetricType::DerivativeType DerivativeType
SizeValueType m_NumberOfIterations
ThreadIdType m_NumberOfWorkUnits
SizeValueType m_CurrentIteration
virtual void StartOptimization(bool doOnlyInitialization=false)
bool GetScalesInitialized() const
typename MetricType::Pointer MetricTypePointer
typename MetricType::NumberOfParametersType NumberOfParametersType
OptimizerParameters< TInternalComputationValueType > ScalesType
bool m_WeightsAreIdentity
ObjectToObjectOptimizerBaseTemplate()
OptimizerParameters< TInternalComputationValueType > ParametersType
OptimizerParameterScalesEstimatorTemplate< TInternalComputationValueType > ScalesEstimatorType
void PrintSelf(std::ostream &os, Indent indent) const override
SmartPointer< Self > Pointer
virtual bool CanUseScales() const
ObjectToObjectOptimizerBaseTemplate Self
virtual StopConditionReturnStringType GetStopConditionDescription() const =0
virtual const ParametersType & GetCurrentPosition() const
std::ostringstream StopConditionDescriptionType
virtual void SetScales(const ScalesType &scales)
ScalesEstimatorType::Pointer m_ScalesEstimator
SmartPointer< const Self > ConstPointer
virtual const MeasureType & GetValue() const
~ObjectToObjectOptimizerBaseTemplate() override
typename MetricType::MeasureType MeasureType
virtual void SetNumberOfWorkUnits(ThreadIdType number)
ObjectToObjectMetricBaseTemplate< TInternalComputationValueType > MetricType
std::string StopConditionReturnStringType
MeasureType m_CurrentMetricValue
OptimizerParameterScalesEstimatorTemplate is the base class offering a empty method of estimating the...
SmartPointer< Self > Pointer
Class to hold and manage different parameter types used during optimization.
Implements transparent reference counting.
#define ITKOptimizersv4_EXPORT_EXPLICIT
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
ObjectToObjectOptimizerBaseTemplateEnums::StopConditionObjectToObjectOptimizer StopConditionObjectToObjectOptimizerEnum
unsigned long SizeValueType
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)
template class ITKOptimizersv4_EXPORT_EXPLICIT ObjectToObjectOptimizerBaseTemplate< double >
template class ITKOptimizersv4_EXPORT_EXPLICIT ObjectToObjectOptimizerBaseTemplate< float >
ObjectToObjectOptimizerBaseTemplate< double > ObjectToObjectOptimizerBase