18#ifndef __itkCombinationImageToImageMetric_h
19#define __itkCombinationImageToImageMetric_h
58template<
class TFixedImage,
class TMovingImage >
79 TMovingImage::ImageDimension );
81 TFixedImage::ImageDimension );
141 typedef FixedArray<
double,
146 TFixedImage::ImageDimension,
147 DefaultStaticMeshTraits<
149 TFixedImage::ImageDimension,
150 TFixedImage::ImageDimension,
154 TMovingImage::ImageDimension,
155 DefaultStaticMeshTraits<
157 TMovingImage::ImageDimension,
158 TMovingImage::ImageDimension,
176 itkGetConstMacro( NumberOfMetrics,
unsigned int );
200 itkSetMacro( UseRelativeWeights,
bool );
201 itkGetMacro( UseRelativeWeights,
bool );
407 void PrintSelf( std::ostream & os, Indent indent )
const override;
411 std::vector< SingleValuedCostFunctionPointer >
m_Metrics;
445#ifndef ITK_MANUAL_INSTANTIATION
446#include "itkCombinationImageToImageMetric.hxx"
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
Superclass::FixedImageConstPointer FixedImageConstPointer
ThreaderType::WorkUnitInfo ThreadInfoType
Superclass::TransformParametersType TransformParametersType
Superclass::InputPointType InputPointType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::GradientImageFilterPointer GradientImageFilterPointer
DerivativeType::ValueType HessianValueType
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::TransformJacobianType TransformJacobianType
Superclass::GradientImagePointer GradientImagePointer
AdvancedTransform< ScalarType, FixedImageDimension, MovingImageDimension > AdvancedTransformType
Superclass::DerivativeType DerivativeType
Superclass::OutputPointType OutputPointType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::InterpolatorPointer InterpolatorPointer
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::FixedImageType FixedImageType
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::GradientPixelType GradientPixelType
Superclass::MeasureType MeasureType
ImageToImageMetric< TFixedImage, TMovingImage > Superclass
Superclass::MovingImagePixelType MovingImagePixelType
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::GradientImageType GradientImageType
Superclass::InterpolatorType InterpolatorType
vnl_sparse_matrix< HessianValueType > HessianType
Superclass::TransformType TransformType
DerivativeType::ValueType DerivativeValueType
Superclass::MovingImageType MovingImageType
itk::PlatformMultiThreader ThreaderType
Superclass::RealType RealType
Superclass::FixedImageRegionType FixedImageRegionType
Superclass::ParametersType ParametersType
Combines multiple metrics.
std::vector< double > m_MetricRelativeWeights
virtual const FixedImageRegionType & GetFixedImageRegion(unsigned int pos) const
const InterpolatorType * GetInterpolator(void) const override
Superclass::AdvancedTransformType TransformType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
const TransformType * GetTransform(void) const override
Superclass::DerivativeValueType DerivativeValueType
double GetFinalMetricWeight(unsigned int pos) const
PointSet< CoordinateRepresentationType, TFixedImage::ImageDimension, DefaultStaticMeshTraits< CoordinateRepresentationType, TFixedImage::ImageDimension, TFixedImage::ImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > FixedPointSetType
Superclass::HessianType HessianType
void SetUseAllMetrics(void)
void Initialize(void) override
Superclass::FixedImageType FixedImageType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
void SetFixedImage(const FixedImageType *_arg) override
Superclass ImageMetricType
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const override
void SetMovingImageMask(MovingImageMaskType *_arg) override
double GetMetricRelativeWeight(unsigned int pos) const
Superclass::RealType RealType
Superclass::ThreadInfoType ThreadInfoType
void SetInterpolator(InterpolatorType *_arg) override
virtual const FixedImageType * GetFixedImage(unsigned int pos) const
const MovingImageType * GetMovingImage(void) const override
itkStaticConstMacro(MovingImageDimension, unsigned int, TMovingImage::ImageDimension)
MovingImageType::RegionType MovingImageRegionType
SmartPointer< const Self > ConstPointer
std::vector< double > m_MetricWeights
DerivativeType m_NullDerivative
Superclass::MovingImageConstPointer MovingImageConstPointer
void SetTransform(TransformType *_arg) override
Superclass::FixedImageRegionType FixedImageRegionType
MeasureType GetMetricValue(unsigned int pos) const
const FixedImageMaskType * GetFixedImageMask(void) const override
double GetMetricWeight(unsigned int pos) const
virtual const MovingImageType * GetMovingImage(unsigned int pos) const
std::vector< bool > m_UseMetric
Superclass::ThreaderType ThreaderType
CombinationImageToImageMetric Self
Superclass::MeasureType MeasureType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
void PrintSelf(std::ostream &os, Indent indent) const override
Superclass::GradientImageFilterPointer GradientImageFilterPointer
void SetFixedImageMask(FixedImageMaskType *_arg) override
const SizeValueType & GetNumberOfPixelsCounted(void) const override
CombinationImageToImageMetric(const Self &)
std::vector< double > m_MetricDerivativesMagnitude
Superclass::TransformParametersType TransformParametersType
unsigned int m_NumberOfMetrics
MeasureType GetValue(const ParametersType ¶meters) const override
const MovingImageMaskType * GetMovingImageMask(void) const override
void SetMetric(SingleValuedCostFunctionType *metric, unsigned int pos)
virtual void SetMovingImageMask(MovingImageMaskType *_arg, unsigned int pos)
void SetFixedImageRegion(const FixedImageRegionType _arg) override
ModifiedTimeType GetMTime() const override
SmartPointer< Self > Pointer
SingleValuedPointSetToPointSetMetric< FixedPointSetType, MovingPointSetType > PointSetMetricType
virtual const MovingImageMaskType * GetMovingImageMask(unsigned int pos) const
Superclass::MovingImageType MovingImageType
PointSet< CoordinateRepresentationType, TMovingImage::ImageDimension, DefaultStaticMeshTraits< CoordinateRepresentationType, TMovingImage::ImageDimension, TMovingImage::ImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > MovingPointSetType
const FixedImageRegionType & GetFixedImageRegion(void) const override
SingleValuedCostFunction SingleValuedCostFunctionType
double GetMetricDerivativeMagnitude(unsigned int pos) const
Superclass::InterpolatorType InterpolatorType
void SetUseMetric(const bool use, const unsigned int pos)
virtual void SetTransform(TransformType *_arg, unsigned int pos)
const DerivativeType & GetMetricDerivative(unsigned int pos) const
virtual const InterpolatorType * GetInterpolator(unsigned int pos) const
void SetMetricWeight(double weight, unsigned int pos)
Superclass::ParametersType ParametersType
FixedArray< double, itkGetStaticConstMacro(MovingImageDimension) > MovingImageDerivativeScalesType
ImageMetricType::Pointer ImageMetricPointer
Superclass::TransformJacobianType TransformJacobianType
Superclass::InputPointType InputPointType
bool m_UseRelativeWeights
Superclass::GradientImagePointer GradientImagePointer
Superclass::GradientPixelType GradientPixelType
virtual void SetFixedImage(const FixedImageType *_arg, unsigned int pos)
void GetValueAndDerivative(const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override
Superclass::InterpolatorPointer InterpolatorPointer
std::vector< MeasureType > m_MetricValues
SingleValuedCostFunctionType * GetMetric(unsigned int count) const
bool GetUseMetric(const unsigned int pos) const
virtual void SetFixedImageMask(FixedImageMaskType *_arg, unsigned int pos)
Superclass::GradientImageType GradientImageType
FixedImageType::PixelType FixedImagePixelType
Superclass::MovingImagePixelType MovingImagePixelType
std::vector< DerivativeType > m_MetricDerivatives
Superclass::DerivativeType DerivativeType
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::HessianValueType HessianValueType
void SetMovingImage(const MovingImageType *_arg) override
TransformType::Pointer TransformPointer
Superclass::OutputPointType OutputPointType
void SetNumberOfMetrics(unsigned int count)
FixedImageRegionType m_NullFixedImageRegion
virtual const FixedImageMaskType * GetFixedImageMask(unsigned int pos) const
Superclass::GradientImageFilterType GradientImageFilterType
CombinationImageToImageMetric()
virtual const TransformType * GetTransform(unsigned int pos) const
virtual void SetFixedImageRegion(const FixedImageRegionType _arg, unsigned int pos)
void operator=(const Self &)
virtual void SetInterpolator(InterpolatorType *_arg, unsigned int pos)
void GetSelfHessian(const TransformParametersType ¶meters, HessianType &H) const override
~CombinationImageToImageMetric() override
std::vector< SingleValuedCostFunctionPointer > m_Metrics
Superclass::FixedImageConstPointer FixedImageConstPointer
const FixedImageType * GetFixedImage(void) const override
double GetMetricComputationTime(unsigned int pos) const
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::MovingImageMaskType MovingImageMaskType
std::vector< double > m_MetricComputationTime
void InitializeThreadingParameters(void) const override
SingleValuedCostFunctionType::Pointer SingleValuedCostFunctionPointer
virtual void SetMovingImage(const MovingImageType *_arg, unsigned int pos)
itkStaticConstMacro(FixedImageDimension, unsigned int, TFixedImage::ImageDimension)
void SetMetricRelativeWeight(double weight, unsigned int pos)
Computes similarity between two point sets.