ITK
4.3.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 49 of file itkObjectToObjectMetricBase.h.
Protected Member Functions | |
ObjectToObjectMetricBase () | |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual | ~ObjectToObjectMetricBase () |
Protected Member Functions inherited from itk::SingleValuedCostFunctionv4 | |
SingleValuedCostFunctionv4 () | |
virtual | ~SingleValuedCostFunctionv4 () |
Protected Member Functions inherited from itk::CostFunction | |
CostFunction () | |
virtual | ~CostFunction () |
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 |
Private Member Functions | |
ObjectToObjectMetricBase (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) |
Protected Types inherited from itk::LightObject | |
typedef int | InternalReferenceCountType |
typedef SmartPointer< const Self > itk::ObjectToObjectMetricBase::ConstPointer |
Definition at line 57 of file itkObjectToObjectMetricBase.h.
Type used for representing object components
Definition at line 60 of file itkObjectToObjectMetricBase.h.
typedef Superclass::DerivativeType itk::ObjectToObjectMetricBase::DerivativeType |
Type of the derivative.
Definition at line 72 of file itkObjectToObjectMetricBase.h.
typedef DerivativeType::ValueType itk::ObjectToObjectMetricBase::DerivativeValueType |
Definition at line 73 of file itkObjectToObjectMetricBase.h.
typedef double itk::ObjectToObjectMetricBase::InternalComputationValueType |
Type for internal computations
Definition at line 66 of file itkObjectToObjectMetricBase.h.
Type of the measure.
Definition at line 69 of file itkObjectToObjectMetricBase.h.
typedef unsigned int itk::ObjectToObjectMetricBase::NumberOfParametersType |
Type to represent the number of parameters that are being optimized at any given iteration of the optimizer.
Definition at line 116 of file itkObjectToObjectMetricBase.h.
typedef Superclass::ParametersType itk::ObjectToObjectMetricBase::ParametersType |
Type of the parameters.
Definition at line 76 of file itkObjectToObjectMetricBase.h.
typedef Superclass::ParametersValueType itk::ObjectToObjectMetricBase::ParametersValueType |
Definition at line 77 of file itkObjectToObjectMetricBase.h.
Definition at line 56 of file itkObjectToObjectMetricBase.h.
Standard class typedefs.
Definition at line 54 of file itkObjectToObjectMetricBase.h.
Definition at line 55 of file itkObjectToObjectMetricBase.h.
Source of the gradient(s) used by the metric (e.g. image gradients, in the case of image to image metrics). Defaults to Moving.
Definition at line 82 of file itkObjectToObjectMetricBase.h.
|
protected |
|
protectedvirtual |
|
private |
MeasureType itk::ObjectToObjectMetricBase::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, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >, and itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >.
|
virtual |
Get gradient source. See GetGradientSourceIncludesFixed
and GetGradientSourceIncludesMoving
for convenience methods.
bool itk::ObjectToObjectMetricBase::GetGradientSourceIncludesFixed | ( | ) | const |
Return true of m_GradientSource
is either GRADIENT_SOURCE_FIXED
or GRADIENT_SOURCE_BOTH
. Convenience method.
bool itk::ObjectToObjectMetricBase::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::SingleValuedCostFunctionv4.
Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >, itk::CorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::MeanSquaresImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TMetricTraits >, and itk::EuclideanDistancePointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >.
|
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 >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >.
|
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::CostFunction.
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >.
|
pure virtual |
Get a const reference to the active transform's parameters
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >.
|
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::SingleValuedCostFunctionv4.
Implemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >, and itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
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 >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >.
|
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, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, and itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >.
|
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::CostFunction.
Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TMetricTraits >, itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::CorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::MeanSquaresImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TMetricTraits >, and itk::EuclideanDistancePointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >.
|
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
Implemented in itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >.
|
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 >, itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >, itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension >, and itk::ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension >.
|
protected |
Definition at line 171 of file itkObjectToObjectMetricBase.h.
|
mutableprotected |
Metric value, stored after evaluating
Definition at line 174 of file itkObjectToObjectMetricBase.h.