ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage > Class Template Reference

#include <itkObjectToObjectMultiMetricv4.h>

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

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
Superclass::CoordinateRepresentationType 
CoordinateRepresentationType
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::DerivativeValueType 
DerivativeValueType
typedef Superclass::MeasureType MeasureType
typedef MetricType::ConstPointer MetricBaseConstPointer
typedef MetricType::Pointer MetricBasePointer
typedef std::deque
< MetricBasePointer
MetricQueueType
typedef Superclass MetricType
typedef Array< MeasureTypeMetricValueArrayType
typedef
Superclass::MovingTransformType 
MovingTransformType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef Superclass::ParametersType ParametersType
typedef
Superclass::ParametersValueType 
ParametersValueType
typedef SmartPointer< SelfPointer
typedef ObjectToObjectMultiMetricv4 Self
typedef ObjectToObjectMetric
< TFixedDimension,
TMovingDimension,
TVirtualImage > 
Superclass
typedef Array< WeightValueTypeWeightsArrayType
typedef DerivativeType::ValueType WeightValueType
- Public Types inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >
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
< ParametersValueType,
TVirtualImage::ImageDimension,
TFixedDimension > 
FixedTransformType
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
typedef
FixedTransformType::JacobianType 
JacobianType
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
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::ObjectToObjectMetricBase
enum  GradientSourceType {
  GRADIENT_SOURCE_FIXED = 0,
  GRADIENT_SOURCE_MOVING,
  GRADIENT_SOURCE_BOTH
}
- Public Types inherited from itk::SingleValuedCostFunctionv4
- Public Types inherited from itk::CostFunction
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

void AddMetric (MetricType *metric)
void ClearMetricQueue (void)
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual void GetDerivative (DerivativeType &) const
const MetricQueueTypeGetMetricQueue ()
virtual WeightsArrayType GetMetricWeights ()
virtual const char * GetNameOfClass () const
SizeValueType GetNumberOfMetrics () const
MeasureType GetValue () const
void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const
MetricValueArrayType GetValueArray () const
MeasureType GetWeightedValue () const
void Initialize (void) throw ( itk::ExceptionObject )
virtual void SetMetricWeights (WeightsArrayType _arg)
virtual void SetMovingTransform (MovingTransformType *)
virtual bool SupportsArbitraryVirtualDomainSamples (void) const
- Public Member Functions inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >
OffsetValueType ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const
OffsetValueType ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const
virtual const FixedTransformTypeGetFixedTransform ()
virtual const MovingTransformTypeGetMovingTransform ()
virtual NumberOfParametersType GetNumberOfLocalParameters () const
virtual NumberOfParametersType GetNumberOfParameters () const
virtual SizeValueType GetNumberOfValidPoints () const
virtual const ParametersTypeGetParameters () const
const MovingTransformTypeGetTransform ()
VirtualDirectionType GetVirtualDirection (void) const
virtual const TimeStampGetVirtualDomainTimeStamp (void) const
virtual const VirtualImageTypeGetVirtualImage ()
VirtualOriginType GetVirtualOrigin (void) const
const VirtualRegionTypeGetVirtualRegion (void) const
VirtualSpacingType GetVirtualSpacing (void) const
virtual bool HasLocalSupport () const
virtual void SetFixedTransform (FixedTransformType *_arg)
virtual void SetParameters (ParametersType &params)
void SetTransform (MovingTransformType *transform)
void SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType &region)
virtual void UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor)
void SetVirtualDomainFromImage (VirtualImageType *virtualImage)
void SetVirtualDomainFromImage (const VirtualImageType *virtualImage)
bool IsInsideVirtualDomain (const VirtualPointType &point) const
bool IsInsideVirtualDomain (const VirtualIndexType &index) const
- Public Member Functions inherited from itk::ObjectToObjectMetricBase
MeasureType GetCurrentValue () const
virtual GradientSourceType GetGradientSource () const
bool GetGradientSourceIncludesFixed () const
bool GetGradientSourceIncludesMoving () const
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0
virtual void SetGradientSource (GradientSourceType _arg)
- Public Member Functions inherited from itk::SingleValuedCostFunctionv4
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 ObjectToObjectMultiMetricv4 ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~ObjectToObjectMultiMetricv4 ()
- Protected Member Functions inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >
MovingDisplacementFieldTransformTypeGetMovingDisplacementFieldTransform () const
 ObjectToObjectMetric ()
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::ObjectToObjectMetricBase
 ObjectToObjectMetricBase ()
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 ()

Private Member Functions

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

Private Attributes

MetricQueueType m_MetricQueue
MetricValueArrayType m_MetricValueArray
WeightsArrayType m_MetricWeights

Additional Inherited Members

- Static Public Attributes inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >
static const DimensionType FixedDimension = TFixedDimension
static const DimensionType MovingDimension = TMovingDimension
static const DimensionType VirtualDimension = TVirtualImage::ImageDimension
- Protected Attributes inherited from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >
FixedTransformPointer m_FixedTransform
MovingTransformPointer m_MovingTransform
SizeValueType m_NumberOfValidPoints
bool m_UserHasSetVirtualDomain
VirtualImagePointer m_VirtualImage
- Protected Attributes inherited from itk::ObjectToObjectMetricBase
GradientSourceType m_GradientSource
MeasureType m_Value

Detailed Description

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

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 SetMovingTransform() is not used this metric's m_MovingTransform member is assigned to the 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 94 of file itkObjectToObjectMultiMetricv4.h.


Member Typedef Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef SmartPointer<const Self> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::ConstPointer
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::CoordinateRepresentationType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::CoordinateRepresentationType

Type used for representing object components

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

Definition at line 117 of file itkObjectToObjectMultiMetricv4.h.

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

Type of the derivative.

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

Definition at line 112 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::DerivativeValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::DerivativeValueType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::MeasureType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MeasureType

Types inherited from Superclass.

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

Definition at line 108 of file itkObjectToObjectMultiMetricv4.h.

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

Definition at line 123 of file itkObjectToObjectMultiMetricv4.h.

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

Definition at line 122 of file itkObjectToObjectMultiMetricv4.h.

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

Definition at line 124 of file itkObjectToObjectMultiMetricv4.h.

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

typedefs related to the metric queue

Definition at line 121 of file itkObjectToObjectMultiMetricv4.h.

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

Definition at line 128 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::MovingTransformType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MovingTransformType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::NumberOfParametersType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::NumberOfParametersType

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

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

Definition at line 116 of file itkObjectToObjectMultiMetricv4.h.

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

Type of the parameters.

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

Definition at line 114 of file itkObjectToObjectMultiMetricv4.h.

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

ParametersType typedef. It defines a position in the optimization search space.

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

Definition at line 115 of file itkObjectToObjectMultiMetricv4.h.

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

Standard class typedefs

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

Definition at line 99 of file itkObjectToObjectMultiMetricv4.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef ObjectToObjectMetric<TFixedDimension, TMovingDimension, TVirtualImage> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::Superclass
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Array<WeightValueType> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::WeightsArrayType

Definition at line 127 of file itkObjectToObjectMultiMetricv4.h.

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

Definition at line 126 of file itkObjectToObjectMultiMetricv4.h.


Constructor & Destructor Documentation

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

Member Function Documentation

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

Add a metric to the queue

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

Clear the metric queue

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual::itk::LightObject::Pointer itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::CreateAnother ( void  ) 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, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::GetDerivative ( DerivativeType ) const
virtual

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

Implements itk::ObjectToObjectMetricBase.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
const MetricQueueType& itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::GetMetricQueue ( )

Get the metrics queue

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

Run-time type information (and related methods).

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
SizeValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::GetNumberOfMetrics ( ) const

Get the number of metrics

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
MeasureType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::GetValue ( ) const
virtual

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

See also:
GetValueArray
GetWeightedValue

Implements itk::ObjectToObjectMetricBase.

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

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, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
MetricValueArrayType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::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, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
MeasureType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::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, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::Initialize ( void  ) throw ( itk::ExceptionObject )
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.

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

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

New macro for creation of through a Smart Pointer

Reimplemented from itk::Object.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::operator= ( const Self )
private

Mutex lock to protect modification to the reference count

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
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::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::SetMetricWeights ( WeightsArrayType  _arg)
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::SetMovingTransform ( MovingTransformType )
virtual

Set each of the component metrics to use this transform.

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

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

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 >.


Member Data Documentation

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

Definition at line 188 of file itkObjectToObjectMultiMetricv4.h.

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

Definition at line 190 of file itkObjectToObjectMultiMetricv4.h.

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

Definition at line 189 of file itkObjectToObjectMultiMetricv4.h.


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