ITK
4.2.0
Insight Segmentation and Registration Toolkit
|
#include <itkObjectToObjectMultiMetricv4.h>
Static Public Member Functions | |
static Pointer | New () |
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 |
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 )
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.
Each component will be initialized by this metric in the call to Initialize().
Definition at line 94 of file itkObjectToObjectMultiMetricv4.h.
typedef SmartPointer<const Self> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::ConstPointer |
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
Definition at line 102 of file itkObjectToObjectMultiMetricv4.h.
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.
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.
typedef Superclass::DerivativeValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::DerivativeValueType |
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
Definition at line 113 of file itkObjectToObjectMultiMetricv4.h.
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.
typedef MetricType::ConstPointer itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MetricBaseConstPointer |
Definition at line 123 of file itkObjectToObjectMultiMetricv4.h.
typedef MetricType::Pointer itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MetricBasePointer |
Definition at line 122 of file itkObjectToObjectMultiMetricv4.h.
typedef std::deque<MetricBasePointer> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MetricQueueType |
Definition at line 124 of file itkObjectToObjectMultiMetricv4.h.
typedef Superclass itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MetricType |
typedefs related to the metric queue
Definition at line 121 of file itkObjectToObjectMultiMetricv4.h.
typedef Array<MeasureType> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MetricValueArrayType |
Definition at line 128 of file itkObjectToObjectMultiMetricv4.h.
typedef Superclass::MovingTransformType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::MovingTransformType |
Type of the Transform Base classes
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
Definition at line 118 of file itkObjectToObjectMultiMetricv4.h.
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.
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.
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.
typedef SmartPointer<Self> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::Pointer |
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
Definition at line 101 of file itkObjectToObjectMultiMetricv4.h.
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.
typedef ObjectToObjectMetric<TFixedDimension, TMovingDimension, TVirtualImage> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::Superclass |
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
Definition at line 100 of file itkObjectToObjectMultiMetricv4.h.
typedef Array<WeightValueType> itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::WeightsArrayType |
Definition at line 127 of file itkObjectToObjectMultiMetricv4.h.
typedef DerivativeType::ValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::WeightValueType |
Definition at line 126 of file itkObjectToObjectMultiMetricv4.h.
|
protected |
|
protectedvirtual |
|
private |
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::AddMetric | ( | MetricType * | metric | ) |
Add a metric to the queue
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::ClearMetricQueue | ( | void | ) |
Clear the metric queue
|
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.
|
virtual |
This method returns the derivative based on the current transformation(s).
Implements itk::ObjectToObjectMetricBase.
const MetricQueueType& itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::GetMetricQueue | ( | ) |
Get the metrics queue
|
virtual |
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
SizeValueType itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::GetNumberOfMetrics | ( | ) | const |
Get the number of metrics
|
virtual |
Evaluate the metrics and return the value of only the first metric.
Implements itk::ObjectToObjectMetricBase.
void itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >::GetValueAndDerivative | ( | MeasureType & | value, |
DerivativeType & | derivative | ||
) | const |
Evaluate the metric value and derivative.
value | will contain the value of only the first metric on return. |
derivative | holds the combined derivative on return. |
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().
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().
|
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 >.
|
static |
New macro for creation of through a Smart Pointer
Reimplemented from itk::Object.
|
private |
Mutex lock to protect modification to the reference count
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
|
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 >.
|
virtual |
|
virtual |
Set each of the component metrics to use this transform.
Reimplemented from itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >.
|
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 >.
|
private |
Definition at line 188 of file itkObjectToObjectMultiMetricv4.h.
|
mutableprivate |
Definition at line 190 of file itkObjectToObjectMultiMetricv4.h.
|
private |
Definition at line 189 of file itkObjectToObjectMultiMetricv4.h.