ITK
4.6.0
Insight Segmentation and Registration Toolkit
|
#include <itkObjectToObjectMetricBase.h>
Base class for all object-to-object similarlity 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 50 of file itkObjectToObjectMetricBase.h.
Public Member Functions | |
MeasureType | GetCurrentValue () const |
virtual void | GetDerivative (DerivativeType &) const =0 |
virtual GradientSourceType | GetGradientSource () const |
bool | GetGradientSourceIncludesFixed () const |
bool | GetGradientSourceIncludesMoving () const |
virtual const char * | GetNameOfClass () const |
virtual const ParametersType & | GetParameters () const =0 |
virtual MeasureType | GetValue () const =0 |
virtual void | GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0 |
virtual bool | HasLocalSupport () const =0 |
virtual void | Initialize (void)=0 throw ( ExceptionObject ) |
virtual void | SetGradientSource (GradientSourceType _arg) |
virtual void | SetParameters (ParametersType ¶ms)=0 |
virtual void | UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor=NumericTraits< ParametersValueType >::One)=0 |
virtual NumberOfParametersType | GetNumberOfParameters () const =0 |
virtual NumberOfParametersType | GetNumberOfLocalParameters () const =0 |
Public Member Functions inherited from itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType > | |
virtual void | GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0 |
Public Member Functions inherited from itk::Object | |
unsigned long | AddObserver (const EventObject &event, Command *) |
unsigned long | AddObserver (const EventObject &event, Command *) const |
virtual LightObject::Pointer | CreateAnother () const ITK_OVERRIDE |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary (void) |
const MetaDataDictionary & | GetMetaDataDictionary (void) const |
virtual ModifiedTimeType | GetMTime () const |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
virtual void | Register () const ITK_OVERRIDE |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) |
void | SetDebug (bool debugFlag) const |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
virtual void | SetReferenceCount (int) ITK_OVERRIDE |
virtual void | UnRegister () const ITK_OVERRIDE |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
itkCloneMacro (Self) | |
void | Print (std::ostream &os, Indent indent=0) const |
Protected Member Functions | |
ObjectToObjectMetricBaseTemplate () | |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual | ~ObjectToObjectMetricBaseTemplate () |
Protected Member Functions inherited from itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType > | |
SingleValuedCostFunctionv4Template () | |
virtual | ~SingleValuedCostFunctionv4Template () |
Protected Member Functions inherited from itk::CostFunctionTemplate< TInternalComputationValueType > | |
CostFunctionTemplate () | |
virtual | ~CostFunctionTemplate () |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
virtual void | SetTimeStamp (const TimeStamp &time) |
virtual | ~Object () |
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 | |
GradientSourceType | m_GradientSource |
MeasureType | m_Value |
Protected Attributes inherited from itk::LightObject | |
InternalReferenceCountType | m_ReferenceCount |
SimpleFastMutexLock | m_ReferenceCountLock |
Private Member Functions | |
ObjectToObjectMetricBaseTemplate (const Self &) | |
void | operator= (const Self &) |
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 flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Protected Types inherited from itk::LightObject | |
typedef int | InternalReferenceCountType |
typedef SmartPointer< const Self > itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ConstPointer |
Definition at line 58 of file itkObjectToObjectMetricBase.h.
typedef TInternalComputationValueType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::CoordinateRepresentationType |
Type used for representing object components
Definition at line 61 of file itkObjectToObjectMetricBase.h.
typedef Superclass::DerivativeType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::DerivativeType |
Type of the derivative.
Definition at line 70 of file itkObjectToObjectMetricBase.h.
typedef DerivativeType::ValueType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::DerivativeValueType |
Definition at line 71 of file itkObjectToObjectMetricBase.h.
typedef Superclass::MeasureType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::MeasureType |
Type of the measure.
Definition at line 67 of file itkObjectToObjectMetricBase.h.
typedef unsigned int itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::NumberOfParametersType |
Type to represent the number of parameters that are being optimized at any given iteration of the optimizer.
Definition at line 114 of file itkObjectToObjectMetricBase.h.
typedef Superclass::ParametersType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ParametersType |
Type of the parameters.
Definition at line 74 of file itkObjectToObjectMetricBase.h.
typedef TInternalComputationValueType itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::ParametersValueType |
Definition at line 75 of file itkObjectToObjectMetricBase.h.
typedef SmartPointer< Self > itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Pointer |
Definition at line 57 of file itkObjectToObjectMetricBase.h.
typedef ObjectToObjectMetricBaseTemplate itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Self |
Standard class typedefs.
Definition at line 55 of file itkObjectToObjectMetricBase.h.
typedef SingleValuedCostFunctionv4Template<TInternalComputationValueType> itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >::Superclass |
Definition at line 56 of file itkObjectToObjectMetricBase.h.
enum itk::ObjectToObjectMetricBaseTemplate::GradientSourceType |
Source of the gradient(s) used by the metric (e.g. image gradients, in the case of image to image metrics). Defaults to Moving.
Enumerator | |
---|---|
GRADIENT_SOURCE_FIXED | |
GRADIENT_SOURCE_MOVING | |
GRADIENT_SOURCE_BOTH |
Definition at line 80 of file itkObjectToObjectMetricBase.h.
|
protected |
|
protectedvirtual |
|
private |
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::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, and itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >.
|
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.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType >.
Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::CorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet, TInternalComputationValueType >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::EuclideanDistancePointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::MeanSquaresImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >.
|
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, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >.
|
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.
Implements itk::CostFunctionTemplate< TInternalComputationValueType >.
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >.
|
pure virtual |
Get a const reference to the active transform's parameters
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >.
|
pure 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< TInternalComputationValueType >.
Implemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, and itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >.
|
pure virtual |
This method returns the derivative and value based on the current transformation(s).
|
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, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >.
|
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::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet, TInternalComputationValueType >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >.
|
private |
|
protectedvirtual |
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::CostFunctionTemplate< TInternalComputationValueType >.
Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet, TInternalComputationValueType >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::CorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::MeanSquaresImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, and itk::EuclideanDistancePointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >.
|
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.
|
pure virtual |
Set the active transform's parameters by value
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >.
|
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, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension, Image< TInternalComputationValueType, TPointSet::PointDimension >, TInternalComputationValueType >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType >.
|
protected |
Definition at line 169 of file itkObjectToObjectMetricBase.h.
|
mutableprotected |
Metric value, stored after evaluating
Definition at line 172 of file itkObjectToObjectMetricBase.h.