ITK  4.8.0
Insight Segmentation and Registration Toolkit
itkImageToImageMetricv4.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkImageToImageMetricv4_h
19 #define itkImageToImageMetricv4_h
20 
21 #include "itkCovariantVector.h"
22 #include "itkImageFunction.h"
25 #include "itkSpatialObject.h"
26 #include "itkResampleImageFilter.h"
29 #include "itkImageToImageFilter.h"
31 #include "itkPointSet.h"
34 
35 namespace itk
36 {
167 template<typename TFixedImage,typename TMovingImage,typename TVirtualImage = TFixedImage,
168  typename TInternalComputationValueType = double,
169  typename TMetricTraits = DefaultImageToImageMetricTraitsv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType >
170  >
172  : public ObjectToObjectMetric<TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType>
173 {
174 public:
175 
181 
184 
188  typedef TInternalComputationValueType InternalComputationValueType;
189 
192 
196 
199 
203 
210 
216 
220 
222 
224  typedef TFixedImage FixedImageType;
225  typedef typename FixedImageType::PixelType FixedImagePixelType;
227  typedef typename FixedImageType::Pointer FixedImagePointer;
228  typedef typename FixedImageType::ConstPointer FixedImageConstPointer;
229  typedef typename FixedImageType::PointType FixedImagePointType;
230  typedef typename FixedImageType::IndexType FixedImageIndexType;
231  typedef TMovingImage MovingImageType;
232  typedef typename MovingImageType::PixelType MovingImagePixelType;
234  typedef typename MovingImageType::Pointer MovingImagePointer;
235  typedef typename MovingImageType::ConstPointer MovingImageConstPointer;
236  typedef typename MovingImageType::PointType MovingImagePointType;
237  typedef typename MovingImageType::RegionType MovingImageRegionType;
238  typedef typename MovingImageType::IndexType MovingImageIndexType;
239 
254 
256  typedef TMetricTraits MetricTraits;
257 
258  /* Image dimension accessors */
262 
268 
274 
280 
290 
292  typedef typename MetricTraits::FixedImageGradientType FixedImageGradientType;
293  typedef typename MetricTraits::MovingImageGradientType MovingImageGradientType;
294  typedef typename MetricTraits::VirtualImageGradientType VirtualImageGradientType;
295 
298 
301 
304 
308  typedef typename MetricTraits::FixedRealType FixedRealType;
309  typedef typename MetricTraits::MovingRealType MovingRealType;
310 
313 
314  typedef typename MetricTraits::FixedGradientPixelType FixedGradientPixelType;
315  typedef typename MetricTraits::MovingGradientPixelType MovingGradientPixelType;
316 
317  typedef typename MetricTraits::FixedImageGradientImageType FixedImageGradientImageType;
318  typedef typename MetricTraits::MovingImageGradientImageType MovingImageGradientImageType;
319 
320  typedef typename FixedImageGradientImageType::Pointer FixedImageGradientImagePointer;
321  typedef typename MovingImageGradientImageType::Pointer MovingImageGradientImagePointer;
322 
323  typedef typename MetricTraits::FixedImageGradientFilterType FixedImageGradientFilterType;
324  typedef typename MetricTraits::MovingImageGradientFilterType MovingImageGradientFilterType;
325 
326  typedef typename FixedImageGradientFilterType::Pointer
328  typedef typename MovingImageGradientFilterType::Pointer
330 
331 
333  typedef typename MetricTraits::DefaultFixedImageGradientFilter DefaultFixedImageGradientFilter;
334  typedef typename MetricTraits::DefaultMovingImageGradientFilter DefaultMovingImageGradientFilter;
335 
338  typedef typename MetricTraits::FixedImageGradientCalculatorType
340  typedef typename MetricTraits::MovingImageGradientCalculatorType
342 
343  typedef typename FixedImageGradientCalculatorType::Pointer
345  typedef typename MovingImageGradientCalculatorType::Pointer
347 
349  typedef typename MetricTraits::DefaultFixedImageGradientCalculator DefaultFixedImageGradientCalculator;
350  typedef typename MetricTraits::DefaultMovingImageGradientCalculator DefaultMovingImageGradientCalculator;
351 
354 
357  typedef typename DerivativeType::ValueType DerivativeValueType;
358 
362 
364  virtual void SetFixedObject( const ObjectType *object ) ITK_OVERRIDE
365  {
366  FixedImageType *image = dynamic_cast<FixedImageType *>( const_cast<ObjectType *>( object ) );
367  if( image != ITK_NULLPTR )
368  {
369  this->SetFixedImage( image );
370  }
371  else
372  {
373  itkExceptionMacro( "Incorrect object type. Should be an image." )
374  }
375  }
377 
379  virtual void SetMovingObject( const ObjectType *object ) ITK_OVERRIDE
380  {
381  MovingImageType *image = dynamic_cast<MovingImageType *>( const_cast<ObjectType *>( object ) );
382  if( image != ITK_NULLPTR )
383  {
384  this->SetMovingImage( image );
385  }
386  else
387  {
388  itkExceptionMacro( "Incorrect object type. Should be an image." )
389  }
390  }
392 
393  /* Get/Set the Fixed Image. */
394  itkSetConstObjectMacro(FixedImage, FixedImageType);
395  itkGetConstObjectMacro(FixedImage, FixedImageType);
396 
398  itkSetConstObjectMacro(MovingImage, MovingImageType);
399  itkGetConstObjectMacro(MovingImage, MovingImageType);
401 
403  itkSetObjectMacro(FixedInterpolator, FixedInterpolatorType);
404 
406  itkGetModifiableObjectMacro(FixedInterpolator, FixedInterpolatorType);
407 
409  itkSetObjectMacro(MovingInterpolator, MovingInterpolatorType);
410 
412  itkGetModifiableObjectMacro(MovingInterpolator, MovingInterpolatorType);
413 
415  itkSetObjectMacro(MovingImageMask, MovingImageMaskType);
416  itkSetConstObjectMacro(MovingImageMask, MovingImageMaskType);
417  itkGetConstObjectMacro(MovingImageMask, MovingImageMaskType);
419 
421  itkSetObjectMacro(FixedImageMask, FixedImageMaskType);
422  itkSetConstObjectMacro(FixedImageMask, FixedImageMaskType);
423  itkGetConstObjectMacro(FixedImageMask, FixedImageMaskType);
425 
429  itkSetObjectMacro(FixedSampledPointSet, FixedSampledPointSetType);
430  itkSetConstObjectMacro(FixedSampledPointSet, FixedSampledPointSetType);
431  itkGetConstObjectMacro(FixedSampledPointSet, FixedSampledPointSetType);
433 
435  itkSetMacro(UseFixedSampledPointSet, bool);
436  itkGetConstReferenceMacro(UseFixedSampledPointSet, bool);
437  itkBooleanMacro(UseFixedSampledPointSet);
439 
441  itkGetModifiableObjectMacro(VirtualSampledPointSet, VirtualPointSetType);
442 
444  itkSetObjectMacro( FixedImageGradientFilter, FixedImageGradientFilterType );
445  itkGetModifiableObjectMacro(FixedImageGradientFilter, FixedImageGradientFilterType );
446  itkSetObjectMacro( MovingImageGradientFilter, MovingImageGradientFilterType );
447  itkGetModifiableObjectMacro(MovingImageGradientFilter, MovingImageGradientFilterType );
449 
451  itkSetObjectMacro( FixedImageGradientCalculator, FixedImageGradientCalculatorType);
452  itkGetModifiableObjectMacro(FixedImageGradientCalculator, FixedImageGradientCalculatorType);
453  itkSetObjectMacro( MovingImageGradientCalculator, MovingImageGradientCalculatorType);
454  itkGetModifiableObjectMacro(MovingImageGradientCalculator, MovingImageGradientCalculatorType);
456 
459  itkSetMacro(UseFixedImageGradientFilter, bool);
460  itkGetConstReferenceMacro(UseFixedImageGradientFilter, bool);
461  itkBooleanMacro(UseFixedImageGradientFilter);
463 
465  itkSetMacro(UseMovingImageGradientFilter, bool);
466  itkGetConstReferenceMacro(UseMovingImageGradientFilter, bool);
467  itkBooleanMacro(UseMovingImageGradientFilter);
469 
473  virtual ThreadIdType GetNumberOfThreadsUsed() const;
474 
478  virtual void SetMaximumNumberOfThreads( const ThreadIdType threads );
479  virtual ThreadIdType GetMaximumNumberOfThreads() const;
481 
486  virtual void InitializeThread( const ThreadIdType /*threadId*/ ) { /*Do nothing by default */ }
487 
495  virtual void FinalizeThread( const ThreadIdType /*threadId*/ ) { /*Do nothing by default */ }
496 
498  itkGetModifiableObjectMacro(FixedImageGradientImage, FixedImageGradientImageType);
499 
501  itkGetModifiableObjectMacro(MovingImageGradientImage, MovingImageGradientImageType);
502 
504  virtual SizeValueType GetNumberOfValidPoints() const ITK_OVERRIDE
505  {
506  return this->m_NumberOfValidPoints;
507  }
508 
514 
528  itkSetMacro(UseFloatingPointCorrection, bool);
529  itkGetConstReferenceMacro(UseFloatingPointCorrection, bool);
530  itkBooleanMacro(UseFloatingPointCorrection);
532 
537  itkSetMacro( FloatingPointCorrectionResolution, DerivativeValueType );
538  itkGetConstMacro( FloatingPointCorrectionResolution, DerivativeValueType );
540 
541  /* Initialize the metric before calling GetValue or GetDerivative.
542  * Derived classes must call this Superclass version if they override
543  * this to perform their own initialization.
544  * \note This is meant to be called once for a particular metric setup.
545  * That is, when used in registration, this method would be called once
546  * before entering the registration loop, during which GetValue or
547  * GetDerivative will be called repeatedly. It must be called again if
548  * metric settings are changed before beginning a new registration. */
549  virtual void Initialize(void) throw ( itk::ExceptionObject ) ITK_OVERRIDE;
550 
551  virtual MeasureType GetValue() const ITK_OVERRIDE;
552 
553  virtual void GetDerivative( DerivativeType & ) const ITK_OVERRIDE;
554 
560  virtual void GetValueAndDerivative( MeasureType & value, DerivativeType & derivative ) const ITK_OVERRIDE;
561 
565  itkGetConstReferenceMacro(NumberOfSkippedFixedSampledPoints, SizeValueType);
566 
567  virtual bool SupportsArbitraryVirtualDomainSamples( void ) const ITK_OVERRIDE
568  {
569  return true;
570  }
571 
573 
575  virtual MetricCategoryType GetMetricCategory() const ITK_OVERRIDE
576  {
578  }
579 
580 protected:
581  /* Interpolators for image gradient filters. */
588 
593 
594  /* A DenseGetValueAndDerivativeThreader
595  * Derived classes must define this class and assign it in their constructor
596  * if threaded processing in GetValueAndDerivative is performed. */
598  /* A SparseGetValueAndDerivativeThreader
599  * Derived classes must define this class and assign it in their constructor
600  * if threaded processing in GetValueAndDerivative is performed. */
602 
607  virtual void InitializeForIteration() const;
608 
617  const VirtualPointType & virtualPoint,
618  FixedImagePointType & mappedFixedPoint,
619  FixedImagePixelType & mappedFixedPixelValue ) const;
620 
623  const VirtualPointType & virtualPoint,
624  MovingImagePointType & mappedMovingPoint,
625  MovingImagePixelType & mappedMovingPixelValue ) const;
626 
628  virtual void ComputeFixedImageGradientAtPoint( const FixedImagePointType & mappedPoint, FixedImageGradientType & gradient ) const;
629 
631  virtual void ComputeMovingImageGradientAtPoint( const MovingImagePointType & mappedPoint, MovingImageGradientType & gradient ) const;
632 
637 
641  virtual void ComputeMovingImageGradientFilterImage() const;
642 
649  virtual void GetValueAndDerivativeExecute() const;
650 
656 
658  itkGetConstMacro( ComputeDerivative, bool );
659 
662 
668 
673 
677 
680  typename DefaultFixedImageGradientFilter::Pointer
682  typename DefaultMovingImageGradientFilter::Pointer
684 
687  typename DefaultFixedImageGradientCalculator::Pointer
689  typename DefaultMovingImageGradientCalculator::Pointer
691 
695 
699 
707 
711 
715 
718 
720  virtual ~ImageToImageMetricv4();
721 
722  void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
723 
724 private:
727 
729  void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint,
730  typename FixedTransformType::OutputPointType &mappedFixedPoint) const
731  {
732  mappedFixedPoint = this->m_FixedTransform->TransformPoint(virtualPoint);
733  }
734  // cast the virtual point
735  template <typename TVirtualPoint>
736  void LocalTransformPoint(const TVirtualPoint &virtualPoint,
737  typename FixedTransformType::OutputPointType &mappedFixedPoint) const
738  {
739  typename FixedTransformType::OutputPointType localVirtualPoint;
741 
742  localVirtualPoint.CastFrom(virtualPoint);
743 
744  mappedFixedPoint = this->m_FixedTransform->TransformPoint( localVirtualPoint );
745  }
746  // cast the mapped Fixed Point
747  template <typename TFixedImagePoint>
748  void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint,
749  TFixedImagePoint &mappedFixedPoint) const
750  {
751  typename FixedTransformType::OutputPointType localMappedFixedPoint;
752  localMappedFixedPoint.CastFrom(mappedFixedPoint);
753  localMappedFixedPoint = this->m_FixedTransform->TransformPoint( virtualPoint );
754  mappedFixedPoint.CastFrom(localMappedFixedPoint);
755  }
756  // cast both mapped and fixed point.
757  template <typename TVirtualPoint,typename TFixedImagePoint>
758  void LocalTransformPoint(const TVirtualPoint &virtualPoint,
759  TFixedImagePoint &mappedFixedPoint) const
760  {
761  typename FixedTransformType::OutputPointType localVirtualPoint;
762  typename FixedTransformType::OutputPointType localMappedFixedPoint;
763 
764  localVirtualPoint.CastFrom(virtualPoint);
765  localMappedFixedPoint.CastFrom(mappedFixedPoint);
766 
767  localMappedFixedPoint = this->m_FixedTransform->TransformPoint( localVirtualPoint );
768  mappedFixedPoint.CastFrom(localMappedFixedPoint);
769  }
770 
774 
775  ImageToImageMetricv4(const Self &); //purposely not implemented
776  void operator=(const Self &); //purposely not implemented
777 
782 
785 
787 
789  mutable bool m_ComputeDerivative;
790 
793  #ifdef ITK_USE_CONCEPT_CHECKING
796  itkConceptMacro( OnlyDefinedForFloatingPointTypes0, ( itk::Concept::IsFloatingPoint<FixedImagePixelValueType> ) );
797  itkConceptMacro( OnlyDefinedForFloatingPointTypes1, ( itk::Concept::IsFloatingPoint<MovingImagePixelValueType> ) );
798  #endif // ITK_USE_CONCEPT_CHECKING
799 
800 
801 };
802 }//namespace itk
803 
804 #ifndef ITK_MANUAL_INSTANTIATION
805 #include "itkImageToImageMetricv4.hxx"
806 #endif
807 
808 #endif
FixedImageMaskConstPointer m_FixedImageMask
MovingImagePixelType MovingPixelType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint, typename FixedTransformType::OutputPointType &mappedFixedPoint) const
void LocalTransformPoint(const TVirtualPoint &virtualPoint, typename FixedTransformType::OutputPointType &mappedFixedPoint) const
MetricTraits::DefaultMovingImageGradientCalculator DefaultMovingImageGradientCalculator
Superclass::VirtualSpacingType VirtualSpacingType
virtual void ComputeMovingImageGradientFilterImage() const
Superclass::VirtualRegionType VirtualRegionType
SizeValueType GetNumberOfDomainPoints() const
Transform< TInternalComputationValueType, TVirtualImage::ImageDimension, TMovingDimension > MovingTransformType
SpatialObject< itkGetStaticConstMacro(MovingImageDimension) > MovingImageMaskType
MetricTraits::MovingRealType MovingRealType
virtual ThreadIdType GetMaximumNumberOfThreads() const
Superclass::VirtualPointSetType VirtualPointSetType
virtual void ComputeMovingImageGradientAtPoint(const MovingImagePointType &mappedPoint, MovingImageGradientType &gradient) const
ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Self >::Pointer m_SparseGetValueAndDerivativeThreader
Superclass::DimensionType DimensionType
Light weight base class for most itk classes.
Superclass::MovingTransformJacobianType MovingTransformJacobianType
PointSet< typename FixedImageType::PixelType, itkGetStaticConstMacro(FixedImageDimension)> FixedSampledPointSetType
virtual void InitializeThread(const ThreadIdType)
bool TransformAndEvaluateFixedPoint(const VirtualPointType &virtualPoint, FixedImagePointType &mappedFixedPoint, FixedImagePixelType &mappedFixedPixelValue) const
Superclass::VirtualPointType VirtualOriginType
Superclass::JacobianType JacobianType
Superclass::MeasureType MeasureType
TPixelType::ValueType ValueType
LinearInterpolateImageFunction< FixedImageGradientImageType, CoordinateRepresentationType > FixedImageGradientInterpolatorType
Superclass::VirtualIndexType VirtualIndexType
Superclass::FixedTransformPointer FixedTransformPointer
MovingImageGradientFilterType::Pointer MovingImageGradientFilterPointer
virtual void ComputeFixedImageGradientFilterImage()
MetricTraits::MovingGradientPixelType MovingGradientPixelType
virtual void SetMaximumNumberOfThreads(const ThreadIdType threads)
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
Superclass::ParametersValueType ParametersValueType
Superclass::FixedTransformType FixedTransformType
DefaultFixedImageGradientCalculator::Pointer m_DefaultFixedImageGradientCalculator
Superclass::MovingTransformType MovingTransformType
Superclass::VirtualPixelType VirtualPixelType
MetricTraits::FixedGradientPixelType FixedGradientPixelType
SmartPointer< const Self > ConstPointer
void operator=(const Self &)
MetricTraits::DefaultFixedImageGradientFilter DefaultFixedImageGradientFilter
DefaultMovingImageGradientFilter::Pointer m_DefaultMovingImageGradientFilter
FixedImageMaskType::ConstPointer FixedImageMaskConstPointer
Transform< TInternalComputationValueType, TVirtualImage::ImageDimension, TFixedDimension > FixedTransformType
Superclass::VirtualImagePointer VirtualImagePointer
Class for partitioning of an ImageRegion.
virtual void SetFixedObject(const ObjectType *object) override
virtual void SetMovingObject(const ObjectType *object) override
FixedImageGradientCalculatorPointer m_FixedImageGradientCalculator
TInternalComputationValueType ParametersValueType
SizeValueType m_NumberOfSkippedFixedSampledPoints
CovariantVector< typename VirtualImageGradientType::ValueType, VirtualImageDimension > VirtualImageComponentGradientType
MovingInterpolatorType::Pointer MovingInterpolatorPointer
virtual void InitializeDefaultMovingImageGradientFilter()
void LocalTransformPoint(const TVirtualPoint &virtualPoint, TFixedImagePoint &mappedFixedPoint) const
PixelTraits< FixedImagePixelType >::ValueType FixedImagePixelValueType
Superclass::DimensionType ImageDimensionType
DefaultFixedImageGradientFilter::Pointer m_DefaultFixedImageGradientFilter
MovingImageGradientFilterPointer m_MovingImageGradientFilter
Computes similarity between regions of two objects.
ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< VirtualImageDimension >, Self >::Pointer m_DenseGetValueAndDerivativeThreader
Superclass::NumberOfParametersType NumberOfParametersType
MetricTraits::FixedImageGradientType FixedImageGradientType
MovingImageType::ConstPointer MovingImageConstPointer
virtual void SetFixedImage(const FixedImageType *_arg)
virtual MeasureType GetValue() const override
Superclass::VirtualDirectionType VirtualDirectionType
MetricTraits::FixedImageGradientFilterType FixedImageGradientFilterType
virtual void Initialize(void) override
void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint, TFixedImagePoint &mappedFixedPoint) const
Superclass::MovingOutputPointType MovingOutputPointType
unsigned long SizeValueType
Definition: itkIntTypes.h:143
DerivativeType::ValueType DerivativeValueType
Superclass::ParametersType ParametersType
LinearInterpolateImageFunction< MovingImageGradientImageType, CoordinateRepresentationType > MovingImageGradientInterpolatorType
TInternalComputationValueType CoordinateRepresentationType
MetricTraits::FixedRealType FixedRealType
Superclass::MovingTransformParametersType MovingTransformParametersType
MetricTraits::DefaultMovingImageGradientFilter DefaultMovingImageGradientFilter
FixedImageGradientFilterType::Pointer FixedImageGradientFilterPointer
FixedImageType::PixelType FixedImagePixelType
MetricTraits::FixedImageGradientImageType FixedImageGradientImageType
SpatialObject< itkGetStaticConstMacro(FixedImageDimension) > FixedImageMaskType
FixedImageType::IndexType FixedImageIndexType
CovariantVector< typename MovingImageGradientType::ValueType, MovingImageDimension > MovingImageComponentGradientType
PixelTraits< MovingImagePixelType >::ValueType MovingImagePixelValueType
MovingImageMaskType::ConstPointer MovingImageMaskConstPointer
Superclass::VirtualPointType VirtualPointType
Superclass::MetricCategoryType MetricCategoryType
NumericTraits< MovingRealType >::ScalarRealType MovingScalarRealType
FixedImageGradientImageType::Pointer FixedImageGradientImagePointer
FixedImageGradientImagePointer m_FixedImageGradientImage
Superclass::VirtualPointSetPointer VirtualPointSetPointer
FixedInterpolatorPointer m_FixedInterpolator
FixedImageGradientCalculatorType::Pointer FixedImageGradientCalculatorPointer
VirtualPointSetPointer m_VirtualSampledPointSet
MovingImageGradientImagePointer m_MovingImageGradientImage
bool TransformAndEvaluateMovingPoint(const VirtualPointType &virtualPoint, MovingImagePointType &mappedMovingPoint, MovingImagePixelType &mappedMovingPixelValue) const
FixedImageMaskType::Pointer FixedImageMaskPointer
virtual void GetValueAndDerivative(MeasureType &value, DerivativeType &derivative) const override
MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
Superclass::DerivativeType DerivativeType
TInternalComputationValueType InternalComputationValueType
Implementation of the composite pattern.
MetricTraits::MovingImageGradientFilterType MovingImageGradientFilterType
Superclass::FixedTransformJacobianType FixedTransformJacobianType
MovingImageGradientInterpolatorType::Pointer m_MovingImageGradientInterpolator
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
Definition: itkPointSet.h:84
FixedSampledPointSetConstPointer m_FixedSampledPointSet
static const DimensionType MovingImageDimension
MovingImageMaskConstPointer m_MovingImageMask
Standard exception handling object.
virtual void InitializeForIteration() const
FixedImageType::Pointer FixedImagePointer
virtual MetricCategoryType GetMetricCategory() const override
Superclass::FixedTransformParametersType FixedTransformParametersType
MovingInterpolatorPointer m_MovingInterpolator
ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType > Superclass
MetricTraits::MovingImageGradientCalculatorType MovingImageGradientCalculatorType
Superclass::MovingTransformPointer MovingTransformPointer
NumericTraits< FixedRealType >::ScalarRealType FixedScalarRealType
InterpolateImageFunction< MovingImageType, CoordinateRepresentationType > MovingInterpolatorType
virtual void SetMovingImage(const MovingImageType *_arg)
FixedImageConstPointer m_FixedImage
Linearly interpolate an image at specified positions.
unsigned int ThreadIdType
Definition: itkIntTypes.h:159
MovingImageType::IndexType MovingImageIndexType
MovingImageType::PixelType MovingImagePixelType
Superclass::MovingInputPointType MovingInputPointType
virtual void ComputeFixedImageGradientAtPoint(const FixedImagePointType &mappedPoint, FixedImageGradientType &gradient) const
InterpolateImageFunction< FixedImageType, CoordinateRepresentationType > FixedInterpolatorType
Base class for all image interpolaters.
void PrintSelf(std::ostream &os, Indent indent) const override
virtual bool SupportsArbitraryVirtualDomainSamples(void) const override
MovingImageType::PointType MovingImagePointType
MetricTraits::VirtualImageGradientType VirtualImageGradientType
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
MovingImageMaskType::Pointer MovingImageMaskPointer
Superclass::FixedOutputPointType FixedOutputPointType
virtual void FinalizeThread(const ThreadIdType)
FixedInterpolatorType::Pointer FixedInterpolatorPointer
DerivativeValueType m_FloatingPointCorrectionResolution
MetricTraits::MovingImageGradientType MovingImageGradientType
FixedSampledPointSetType::Pointer FixedSampledPointSetPointer
Control indentation during Print() invocation.
Definition: itkIndent.h:49
virtual void InitializeDefaultFixedImageGradientFilter()
MovingImageConstPointer m_MovingImage
CovariantVector< typename FixedImageGradientType::ValueType, FixedImageDimension > FixedImageComponentGradientType
FixedImageType::ConstPointer FixedImageConstPointer
virtual void GetDerivative(DerivativeType &) const override
MovingImageType::Pointer MovingImagePointer
FixedImageGradientInterpolatorType::Pointer m_FixedImageGradientInterpolator
MovingImageType::RegionType MovingImageRegionType
virtual SizeValueType GetNumberOfValidPoints() const override
static const DimensionType FixedImageDimension
FixedImageType::PointType FixedImagePointType
MovingImageGradientImageType::Pointer MovingImageGradientImagePointer
static const DimensionType VirtualImageDimension
Base class for most ITK classes.
Definition: itkObject.h:57
#define itkConceptMacro(name, concept)
A templated class holding a n-Dimensional covariant vector.
MetricTraits::MovingImageGradientImageType MovingImageGradientImageType
Superclass::VirtualSizeType VirtualRadiusType
MetricTraits::DefaultFixedImageGradientCalculator DefaultFixedImageGradientCalculator
virtual void GetValueAndDerivativeExecute() const
virtual ThreadIdType GetNumberOfThreadsUsed() const
Superclass::ObjectType ObjectType
Superclass::VirtualSizeType VirtualSizeType
Superclass::FixedInputPointType FixedInputPointType
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator
DefaultMovingImageGradientCalculator::Pointer m_DefaultMovingImageGradientCalculator
MetricTraits::FixedImageGradientCalculatorType FixedImageGradientCalculatorType
FixedImageGradientFilterPointer m_FixedImageGradientFilter
Superclass::VirtualImageType VirtualImageType
Superclass::GradientSourceType GradientSourceType
FixedSampledPointSetType::ConstPointer FixedSampledPointSetConstPointer