ITK  4.9.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 
489  virtual void FinalizeThread( const ThreadIdType /*threadId*/ ) { /*Do nothing by default */ }
490 
492  itkGetModifiableObjectMacro(FixedImageGradientImage, FixedImageGradientImageType);
493 
495  itkGetModifiableObjectMacro(MovingImageGradientImage, MovingImageGradientImageType);
496 
498  virtual SizeValueType GetNumberOfValidPoints() const ITK_OVERRIDE
499  {
500  return this->m_NumberOfValidPoints;
501  }
502 
508 
522  itkSetMacro(UseFloatingPointCorrection, bool);
523  itkGetConstReferenceMacro(UseFloatingPointCorrection, bool);
524  itkBooleanMacro(UseFloatingPointCorrection);
526 
531  itkSetMacro( FloatingPointCorrectionResolution, DerivativeValueType );
532  itkGetConstMacro( FloatingPointCorrectionResolution, DerivativeValueType );
534 
535  /* Initialize the metric before calling GetValue or GetDerivative.
536  * Derived classes must call this Superclass version if they override
537  * this to perform their own initialization.
538  * \note This is meant to be called once for a particular metric setup.
539  * That is, when used in registration, this method would be called once
540  * before entering the registration loop, during which GetValue or
541  * GetDerivative will be called repeatedly. It must be called again if
542  * metric settings are changed before beginning a new registration. */
543  virtual void Initialize(void) throw ( itk::ExceptionObject ) ITK_OVERRIDE;
544 
545  virtual MeasureType GetValue() const ITK_OVERRIDE;
546 
547  virtual void GetDerivative( DerivativeType & ) const ITK_OVERRIDE;
548 
554  virtual void GetValueAndDerivative( MeasureType & value, DerivativeType & derivative ) const ITK_OVERRIDE;
555 
559  itkGetConstReferenceMacro(NumberOfSkippedFixedSampledPoints, SizeValueType);
560 
561  virtual bool SupportsArbitraryVirtualDomainSamples( void ) const ITK_OVERRIDE
562  {
563  return true;
564  }
565 
567 
569  virtual MetricCategoryType GetMetricCategory() const ITK_OVERRIDE
570  {
572  }
573 
574 protected:
575  /* Interpolators for image gradient filters. */
582 
587 
588  /* A DenseGetValueAndDerivativeThreader
589  * Derived classes must define this class and assign it in their constructor
590  * if threaded processing in GetValueAndDerivative is performed. */
592  /* A SparseGetValueAndDerivativeThreader
593  * Derived classes must define this class and assign it in their constructor
594  * if threaded processing in GetValueAndDerivative is performed. */
596 
601  virtual void InitializeForIteration() const;
602 
611  const VirtualPointType & virtualPoint,
612  FixedImagePointType & mappedFixedPoint,
613  FixedImagePixelType & mappedFixedPixelValue ) const;
614 
617  const VirtualPointType & virtualPoint,
618  MovingImagePointType & mappedMovingPoint,
619  MovingImagePixelType & mappedMovingPixelValue ) const;
620 
622  virtual void ComputeFixedImageGradientAtPoint( const FixedImagePointType & mappedPoint, FixedImageGradientType & gradient ) const;
623 
625  virtual void ComputeMovingImageGradientAtPoint( const MovingImagePointType & mappedPoint, MovingImageGradientType & gradient ) const;
626 
631 
635  virtual void ComputeMovingImageGradientFilterImage() const;
636 
643  virtual void GetValueAndDerivativeExecute() const;
644 
650 
652  itkGetConstMacro( ComputeDerivative, bool );
653 
656 
662 
667 
671 
674  typename DefaultFixedImageGradientFilter::Pointer
676  typename DefaultMovingImageGradientFilter::Pointer
678 
681  typename DefaultFixedImageGradientCalculator::Pointer
683  typename DefaultMovingImageGradientCalculator::Pointer
685 
689 
693 
701 
705 
709 
712 
714  virtual ~ImageToImageMetricv4();
715 
716  void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
717 
718 private:
721 
723  void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint,
724  typename FixedTransformType::OutputPointType &mappedFixedPoint) const
725  {
726  mappedFixedPoint = this->m_FixedTransform->TransformPoint(virtualPoint);
727  }
728  // cast the virtual point
729  template <typename TVirtualPoint>
730  void LocalTransformPoint(const TVirtualPoint &virtualPoint,
731  typename FixedTransformType::OutputPointType &mappedFixedPoint) const
732  {
733  typename FixedTransformType::OutputPointType localVirtualPoint;
735 
736  localVirtualPoint.CastFrom(virtualPoint);
737 
738  mappedFixedPoint = this->m_FixedTransform->TransformPoint( localVirtualPoint );
739  }
740  // cast the mapped Fixed Point
741  template <typename TFixedImagePoint>
742  void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint,
743  TFixedImagePoint &mappedFixedPoint) const
744  {
745  typename FixedTransformType::OutputPointType localMappedFixedPoint;
746  localMappedFixedPoint.CastFrom(mappedFixedPoint);
747  localMappedFixedPoint = this->m_FixedTransform->TransformPoint( virtualPoint );
748  mappedFixedPoint.CastFrom(localMappedFixedPoint);
749  }
750  // cast both mapped and fixed point.
751  template <typename TVirtualPoint,typename TFixedImagePoint>
752  void LocalTransformPoint(const TVirtualPoint &virtualPoint,
753  TFixedImagePoint &mappedFixedPoint) const
754  {
755  typename FixedTransformType::OutputPointType localVirtualPoint;
756  typename FixedTransformType::OutputPointType localMappedFixedPoint;
757 
758  localVirtualPoint.CastFrom(virtualPoint);
759  localMappedFixedPoint.CastFrom(mappedFixedPoint);
760 
761  localMappedFixedPoint = this->m_FixedTransform->TransformPoint( localVirtualPoint );
762  mappedFixedPoint.CastFrom(localMappedFixedPoint);
763  }
764 
768 
769  ImageToImageMetricv4(const Self &) ITK_DELETE_FUNCTION;
770  void operator=(const Self &) ITK_DELETE_FUNCTION;
771 
776 
779 
781 
783  mutable bool m_ComputeDerivative;
784 
787  #ifdef ITK_USE_CONCEPT_CHECKING
790  itkConceptMacro( OnlyDefinedForFloatingPointTypes0, ( itk::Concept::IsFloatingPoint<FixedImagePixelValueType> ) );
791  itkConceptMacro( OnlyDefinedForFloatingPointTypes1, ( itk::Concept::IsFloatingPoint<MovingImagePixelValueType> ) );
792  #endif // ITK_USE_CONCEPT_CHECKING
793 
794 
795 };
796 }//namespace itk
797 
798 #ifndef ITK_MANUAL_INSTANTIATION
799 #include "itkImageToImageMetricv4.hxx"
800 #endif
801 
802 #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
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
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