18 #ifndef __itkCombinationImageToImageMetric_h 19 #define __itkCombinationImageToImageMetric_h 58 template<
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 );
182 void SetMetric( SingleValuedCostFunctionType * metric,
unsigned int pos );
185 SingleValuedCostFunctionType *
GetMetric(
unsigned int count )
const;
200 itkSetMacro( UseRelativeWeights,
bool );
201 itkGetMacro( UseRelativeWeights,
bool );
204 itkSetMacro( UseMultiThread,
bool );
211 void SetUseMetric(
const bool use,
const unsigned int pos );
248 virtual void SetTransform( TransformType * _arg,
unsigned int pos );
253 virtual const TransformType *
GetTransform(
unsigned int pos )
const;
266 virtual void SetInterpolator( InterpolatorType * _arg,
unsigned int pos );
271 virtual const InterpolatorType *
GetInterpolator(
unsigned int pos )
const;
284 virtual void SetFixedImage(
const FixedImageType * _arg,
unsigned int pos );
289 virtual const FixedImageType *
GetFixedImage(
unsigned int pos )
const;
338 virtual void SetMovingImage(
const MovingImageType * _arg,
unsigned int pos );
343 virtual const MovingImageType *
GetMovingImage(
unsigned int pos )
const;
376 virtual void Initialize(
void )
throw ( ExceptionObject );
383 virtual MeasureType
GetValue(
const ParametersType & parameters )
const;
387 const ParametersType & parameters,
388 DerivativeType & derivative )
const;
392 const ParametersType & parameters,
394 DerivativeType & derivative )
const;
398 const TransformParametersType & parameters,
399 HessianType & H )
const;
404 virtual unsigned long GetMTime()
const;
419 void PrintSelf( std::ostream & os, Indent indent )
const;
423 std::vector< SingleValuedCostFunctionPointer >
m_Metrics;
476 #ifndef ITK_MANUAL_INSTANTIATION 477 #include "itkCombinationImageToImageMetric.hxx" 480 #endif // end #ifndef __itkCombinationImageToImageMetric_h Superclass::MeasureType MeasureType
Superclass::TransformParametersType TransformParametersType
SingleValuedCostFunctionType::Pointer SingleValuedCostFunctionPointer
AdvancedTransform< ScalarType, FixedImageDimension, MovingImageDimension > AdvancedTransformType
Superclass::AdvancedTransformType TransformType
Superclass::DerivativeType DerivativeType
DerivativeType::ValueType HessianValueType
virtual void SetInterpolator(InterpolatorType *_arg)
const DerivativeType & GetMetricDerivative(unsigned int pos) const
static ITK_THREAD_RETURN_TYPE CombineDerivativesThreaderCallback(void *arg)
Superclass::FixedImageType FixedImageType
double GetMetricComputationTime(unsigned int pos) const
void SetUseAllMetrics(void)
Superclass::InputPointType InputPointType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
virtual void Initialize(void)
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImagePixelType MovingImagePixelType
Superclass::MovingImageType MovingImageType
std::vector< bool > m_UseMetric
bool GetUseMetric(const unsigned int pos) const
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::OutputPointType OutputPointType
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics...
Superclass::GradientImageFilterType GradientImageFilterType
static ITK_THREAD_RETURN_TYPE GetValueAndDerivativeComboThreaderCallback(void *arg)
virtual void GetSelfHessian(const TransformParametersType ¶meters, HessianType &H) const
virtual void SetFixedImage(const FixedImageType *_arg)
Superclass::GradientImagePointer GradientImagePointer
TransformType::Pointer TransformPointer
Superclass::GradientPixelType GradientPixelType
Superclass::HessianType HessianType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
virtual void SetTransform(TransformType *_arg)
CombinationImageToImageMetric()
Superclass::OutputPointType OutputPointType
Superclass::FixedImageRegionType FixedImageRegionType
DerivativeType m_NullDerivative
std::vector< MeasureType > m_MetricValues
DerivativeValueType * st_Derivative
SmartPointer< Self > Pointer
void SetMetricRelativeWeight(double weight, unsigned int pos)
FixedImageRegionType m_NullFixedImageRegion
itk::MultiThreader ThreaderType
bool m_UseRelativeWeights
std::vector< double > st_MetricComputationTime
unsigned int m_NumberOfMetrics
SingleValuedCostFunctionType * GetMetric(unsigned int count) const
virtual unsigned long GetMTime() const
std::vector< DerivativeType >::iterator st_MetricDerivativesIterator
std::vector< double > st_DerivativesSumOfSquares
virtual void SetMovingImage(const MovingImageType *_arg)
virtual const FixedImageRegionType & GetFixedImageRegion(void) const
Superclass::ParametersType ParametersType
Superclass::GradientPixelType GradientPixelType
virtual const MovingImageType * GetMovingImage(void) const
virtual void SetFixedImageMask(FixedImageMaskType *_arg)
double GetMetricDerivativeMagnitude(unsigned int pos) const
void SetMetric(SingleValuedCostFunctionType *metric, unsigned int pos)
std::vector< SingleValuedCostFunctionPointer > st_MetricsIterator
Superclass::MeasureType MeasureType
virtual void GetValueAndDerivative(const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const
Superclass::InterpolatorPointer InterpolatorPointer
double GetFinalMetricWeight(unsigned int pos) const
Superclass::MovingImageMaskType MovingImageMaskType
ImageMetricType::Pointer ImageMetricPointer
void SetUseMetric(const bool use, const unsigned int pos)
Superclass::InputPointType InputPointType
FixedImageType::PixelType FixedImagePixelType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
PointSet< CoordinateRepresentationType, TFixedImage::ImageDimension, DefaultStaticMeshTraits< CoordinateRepresentationType, TFixedImage::ImageDimension, TFixedImage::ImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > FixedPointSetType
MovingImageType::RegionType MovingImageRegionType
Superclass::FixedImageType FixedImageType
Superclass::MovingImageMaskType MovingImageMaskType
SmartPointer< const Self > ConstPointer
Superclass::DerivativeValueType DerivativeValueType
std::vector< double > m_MetricComputationTime
Superclass::GradientImageType GradientImageType
virtual ~CombinationImageToImageMetric()
Superclass::ThreadInfoType ThreadInfoType
Superclass::InterpolatorType InterpolatorType
ParametersType * st_Parameters
FixedArray< double, itkGetStaticConstMacro(MovingImageDimension) > MovingImageDerivativeScalesType
Combines multiple metrics.
void operator=(const Self &)
virtual void SetMovingImageMask(MovingImageMaskType *_arg)
itkStaticConstMacro(MovingImageDimension, unsigned int, TMovingImage::ImageDimension)
Superclass::GradientImageFilterType GradientImageFilterType
std::vector< SingleValuedCostFunctionPointer > m_Metrics
virtual void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const
Superclass::GradientImageType GradientImageType
Superclass::RealType RealType
Superclass::InterpolatorType InterpolatorType
Superclass::ThreaderType ThreaderType
Superclass::TransformJacobianType TransformJacobianType
Computes similarity between two point sets.
Superclass::ParametersType ParametersType
SingleValuedCostFunction SingleValuedCostFunctionType
std::vector< double > m_MetricDerivativesMagnitude
virtual const TransformType * GetTransform(void) const
virtual MeasureType GetValue(const ParametersType ¶meters) const
std::vector< DerivativeType > m_MetricDerivatives
Superclass::MovingImagePixelType MovingImagePixelType
Superclass::RealType RealType
static ITK_THREAD_RETURN_TYPE ComputeDerivativesMagnitudeThreaderCallback(void *arg)
std::vector< double > m_MetricRelativeWeights
DerivativeType::ValueType DerivativeValueType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
virtual const SizeValueType & GetNumberOfPixelsCounted(void) const
Superclass::MovingImageMaskPointer MovingImageMaskPointer
PointSet< CoordinateRepresentationType, TMovingImage::ImageDimension, DefaultStaticMeshTraits< CoordinateRepresentationType, TMovingImage::ImageDimension, TMovingImage::ImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > MovingPointSetType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
SingleValuedPointSetToPointSetMetric< FixedPointSetType, MovingPointSetType > PointSetMetricType
ThreaderType::ThreadInfoStruct ThreadInfoType
virtual const FixedImageType * GetFixedImage(void) const
std::vector< MeasureType >::iterator st_MetricValuesIterator
Superclass::TransformJacobianType TransformJacobianType
void SetNumberOfMetrics(unsigned int count)
void SetMetricWeight(double weight, unsigned int pos)
Superclass::HessianValueType HessianValueType
Superclass::FixedImageRegionType FixedImageRegionType
Superclass::MovingImageType MovingImageType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::FixedImageMaskType FixedImageMaskType
double GetMetricRelativeWeight(unsigned int pos) const
Superclass::InterpolatorPointer InterpolatorPointer
Superclass ImageMetricType
virtual void InitializeThreadingParameters(void) const
Superclass::FixedImageConstPointer FixedImageConstPointer
void PrintSelf(std::ostream &os, Indent indent) const
Superclass::FixedImageConstPointer FixedImageConstPointer
virtual const FixedImageMaskType * GetFixedImageMask(void) const
Superclass::MovingImageConstPointer MovingImageConstPointer
MeasureType GetMetricValue(unsigned int pos) const
CombinationImageToImageMetric Self
Superclass::DerivativeType DerivativeType
virtual void SetFixedImageRegion(const FixedImageRegionType _arg)
std::vector< double > m_MetricWeights
Self * st_ThisComboMetric
Superclass::CoordinateRepresentationType CoordinateRepresentationType
virtual const InterpolatorType * GetInterpolator(void) const
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
double GetMetricWeight(unsigned int pos) const
virtual const MovingImageMaskType * GetMovingImageMask(void) const
vnl_sparse_matrix< HessianValueType > HessianType
Superclass::GradientImagePointer GradientImagePointer