ITK  4.9.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType > Class Template Reference

#include <itkObjectToObjectMultiMetricv4.h>

+ Inheritance diagram for itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >:
+ Collaboration diagram for itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >:

Detailed Description

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
class itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >

This class takes one ore more ObjectToObject metrics and assigns weights to their derivatives to compute a single result.

This class takes N ObjectToObject-derived component metrics and assigns a weight to each of the metrics' derivatives. It then computes a weighted measure of the metric. The GetValue() and GetValueAndDerivative() methods compute the measure and derivative using the following calculation:

metric value = Sum_j ( w_j * M_j ) (see important note below)

and the GetDerivative() method computes the derivative by computing:

derivative = Sum_j ( w_j * dM_j / ||dM_j|| ) * ( Sum_j( ||dM_j|| ) / J )

Note
The metric value is unit-less, and thus it is difficult to compute a combined metric. This metric returns the metric value in three ways: 1) GetValue() returns the computed value of only the first component metric. This result is stored in m_Value and also returned by GetCurrentValue(). 2) GetValueArray() returns an itkArray of metric values, one for each component metric. It only has meaning after a call to GetValue(), GetDerivative() or GetValueAndDerivative(). 3) GetWeightedValue() returns a combined metric value of all component metrics, using the assigned weights. It only has meaning after a call to GetValue(), GetDerivative() or GetValueAndDerivative().

The assigned weights are normalized internally to sum to one before use, and the weights default to 1/N, where N is the number of component metrics.

Note
Each component metric must use the same transform parameters object. That is, each metric must be evaluating the same parameters by evaluating the same transform. Except, if a component transform is a CompositeTransform, in which case it must be set to optimize a single transform, and that transform must be the same as the transform in other component metrics.
Each component metric must be setup independently, except for the metric transforms which can optionally be set from this class. That is, each component's images or point sets, fixed transforms and options must be set independently. The only methods in this metric for setting up the component metrics is SetMovingTransform(). The corresponding Set accesor is also available. When Set{Fixed/Moving}Transform() is not used this metric's m_{Fixed/Moving}Transform member is assigned to the fixed/moving transform assigned to the first component metric.

Each component will be initialized by this metric in the call to Initialize().

Note
When used with an itkRegistrationParameterScalesEstimator estimator, and the multi-metric holds one or more point-set metrics, the user must assign a virtual domain point set for sampling to ensure proper sampling within the point set metrics. In order to generate valid shift estimations, such a virtual domain point set must include mapped points from the fixed point set. See RegistrationParameterScalesEstimator::SetVirtualDomainPointSet() and PointSetToPointSetMetricv4::GetVirtualTransformedPointSet(). If there are two different point sets, then the virtual domain point set should be a union of the two for completeness.
If the user does not explicitly assign a virtual domain, then the first valid virtual domain found in the component metrics will be used a virtual domain for this multi-metric, which will be queried by classes such as registration parameter estimators. Each componenet metric will still use its own virtual domain for internal calculations when evaluated, so it is possible to use different virtual domains for each metric if desired. If no component metric has a virtual domain defined, then by default the virtual domain is unbounded. When the transform is high dimensional (e.g. DisplacementFieldTransform) then there must be a virtual domain that matches the space of the transform field. Note that when used with a DisplacementFieldTransform, both Image and PointSet metrics will automatically create a matching virtual domain during initialization if one has not been assigned by the user.

Definition at line 93 of file itkObjectToObjectMultiMetricv4.h.

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::CoordinateRepresentationType 
CoordinateRepresentationType
 
typedef Superclass::DerivativeType DerivativeType
 
typedef
Superclass::DerivativeValueType 
DerivativeValueType
 
typedef
Superclass::FixedTransformType 
FixedTransformType
 
typedef Superclass::MeasureType MeasureType
 
typedef MetricType::ConstPointer MetricBaseConstPointer
 
typedef MetricType::Pointer MetricBasePointer
 
typedef
Superclass::MetricCategoryType 
MetricCategoryType
 
typedef std::deque
< MetricBasePointer
MetricQueueType
 
typedef Superclass MetricType
 
typedef Array< MeasureTypeMetricValueArrayType
 
typedef
Superclass::MovingTransformType 
MovingTransformType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef Superclass::ObjectType ObjectType
 
typedef Superclass::ParametersType ParametersType
 
typedef
Superclass::ParametersValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef ObjectToObjectMultiMetricv4 Self
 
typedef ObjectToObjectMetric
< TFixedDimension,
TMovingDimension,
TVirtualImage,
TInternalComputationValueType > 
Superclass
 
typedef Array< WeightValueTypeWeightsArrayType
 
typedef DerivativeType::ValueType WeightValueType
 
- Public Types inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >
typedef SmartPointer< const SelfConstPointer
 
typedef
TInternalComputationValueType 
CoordinateRepresentationType
 
typedef Superclass::DerivativeType DerivativeType
 
typedef
Superclass::DerivativeValueType 
DerivativeValueType
 
typedef SizeValueType DimensionType
 
typedef
FixedTransformType::InputPointType 
FixedInputPointType
 
typedef
FixedTransformType::OutputPointType 
FixedOutputPointType
 
typedef
FixedTransformType::JacobianType 
FixedTransformJacobianType
 
typedef
FixedTransformType::ParametersType 
FixedTransformParametersType
 
typedef FixedTransformType::Pointer FixedTransformPointer
 
typedef Transform
< TInternalComputationValueType,
TVirtualImage::ImageDimension,
TFixedDimension > 
FixedTransformType
 
typedef
Superclass::GradientSourceType 
GradientSourceType
 
typedef
TInternalComputationValueType 
InternalComputationValueType
 
typedef
FixedTransformType::JacobianType 
JacobianType
 
typedef Superclass::MeasureType MeasureType
 
typedef
Superclass::MetricCategoryType 
MetricCategoryType
 
typedef
DisplacementFieldTransform
< CoordinateRepresentationType,
itkGetStaticConstMacro(MovingDimension) > 
MovingDisplacementFieldTransformType
 
typedef
MovingTransformType::InputPointType 
MovingInputPointType
 
typedef
MovingTransformType::OutputPointType 
MovingOutputPointType
 
typedef
MovingTransformType::JacobianType 
MovingTransformJacobianType
 
typedef
MovingTransformType::ParametersType 
MovingTransformParametersType
 
typedef
MovingTransformType::Pointer 
MovingTransformPointer
 
typedef Transform
< TInternalComputationValueType,
TVirtualImage::ImageDimension,
TMovingDimension > 
MovingTransformType
 
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
 
typedef Superclass::Object ObjectType
 
typedef Superclass::ParametersType ParametersType
 
typedef SmartPointer< SelfPointer
 
typedef ObjectToObjectMetric Self
 
typedef
ObjectToObjectMetricBaseTemplate
< TInternalComputationValueType > 
Superclass
 
typedef
VirtualImageType::DirectionType 
VirtualDirectionType
 
typedef
VirtualImageType::ConstPointer 
VirtualImageConstPointer
 
typedef VirtualImageType::Pointer VirtualImagePointer
 
typedef TVirtualImage VirtualImageType
 
typedef VirtualImageType::IndexType VirtualIndexType
 
typedef VirtualImageType::PointType VirtualOriginType
 
typedef VirtualImageType::PixelType VirtualPixelType
 
typedef
VirtualPointSetType::Pointer 
VirtualPointSetPointer
 
typedef PointSet
< VirtualPixelType,
itkGetStaticConstMacro(VirtualDimension)> 
VirtualPointSetType
 
typedef VirtualImageType::PointType VirtualPointType
 
typedef VirtualImageType::SizeType VirtualRadiusType
 
typedef
VirtualImageType::RegionType 
VirtualRegionType
 
typedef VirtualRegionType::SizeType VirtualSizeType
 
typedef
VirtualImageType::SpacingType 
VirtualSpacingType
 
- Public Types inherited from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >
typedef SmartPointer< const SelfConstPointer
 
typedef
TInternalComputationValueType 
CoordinateRepresentationType
 
typedef Superclass::DerivativeType DerivativeType
 
typedef DerivativeType::ValueType DerivativeValueType
 
enum  GradientSourceType {
  GRADIENT_SOURCE_FIXED =0,
  GRADIENT_SOURCE_MOVING,
  GRADIENT_SOURCE_BOTH
}
 
typedef Superclass::MeasureType MeasureType
 
enum  MetricCategoryType {
  UNKNOWN_METRIC = 0,
  OBJECT_METRIC = 1,
  IMAGE_METRIC = 2,
  POINT_SET_METRIC = 3,
  MULTI_METRIC = 4
}
 
typedef unsigned int NumberOfParametersType
 
typedef ObjectType::ConstPointer ObjectConstPointer
 
typedef Object ObjectType
 
typedef Superclass::ParametersType ParametersType
 
typedef
TInternalComputationValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef
ObjectToObjectMetricBaseTemplate 
Self
 
typedef
SingleValuedCostFunctionv4Template
< TInternalComputationValueType > 
Superclass
 
- Public Types inherited from itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType >
typedef SmartPointer< const SelfConstPointer
 
typedef Array
< TInternalComputationValueType > 
DerivativeType
 
typedef
TInternalComputationValueType 
MeasureType
 
typedef Superclass::ParametersType ParametersType
 
typedef SmartPointer< SelfPointer
 
typedef
SingleValuedCostFunctionv4Template 
Self
 
typedef CostFunctionTemplate
< TInternalComputationValueType > 
Superclass
 
- Public Types inherited from itk::CostFunctionTemplate< TInternalComputationValueType >
typedef SmartPointer< const SelfConstPointer
 
typedef OptimizerParameters
< TInternalComputationValueType > 
ParametersType
 
typedef
TInternalComputationValueType 
ParametersValueType
 
typedef SmartPointer< SelfPointer
 
typedef CostFunctionTemplate Self
 
typedef Object Superclass
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

Public Member Functions

void AddMetric (MetricType *metric)
 
void ClearMetricQueue ()
 
virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual void GetDerivative (DerivativeType &) const override
 
virtual MetricCategoryType GetMetricCategory () const override
 
const MetricQueueTypeGetMetricQueue () const
 
virtual WeightsArrayType GetMetricWeights ()
 
virtual const char * GetNameOfClass () const
 
SizeValueType GetNumberOfMetrics () const
 
MeasureType GetValue () const override
 
void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override
 
MetricValueArrayType GetValueArray () const
 
MeasureType GetWeightedValue () const
 
void Initialize (void) override throw ( itk::ExceptionObject )
 
virtual void SetFixedObject (const ObjectType *) override
 
virtual void SetFixedTransform (FixedTransformType *) override
 
virtual void SetMetricWeights (WeightsArrayType _arg)
 
virtual void SetMovingObject (const ObjectType *) override
 
virtual void SetMovingTransform (MovingTransformType *) override
 
virtual bool SupportsArbitraryVirtualDomainSamples (void) const override
 
- Public Member Functions inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >
OffsetValueType ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const
 
OffsetValueType ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const
 
virtual const FixedTransformTypeGetFixedTransform () const
 
virtual FixedTransformTypeGetModifiableFixedTransform ()
 
virtual MovingTransformTypeGetModifiableMovingTransform ()
 
virtual VirtualImageTypeGetModifiableVirtualImage ()
 
virtual const MovingTransformTypeGetMovingTransform () const
 
virtual NumberOfParametersType GetNumberOfLocalParameters () const override
 
virtual NumberOfParametersType GetNumberOfParameters () const override
 
virtual SizeValueType GetNumberOfValidPoints () const
 
virtual const ParametersTypeGetParameters () const override
 
const MovingTransformTypeGetTransform ()
 
VirtualDirectionType GetVirtualDirection () const
 
virtual const TimeStampGetVirtualDomainTimeStamp () const
 
virtual const VirtualImageTypeGetVirtualImage () const
 
VirtualOriginType GetVirtualOrigin () const
 
const VirtualRegionTypeGetVirtualRegion () const
 
VirtualSpacingType GetVirtualSpacing () const
 
virtual bool HasLocalSupport () const override
 
virtual void SetFixedTransform (FixedTransformType *_arg)
 
virtual void SetMovingTransform (MovingTransformType *_arg)
 
virtual void SetParameters (ParametersType &params) override
 
void SetTransform (MovingTransformType *transform)
 
void SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType &region)
 
void SetVirtualDomainFromImage (const VirtualImageType *virtualImage)
 
virtual void UpdateTransformParameters (const DerivativeType &derivative, TInternalComputationValueTypefactor) override
 
bool IsInsideVirtualDomain (const VirtualPointType &point) const
 
bool IsInsideVirtualDomain (const VirtualIndexType &index) const
 
- Public Member Functions inherited from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >
MeasureType GetCurrentValue () const
 
virtual GradientSourceType GetGradientSource () const
 
bool GetGradientSourceIncludesFixed () const
 
bool GetGradientSourceIncludesMoving () const
 
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override=0
 
virtual void SetGradientSource (GradientSourceType _arg)
 
virtual const ObjectTypeGetFixedObject () const
 
virtual const ObjectTypeGetMovingObject () const
 
- 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 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
 
virtual void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
virtual void SetReferenceCount (int) override
 
virtual void UnRegister () const noexceptoverride
 
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
 

Static Public Member Functions

static Pointer New ()
 
- 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 Member Functions

 ObjectToObjectMultiMetricv4 ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual ~ObjectToObjectMultiMetricv4 ()
 
- Protected Member Functions inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >
const
MovingDisplacementFieldTransformType
GetMovingDisplacementFieldTransform () const
 
 ObjectToObjectMetric ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
bool TransformPhysicalPointToVirtualIndex (const VirtualPointType &, VirtualIndexType &) const
 
void TransformVirtualIndexToPhysicalPoint (const VirtualIndexType &, VirtualPointType &) const
 
virtual void VerifyDisplacementFieldSizeAndPhysicalSpace ()
 
bool VerifyNumberOfValidPoints (MeasureType &value, DerivativeType &derivative) const
 
virtual ~ObjectToObjectMetric ()
 
- Protected Member Functions inherited from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >
 ObjectToObjectMetricBaseTemplate ()
 
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 ()
 

Private Member Functions

 ObjectToObjectMultiMetricv4 (const Self &) ITK_DELETE_FUNCTION
 
void operator= (const Self &) ITK_DELETE_FUNCTION
 

Private Attributes

MetricQueueType m_MetricQueue
 
MetricValueArrayType m_MetricValueArray
 
WeightsArrayType m_MetricWeights
 

Additional Inherited Members

- Static Public Attributes inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >
static const DimensionType FixedDimension
 
static const DimensionType MovingDimension
 
static const DimensionType VirtualDimension
 
- Protected Attributes inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >
FixedTransformPointer m_FixedTransform
 
MovingTransformPointer m_MovingTransform
 
SizeValueType m_NumberOfValidPoints
 
bool m_UserHasSetVirtualDomain
 
VirtualImagePointer m_VirtualImage
 
- Protected Attributes inherited from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >
ObjectConstPointer m_FixedObject
 
GradientSourceType m_GradientSource
 
ObjectConstPointer m_MovingObject
 
MeasureType m_Value
 
- Protected Attributes inherited from itk::LightObject
AtomicInt< int > m_ReferenceCount
 

Member Typedef Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef SmartPointer<const Self> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::ConstPointer

Definition at line 101 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::CoordinateRepresentationType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::CoordinateRepresentationType

Definition at line 116 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::DerivativeType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::DerivativeType

Definition at line 111 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::DerivativeValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::DerivativeValueType

Definition at line 112 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::FixedTransformType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::FixedTransformType

Definition at line 118 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::MeasureType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MeasureType

Types inherited from Superclass.

Definition at line 107 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef MetricType::ConstPointer itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MetricBaseConstPointer

Definition at line 123 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef MetricType::Pointer itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MetricBasePointer

Definition at line 122 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::MetricCategoryType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MetricCategoryType

Definition at line 193 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef std::deque<MetricBasePointer> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MetricQueueType

Definition at line 124 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MetricType

typedefs related to the metric queue

Definition at line 121 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Array<MeasureType> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MetricValueArrayType

Definition at line 130 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::MovingTransformType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::MovingTransformType

Definition at line 117 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::NumberOfParametersType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::NumberOfParametersType

Definition at line 115 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::ObjectType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::ObjectType

Definition at line 126 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::ParametersType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::ParametersType

Definition at line 113 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Superclass::ParametersValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::ParametersValueType

Definition at line 114 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef SmartPointer<Self> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::Pointer

Definition at line 100 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef ObjectToObjectMultiMetricv4 itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::Self

Standard class typedefs

Definition at line 98 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef ObjectToObjectMetric<TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::Superclass

Definition at line 99 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef Array<WeightValueType> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::WeightsArrayType

Definition at line 129 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
typedef DerivativeType::ValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::WeightValueType

Definition at line 128 of file itkObjectToObjectMultiMetricv4.h.

Constructor & Destructor Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::ObjectToObjectMultiMetricv4 ( )
protected
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::~ObjectToObjectMultiMetricv4 ( )
protectedvirtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::ObjectToObjectMultiMetricv4 ( const Self )
private

Member Function Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::AddMetric ( MetricType metric)

Add a metric to the queue

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::ClearMetricQueue ( )

Clear the metric queue

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual::itk::LightObject::Pointer itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::CreateAnother ( ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetDerivative ( DerivativeType ) const
overridevirtual

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

Implements itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual MetricCategoryType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetMetricCategory ( ) const
inlineoverridevirtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
const MetricQueueType& itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetMetricQueue ( ) const

Get the metrics queue

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual WeightsArrayType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetMetricWeights ( )
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual const char* itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetNameOfClass ( ) const
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
SizeValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetNumberOfMetrics ( ) const

Get the number of metrics

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
MeasureType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetValue ( ) const
overridevirtual

Evaluate the metrics and return the value of only the first metric.

See Also
GetValueArray
GetWeightedValue

Implements itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetValueAndDerivative ( MeasureType value,
DerivativeType derivative 
) const
override

Evaluate the metric value and derivative.

Note
Parameters
valuewill contain the value of only the first metric on return.
derivativeholds the combined derivative on return.
See Also
GetValueArray
GetWeightedValue
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
MetricValueArrayType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetValueArray ( ) const

Returns an itkArray of metric values, one for each component metric. It only has meaning after a call to GetValue(), GetDerivative() or GetValueAndDerivative().

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
MeasureType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::GetWeightedValue ( ) const

Returns a combined metric value of all component metrics, using the assigned weights. It only has meaning after a call to GetValue(), GetDerivative() or GetValueAndDerivative().

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::Initialize ( void  )
throw (itk::ExceptionObject
)
overridevirtual

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.

Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
static Pointer itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::New ( )
static

New macro for creation of through a Smart Pointer

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::operator= ( const Self )
private
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
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::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::SetFixedObject ( const ObjectType )
inlineoverridevirtual

Set fixed object (image, point set, etc.)

Reimplemented from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >.

Definition at line 147 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::SetFixedTransform ( FixedTransformType )
overridevirtual

Set each of the component metrics to use this fixed transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::SetMetricWeights ( WeightsArrayType  _arg)
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::SetMovingObject ( const ObjectType )
inlineoverridevirtual

Set moving object (image, point set, etc.)

Reimplemented from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >.

Definition at line 153 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::SetMovingTransform ( MovingTransformType )
overridevirtual

Set each of the component metrics to use this moving transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
virtual bool itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::SupportsArbitraryVirtualDomainSamples ( void  ) const
overridevirtual

Returns a flag. True if arbitrary virtual domain points will always correspond to data points. False if not. For example, point-set metrics return false because only some virtual domain points will correspond to points within the point sets.

Implements itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >.

Member Data Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
MetricQueueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::m_MetricQueue
private

Definition at line 211 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
MetricValueArrayType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::m_MetricValueArray
mutableprivate

Definition at line 213 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, class TInternalComputationValueType = double>
WeightsArrayType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >::m_MetricWeights
private

Definition at line 212 of file itkObjectToObjectMultiMetricv4.h.


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