ITK
6.0.0
Insight Toolkit
|
#include <itkObjectToObjectMetricBase.h>
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.
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 ParametersType & | GetParameters () 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 ¶ms)=0 |
virtual void | UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor=NumericTraits< ParametersValueType >::OneValue())=0 |
virtual void | SetFixedObject (const ObjectType *_arg) |
virtual const ObjectType * | GetFixedObject () const |
virtual void | SetMovingObject (const ObjectType *_arg) |
virtual const ObjectType * | GetMovingObject () const |
NumberOfParametersType | GetNumberOfParameters () const override=0 |
virtual NumberOfParametersType | GetNumberOfLocalParameters () const =0 |
Public Member Functions inherited from itk::SingleValuedCostFunctionv4Template< double > | |
const char * | GetNameOfClass () const override |
virtual MeasureType | GetValue () const=0 |
virtual void | GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const=0 |
const char * | GetNameOfClass () const override |
virtual unsigned int | GetNumberOfParameters () 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 |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
const char * | GetNameOfClass () const override |
virtual const TimeStamp & | GetTimeStamp () 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 Pointer | CreateAnother () const |
virtual void | Delete () |
virtual const char * | GetNameOfClass () const |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
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 () override=default | |
Protected Member Functions inherited from itk::CostFunctionTemplate< double > | |
CostFunctionTemplate ()=default | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~CostFunctionTemplate () override=default | |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
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 | PrintSelf (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 () |
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ConstPointer = SmartPointer<const Self> |
Definition at line 100 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::CoordinateRepresentationType = TInternalComputationValueType |
Type used for representing object components
Definition at line 106 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::DerivativeValueType = typename DerivativeType::ValueType |
Definition at line 113 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GradientSourceEnum = itk::ObjectToObjectMetricBaseTemplateEnums::GradientSource |
Definition at line 133 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::MetricCategoryEnum = itk::ObjectToObjectMetricBaseTemplateEnums::MetricCategory |
Definition at line 235 of file itkObjectToObjectMetricBase.h.
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.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ObjectConstPointer = typename ObjectType::ConstPointer |
Definition at line 121 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ObjectType = Object |
Type of object.
Definition at line 120 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ParametersValueType = TInternalComputationValueType |
Definition at line 117 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Pointer = SmartPointer<Self> |
Definition at line 99 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Self = ObjectToObjectMetricBaseTemplate |
Standard class type aliases.
Definition at line 97 of file itkObjectToObjectMetricBase.h.
using itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Superclass = SingleValuedCostFunctionv4Template<TInternalComputationValueType> |
Definition at line 98 of file itkObjectToObjectMetricBase.h.
|
protected |
|
overrideprotecteddefault |
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.
|
pure virtual |
This method returns the derivative based on the current transformation(s).
Implemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.
|
virtual |
Get/Set the Fixed Object.
|
virtual |
Get gradient source. See GetGradientSourceIncludesFixed
and GetGradientSourceIncludesMoving
for convenience methods.
bool itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetGradientSourceIncludesFixed | ( | ) | const |
Return true of m_GradientSource
is either GRADIENT_SOURCE_FIXED
or GRADIENT_SOURCE_BOTH
. Convenience method.
bool itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::GetGradientSourceIncludesMoving | ( | ) | const |
Return true of m_GradientSource
is either GRADIENT_SOURCE_MOVING
or GRADIENT_SOURCE_BOTH
. Convenience method.
|
inlinevirtual |
Get metric category
Reimplemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.
Definition at line 247 of file itkObjectToObjectMetricBase.h.
|
virtual |
Get/Set the Moving Object.
|
overridevirtual |
Reimplemented from itk::Object.
Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.
|
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< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, and itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >.
|
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< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, and itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >.
|
pure virtual |
Get a const reference to the active transform's parameters
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, and itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >.
|
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< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.
|
overridepure virtual |
This method returns the derivative and value based on the current transformation(s).
Implements itk::SingleValuedCostFunctionv4Template< double >.
Implemented in itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, and itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >.
|
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< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, and itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >.
|
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::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >, 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< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet, TInternalComputationValueType >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::Object.
Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TFixedImage, double, DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TFixedImage, double > >, itk::PointSetToPointSetMetricWithIndexv4< TFixedPointSet, TFixedPointSet, double >, and itk::PointSetToPointSetMetricWithIndexv4< TPointSet, TPointSet, double >.
|
virtual |
Get/Set the Fixed Object.
|
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.
|
virtual |
Get/Set the Moving Object.
|
pure virtual |
Set the active transform's parameters by value
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, and itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >.
|
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< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TFixedImage, double >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< double, TFixedPointSet::PointDimension >, double >, and itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, Image< double, TFixedDimension >, double >.
|
protected |
Fixed and Moving Objects
Definition at line 260 of file itkObjectToObjectMetricBase.h.
|
protected |
Definition at line 263 of file itkObjectToObjectMetricBase.h.
|
protected |
Definition at line 261 of file itkObjectToObjectMetricBase.h.
|
mutableprotected |
Metric value, stored after evaluating
Definition at line 266 of file itkObjectToObjectMetricBase.h.