ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType > Class Template Referenceabstract

#include <itkObjectToObjectMetricBase.h>

Detailed Description

template<typename TInternalComputationValueType = double>
class itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >

Base class for all object-to-object similarity metrics added in ITKv4.

This is the abstract base class for a hierarchy of similarity metrics that may, in derived classes, operate on meshes, images, etc. This class computes a value that measures the similarity between the two objects.

Derived classes must provide implementations for: GetValue GetDerivative GetValueAndDerivative Initialize GetNumberOfParameters GetNumberOfLocalParameters GetParameters SetParameters HasLocalSupport UpdateTransformParameters

Definition at line 90 of file itkObjectToObjectMetricBase.h.

+ Inheritance diagram for itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >:
+ Collaboration diagram for itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >:

Public Types

using ConstPointer = SmartPointer<const Self>
 
using CoordinateRepresentationType = TInternalComputationValueType
 
using DerivativeType
 
using DerivativeValueType = typename DerivativeType::ValueType
 
using GradientSourceEnum = itk::ObjectToObjectMetricBaseTemplateEnums::GradientSource
 
using MeasureType
 
using MetricCategoryEnum = itk::ObjectToObjectMetricBaseTemplateEnums::MetricCategory
 
using NumberOfParametersType = unsigned int
 
using ObjectConstPointer = typename ObjectType::ConstPointer
 
using ObjectType = Object
 
using ParametersValueType = TInternalComputationValueType
 
using Pointer = SmartPointer<Self>
 
using Self = ObjectToObjectMetricBaseTemplate
 
using Superclass = SingleValuedCostFunctionv4Template<TInternalComputationValueType>
 
- Public Types inherited from itk::SingleValuedCostFunctionv4Template< double >
using ConstPointer
 
using DerivativeType
 
using MeasureType
 
typedef OptimizerParameters< double > ParametersType
 
using ParametersType
 
using Pointer
 
using Self
 
using Superclass
 
- Public Types inherited from itk::CostFunctionTemplate< double >
using ConstPointer
 
using ParametersType
 
using ParametersValueType
 
using Pointer
 
using Self
 
using Superclass
 
- Public Types inherited from itk::Object
using ConstPointer = SmartPointer<const Self>
 
using Pointer = SmartPointer<Self>
 
using Self = Object
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer<const Self>
 
using Pointer = SmartPointer<Self>
 
using Self = LightObject
 

Public Member Functions

MeasureType GetCurrentValue () const
 
virtual void GetDerivative (DerivativeType &) const =0
 
virtual GradientSourceEnum GetGradientSource () const
 
bool GetGradientSourceIncludesFixed () const
 
bool GetGradientSourceIncludesMoving () const
 
virtual MetricCategoryEnum GetMetricCategory () const
 
const char * GetNameOfClass () const override
 
virtual const ParametersTypeGetParameters () const =0
 
MeasureType GetValue () const override=0
 
void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override=0
 
virtual bool HasLocalSupport () const =0
 
virtual void Initialize ()=0
 
virtual void SetGradientSource (GradientSourceEnum _arg)
 
virtual void SetParameters (ParametersType &params)=0
 
virtual void UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor=NumericTraits< ParametersValueType >::OneValue())=0
 
virtual void SetFixedObject (const ObjectType *_arg)
 
virtual const ObjectTypeGetFixedObject () const
 
virtual void SetMovingObject (const ObjectType *_arg)
 
virtual const ObjectTypeGetMovingObject () const
 
NumberOfParametersType GetNumberOfParameters () const override=0
 
virtual NumberOfParametersType GetNumberOfLocalParameters () const =0
 
- Public Member Functions inherited from itk::SingleValuedCostFunctionv4Template< double >
const char * GetNameOfClass () const override
 
const char * GetNameOfClass () const override
 
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const=0
 
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const=0
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *cmd) const
 
unsigned long AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const
 
LightObject::Pointer CreateAnother () const override
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag) const
 
void SetDebug (bool debugFlag) const
 
void SetReferenceCount (int) override
 
void UnRegister () const noexcept override
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMetaDataDictionary (MetaDataDictionary &&rrhs)
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
Pointer Clone () const
 
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
void Print (std::ostream &os, Indent indent=0) const
 

Protected Member Functions

 ObjectToObjectMetricBaseTemplate ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~ObjectToObjectMetricBaseTemplate () override=default
 
- Protected Member Functions inherited from itk::SingleValuedCostFunctionv4Template< double >
 SingleValuedCostFunctionv4Template ()=default
 
 SingleValuedCostFunctionv4Template ()=default
 
 ~SingleValuedCostFunctionv4Template () override=default
 
 ~SingleValuedCostFunctionv4Template () override=default
 
- Protected Member Functions inherited from itk::CostFunctionTemplate< double >
 CostFunctionTemplate ()=default
 
 CostFunctionTemplate ()=default
 
 ~CostFunctionTemplate () override=default
 
 ~CostFunctionTemplate () override=default
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &timeStamp)
 
 ~Object () override
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Protected Attributes

ObjectConstPointer m_FixedObject {}
 
GradientSourceEnum m_GradientSource {}
 
ObjectConstPointer m_MovingObject {}
 
MeasureType m_Value {}
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount {}
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool val)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Member Typedef Documentation

◆ ConstPointer

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ConstPointer = SmartPointer<const Self>

Definition at line 100 of file itkObjectToObjectMetricBase.h.

◆ CoordinateRepresentationType

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::CoordinateRepresentationType = TInternalComputationValueType

Type used for representing object components

Definition at line 106 of file itkObjectToObjectMetricBase.h.

◆ DerivativeType

template<typename TInternalComputationValueType = double>
using itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType >::DerivativeType

DerivativeType type alias. It defines a type used to return the cost function derivative.

Definition at line 75 of file itkSingleValuedCostFunctionv4.h.

◆ DerivativeValueType

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::DerivativeValueType = typename DerivativeType::ValueType

Definition at line 113 of file itkObjectToObjectMetricBase.h.

◆ GradientSourceEnum

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GradientSourceEnum = itk::ObjectToObjectMetricBaseTemplateEnums::GradientSource

Definition at line 133 of file itkObjectToObjectMetricBase.h.

◆ MeasureType

template<typename TInternalComputationValueType = double>
using itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType >::MeasureType

MeasureType type alias. It defines a type used to return the cost function value.

Definition at line 67 of file itkSingleValuedCostFunctionv4.h.

◆ MetricCategoryEnum

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::MetricCategoryEnum = itk::ObjectToObjectMetricBaseTemplateEnums::MetricCategory

Definition at line 235 of file itkObjectToObjectMetricBase.h.

◆ NumberOfParametersType

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::NumberOfParametersType = unsigned int

Type to represent the number of parameters that are being optimized at any given iteration of the optimizer.

Definition at line 176 of file itkObjectToObjectMetricBase.h.

◆ ObjectConstPointer

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ObjectConstPointer = typename ObjectType::ConstPointer

Definition at line 121 of file itkObjectToObjectMetricBase.h.

◆ ObjectType

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ObjectType = Object

Type of object.

Definition at line 120 of file itkObjectToObjectMetricBase.h.

◆ ParametersValueType

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ParametersValueType = TInternalComputationValueType

Definition at line 117 of file itkObjectToObjectMetricBase.h.

◆ Pointer

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Pointer = SmartPointer<Self>

Definition at line 99 of file itkObjectToObjectMetricBase.h.

◆ Self

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Self = ObjectToObjectMetricBaseTemplate

Standard class type aliases.

Definition at line 97 of file itkObjectToObjectMetricBase.h.

◆ Superclass

template<typename TInternalComputationValueType = double>
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Superclass = SingleValuedCostFunctionv4Template<TInternalComputationValueType>

Definition at line 98 of file itkObjectToObjectMetricBase.h.

Constructor & Destructor Documentation

◆ ObjectToObjectMetricBaseTemplate()

template<typename TInternalComputationValueType = double>
itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ObjectToObjectMetricBaseTemplate ( )
protected

◆ ~ObjectToObjectMetricBaseTemplate()

template<typename TInternalComputationValueType = double>
itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::~ObjectToObjectMetricBaseTemplate ( )
overrideprotecteddefault

Member Function Documentation

◆ GetCurrentValue()

template<typename TInternalComputationValueType = double>
MeasureType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetCurrentValue ( ) const

Get the current metric value stored in m_Value. This is only meaningful after a call to GetValue() or GetValueAndDerivative(). Note that this would normally be called GetValue, but that name is used for historical reasons by GetValue() to compute the current metric value and store it in m_Value.

◆ GetDerivative()

template<typename TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetDerivative ( DerivativeType & ) const
pure virtual

This method returns the derivative based on the current transformation(s).

Implemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.

◆ GetFixedObject()

template<typename TInternalComputationValueType = double>
virtual const ObjectType * itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetFixedObject ( ) const
virtual

Get/Set the Fixed Object.

◆ GetGradientSource()

template<typename TInternalComputationValueType = double>
virtual GradientSourceEnum itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetGradientSource ( ) const
virtual

Get gradient source. See GetGradientSourceIncludesFixed and GetGradientSourceIncludesMoving for convenience methods.

◆ GetGradientSourceIncludesFixed()

template<typename TInternalComputationValueType = double>
bool itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetGradientSourceIncludesFixed ( ) const

Return true of m_GradientSource is either GRADIENT_SOURCE_FIXED or GRADIENT_SOURCE_BOTH. Convenience method.

◆ GetGradientSourceIncludesMoving()

template<typename TInternalComputationValueType = double>
bool itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetGradientSourceIncludesMoving ( ) const

Return true of m_GradientSource is either GRADIENT_SOURCE_MOVING or GRADIENT_SOURCE_BOTH. Convenience method.

◆ GetMetricCategory()

template<typename TInternalComputationValueType = double>
virtual MetricCategoryEnum itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetMetricCategory ( ) const
inlinevirtual

Get metric category

Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.

Definition at line 247 of file itkObjectToObjectMetricBase.h.

◆ GetMovingObject()

template<typename TInternalComputationValueType = double>
virtual const ObjectType * itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetMovingObject ( ) const
virtual

Get/Set the Moving Object.

◆ GetNameOfClass()

template<typename TInternalComputationValueType = double>
const char * itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetNameOfClass ( ) const
overridevirtual
See also
LightObject::GetNameOfClass()

Reimplemented from itk::CostFunctionTemplate< double >.

Reimplemented in itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, double >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.

◆ GetNumberOfLocalParameters()

template<typename TInternalComputationValueType = double>
virtual NumberOfParametersType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetNumberOfLocalParameters ( ) const
pure virtual

Methods for working with the metric's 'active' transform, e.g. the transform being optimized in the case of registration. Some of these are used in non-metric classes, e.g. optimizers.

Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >.

◆ GetNumberOfParameters()

template<typename TInternalComputationValueType = double>
NumberOfParametersType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetNumberOfParameters ( ) const
overridepure virtual

Methods for working with the metric's 'active' transform, e.g. the transform being optimized in the case of registration. Some of these are used in non-metric classes, e.g. optimizers.

Implements itk::CostFunctionTemplate< double >.

Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >.

◆ GetParameters()

template<typename TInternalComputationValueType = double>
virtual const ParametersType & itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetParameters ( ) const
pure virtual

Get a const reference to the active transform's parameters

Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >.

◆ GetValue()

template<typename TInternalComputationValueType = double>
MeasureType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetValue ( ) const
overridepure virtual

Calculate and return the value for the metric based on the current transformation(s). The result is both returned, and stored in the m_Value member variable.

Implements itk::SingleValuedCostFunctionv4Template< double >.

Implemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.

◆ GetValueAndDerivative()

template<typename TInternalComputationValueType = double>
void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetValueAndDerivative ( MeasureType & value,
DerivativeType & derivative ) const
overridepure virtual

This method returns the derivative and value based on the current transformation(s).

Implemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.

◆ HasLocalSupport()

template<typename TInternalComputationValueType = double>
virtual bool itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::HasLocalSupport ( ) const
pure virtual

Return whether the metric's active transform has local support, e.g. whether it is dense/high-dimensional.

Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >.

◆ Initialize()

template<typename TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Initialize ( )
pure virtual

Initialize the Metric by making sure that all the components are present and plugged together correctly, and initializing internal variables as required. This is for one-time initialization, e.g. before starting an optimization process.

Implemented in itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet, TInternalComputationValueType >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< PointSetType, PointSetType, RealType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.

◆ PrintSelf()

◆ SetFixedObject()

template<typename TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::SetFixedObject ( const ObjectType * _arg)
virtual

Get/Set the Fixed Object.

◆ SetGradientSource()

template<typename TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::SetGradientSource ( GradientSourceEnum _arg)
virtual

Set source of gradient. This variable allows the user to switch between calculating the gradient with respect to the fixed object or moving object.

See also
GradientSourceEnum

◆ SetMovingObject()

template<typename TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::SetMovingObject ( const ObjectType * _arg)
virtual

Get/Set the Moving Object.

◆ SetParameters()

template<typename TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::SetParameters ( ParametersType & params)
pure virtual

Set the active transform's parameters by value

Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >.

◆ UpdateTransformParameters()

template<typename TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::UpdateTransformParameters ( const DerivativeType & derivative,
ParametersValueType factor = NumericTraitsParametersValueType >::OneValue() )
pure virtual

Update the parameters of the metric's active transform. Typically this call is passed through directly to the transform. factor is a scalar multiplier for each value in update, and defaults to 1.0 . derivative must be the proper size, as retrieved from GetNumberOfParameters.

Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TFixedPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< double, TPointSet::PointDimension >, double >.

Member Data Documentation

◆ m_FixedObject

template<typename TInternalComputationValueType = double>
ObjectConstPointer itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::m_FixedObject {}
protected

Fixed and Moving Objects

Definition at line 260 of file itkObjectToObjectMetricBase.h.

◆ m_GradientSource

template<typename TInternalComputationValueType = double>
GradientSourceEnum itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::m_GradientSource {}
protected

Definition at line 263 of file itkObjectToObjectMetricBase.h.

◆ m_MovingObject

template<typename TInternalComputationValueType = double>
ObjectConstPointer itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::m_MovingObject {}
protected

Definition at line 261 of file itkObjectToObjectMetricBase.h.

◆ m_Value

template<typename TInternalComputationValueType = double>
MeasureType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::m_Value {}
mutableprotected

Metric value, stored after evaluating

Definition at line 266 of file itkObjectToObjectMetricBase.h.


The documentation for this class was generated from the following file: