19 #ifndef itkObjectToObjectMultiMetricv4_h
20 #define itkObjectToObjectMultiMetricv4_h
92 template<
unsigned int TFixedDimension,
unsigned int TMovingDimension,
typename TVirtualImage = Image<
double, TFixedDimension>,
class TInternalComputationValueType =
double >
94 public ObjectToObjectMetric<TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType>
110 typedef typename Superclass::MeasureType
MeasureType;
139 void ClearMetricQueue();
144 void Initialize(
void) ITK_OVERRIDE;
147 virtual
void SetFixedObject( const
ObjectType *itkNotUsed(
object ) ) ITK_OVERRIDE
149 itkExceptionMacro(
"A single object should not be specified for the multi metric.");
155 itkExceptionMacro(
"A single object should not be specified for the multi metric.");
159 virtual void SetMovingTransform( MovingTransformType * ) ITK_OVERRIDE;
162 virtual
void SetFixedTransform( FixedTransformType * ) ITK_OVERRIDE;
168 MeasureType GetValue() const ITK_OVERRIDE;
170 virtual
void GetDerivative( DerivativeType & ) const ITK_OVERRIDE;
178 void GetValueAndDerivative(MeasureType & value, DerivativeType & derivative) const ITK_OVERRIDE;
182 MetricValueArrayType GetValueArray() const;
186 MeasureType GetWeightedValue() const;
189 const MetricQueueType & GetMetricQueue() const;
191 virtual
bool SupportsArbitraryVirtualDomainSamples(
void ) const ITK_OVERRIDE;
196 virtual MetricCategoryType GetMetricCategory() const ITK_OVERRIDE
198 return Superclass::MULTI_METRIC;
205 void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
217 #ifndef ITK_MANUAL_INSTANTIATION
218 #include "itkObjectToObjectMultiMetricv4.hxx"
Superclass::ParametersType ParametersType
TInternalComputationValueType ValueType
Light weight base class for most itk classes.
MetricType::Pointer MetricBasePointer
ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType > Superclass
This class takes one ore more ObjectToObject metrics and assigns weights to their derivatives to comp...
Superclass::ParametersValueType ParametersValueType
Superclass::DerivativeType DerivativeType
Computes similarity between regions of two objects.
unsigned long SizeValueType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::MeasureType MeasureType
virtual void SetMovingObject(const ObjectType *) override
Superclass::FixedTransformType FixedTransformType
SmartPointer< const Self > ConstPointer
DerivativeType::ValueType WeightValueType
Array< MeasureType > MetricValueArrayType
MetricType::ConstPointer MetricBaseConstPointer
Superclass::MovingTransformType MovingTransformType
Superclass::NumberOfParametersType NumberOfParametersType
Control indentation during Print() invocation.
SmartPointer< Self > Pointer
Superclass::ObjectType ObjectType
std::deque< MetricBasePointer > MetricQueueType
Array< WeightValueType > WeightsArrayType
Base class for most ITK classes.
ObjectToObjectMultiMetricv4 Self
Superclass::DerivativeValueType DerivativeValueType