ITK  6.0.0
Insight Toolkit
itkImageToImageMetricv4.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
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  * https://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 {
168 template <typename TFixedImage,
169  typename TMovingImage,
170  typename TVirtualImage = TFixedImage,
171  typename TInternalComputationValueType = double,
172  typename TMetricTraits =
173  DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
174 class ITK_TEMPLATE_EXPORT ImageToImageMetricv4
175  : public ObjectToObjectMetric<TFixedImage::ImageDimension,
176  TMovingImage::ImageDimension,
177  TVirtualImage,
178  TInternalComputationValueType>
179 {
180 public:
181  ITK_DISALLOW_COPY_AND_MOVE(ImageToImageMetricv4);
182 
185  using Superclass = ObjectToObjectMetric<TFixedImage::ImageDimension,
186  TMovingImage::ImageDimension,
187  TVirtualImage,
188  TInternalComputationValueType>;
191 
193  itkOverrideGetNameOfClassMacro(ImageToImageMetricv4);
194 
198  using InternalComputationValueType = TInternalComputationValueType;
199 
201  using typename Superclass::CoordinateRepresentationType;
202 
204  using typename Superclass::ParametersType;
205  using typename Superclass::ParametersValueType;
206 
208  using typename Superclass::GradientSourceEnum;
209 
211  using typename Superclass::DimensionType;
212  using ImageDimensionType = typename Superclass::DimensionType;
213 
215  using typename Superclass::FixedTransformType;
216  using typename Superclass::FixedTransformPointer;
217  using typename Superclass::FixedInputPointType;
218  using typename Superclass::FixedOutputPointType;
219  using typename Superclass::FixedTransformParametersType;
220 
221  using typename Superclass::MovingTransformType;
222  using typename Superclass::MovingTransformPointer;
223  using typename Superclass::MovingInputPointType;
224  using typename Superclass::MovingOutputPointType;
225  using typename Superclass::MovingTransformParametersType;
226 
227  using typename Superclass::JacobianType;
228  using typename Superclass::FixedTransformJacobianType;
229  using typename Superclass::MovingTransformJacobianType;
230 
231  using ObjectType = typename Superclass::ObjectType;
232 
234  using FixedImageType = TFixedImage;
235  using FixedImagePixelType = typename FixedImageType::PixelType;
241  using MovingImageType = TMovingImage;
242  using MovingImagePixelType = typename MovingImageType::PixelType;
249 
251  using VirtualImageType = typename Superclass::VirtualImageType;
252  using typename Superclass::VirtualImagePointer;
253  using typename Superclass::VirtualPixelType;
254  using typename Superclass::VirtualRegionType;
255  using typename Superclass::VirtualSizeType;
256  using typename Superclass::VirtualSpacingType;
257  using VirtualOriginType = typename Superclass::VirtualPointType;
258  using typename Superclass::VirtualPointType;
259  using typename Superclass::VirtualDirectionType;
260  using VirtualRadiusType = typename Superclass::VirtualSizeType;
261  using typename Superclass::VirtualIndexType;
262  using typename Superclass::VirtualPointSetType;
263  using typename Superclass::VirtualPointSetPointer;
264 
266  using MetricTraits = TMetricTraits;
267 
268  /* Image dimension accessors */
269  static constexpr DimensionType FixedImageDimension = Superclass::FixedDimension;
270  static constexpr DimensionType MovingImageDimension = Superclass::MovingDimension;
271  static constexpr DimensionType VirtualImageDimension = Superclass::VirtualDimension;
272 
278 
284 
289 
295 
297  using FixedImageGradientType = typename MetricTraits::FixedImageGradientType;
298  using MovingImageGradientType = typename MetricTraits::MovingImageGradientType;
299  using VirtualImageGradientType = typename MetricTraits::VirtualImageGradientType;
300 
303 
306 
309 
313  using FixedRealType = typename MetricTraits::FixedRealType;
314  using MovingRealType = typename MetricTraits::MovingRealType;
315 
318 
319  using FixedGradientPixelType = typename MetricTraits::FixedGradientPixelType;
320  using MovingGradientPixelType = typename MetricTraits::MovingGradientPixelType;
321 
322  using FixedImageGradientImageType = typename MetricTraits::FixedImageGradientImageType;
323  using MovingImageGradientImageType = typename MetricTraits::MovingImageGradientImageType;
324 
327 
328  using FixedImageGradientFilterType = typename MetricTraits::FixedImageGradientFilterType;
329  using MovingImageGradientFilterType = typename MetricTraits::MovingImageGradientFilterType;
330 
333 
334 
336  using DefaultFixedImageGradientFilter = typename MetricTraits::DefaultFixedImageGradientFilter;
337  using DefaultMovingImageGradientFilter = typename MetricTraits::DefaultMovingImageGradientFilter;
338 
341  using FixedImageGradientCalculatorType = typename MetricTraits::FixedImageGradientCalculatorType;
342  using MovingImageGradientCalculatorType = typename MetricTraits::MovingImageGradientCalculatorType;
343 
346 
348  using DefaultFixedImageGradientCalculator = typename MetricTraits::DefaultFixedImageGradientCalculator;
349  using DefaultMovingImageGradientCalculator = typename MetricTraits::DefaultMovingImageGradientCalculator;
350 
352  using typename Superclass::MeasureType;
353 
355  using typename Superclass::DerivativeType;
356  using DerivativeValueType = typename DerivativeType::ValueType;
357 
360  using typename Superclass::NumberOfParametersType;
361 
363  void
364  SetFixedObject(const ObjectType * object) override
365  {
366  auto * image = dynamic_cast<FixedImageType *>(const_cast<ObjectType *>(object));
367  if (image != nullptr)
368  {
369  this->SetFixedImage(image);
370  }
371  else
372  {
373  itkExceptionMacro("Incorrect object type. Should be an image.");
374  }
375  }
379  void
380  SetMovingObject(const ObjectType * object) override
381  {
382  auto * image = dynamic_cast<MovingImageType *>(const_cast<ObjectType *>(object));
383  if (image != nullptr)
384  {
385  this->SetMovingImage(image);
386  }
387  else
388  {
389  itkExceptionMacro("Incorrect object type. Should be an image.");
390  }
391  }
394  /* Get/Set the Fixed Image. */
395  itkSetConstObjectMacro(FixedImage, FixedImageType);
396  itkGetConstObjectMacro(FixedImage, FixedImageType);
397 
399  itkSetConstObjectMacro(MovingImage, MovingImageType);
400  itkGetConstObjectMacro(MovingImage, MovingImageType);
404  itkSetObjectMacro(FixedInterpolator, FixedInterpolatorType);
405 
407  itkGetModifiableObjectMacro(FixedInterpolator, FixedInterpolatorType);
408 
410  itkSetObjectMacro(MovingInterpolator, MovingInterpolatorType);
411 
413  itkGetModifiableObjectMacro(MovingInterpolator, MovingInterpolatorType);
414 
416 #ifndef ITK_FUTURE_LEGACY_REMOVE
417  virtual void
418  SetMovingImageMask(MovingImageMaskType * const arg)
419  {
420  const auto * const constArg = arg;
421  // Call the overload defined by itkSetConstObjectMacro, or an override.
422  this->SetMovingImageMask(constArg);
423  }
424 #endif
425  itkSetConstObjectMacro(MovingImageMask, MovingImageMaskType);
426  itkGetConstObjectMacro(MovingImageMask, MovingImageMaskType);
430 #ifndef ITK_FUTURE_LEGACY_REMOVE
431  virtual void
432  SetFixedImageMask(FixedImageMaskType * const arg)
433  {
434  const auto * const constArg = arg;
435  // Call the overload defined by itkSetConstObjectMacro, or an override.
436  this->SetFixedImageMask(constArg);
437  }
438 #endif
439  itkSetConstObjectMacro(FixedImageMask, FixedImageMaskType);
440  itkGetConstObjectMacro(FixedImageMask, FixedImageMaskType);
446 #ifndef ITK_FUTURE_LEGACY_REMOVE
447  virtual void
448  SetFixedSampledPointSet(FixedSampledPointSetType * const arg)
449  {
450  const auto * const constArg = arg;
451  // Call the overload defined by itkSetConstObjectMacro, or an override.
452  this->SetFixedSampledPointSet(constArg);
453  }
454 #endif
455  itkSetConstObjectMacro(FixedSampledPointSet, FixedSampledPointSetType);
456  itkGetConstObjectMacro(FixedSampledPointSet, FixedSampledPointSetType);
460  itkSetObjectMacro(VirtualSampledPointSet, VirtualPointSetType);
461  itkGetConstObjectMacro(VirtualSampledPointSet, VirtualPointSetType);
465  itkSetMacro(UseSampledPointSet, bool);
466  itkGetConstReferenceMacro(UseSampledPointSet, bool);
467  itkBooleanMacro(UseSampledPointSet);
472  itkSetMacro(UseVirtualSampledPointSet, bool);
473  itkGetConstReferenceMacro(UseVirtualSampledPointSet, bool);
474  itkBooleanMacro(UseVirtualSampledPointSet);
477 #if !defined(ITK_LEGACY_REMOVE)
478 
480  itkLegacyMacro(virtual void SetUseFixedSampledPointSet(bool v))
481  {
482  this->SetUseSampledPointSet(v);
483  }
484  itkLegacyMacro(virtual bool GetUseFixedSampledPointSet() const)
485  {
486  return this->GetUseSampledPointSet();
487  }
488  itkLegacyMacro(virtual void UseFixedSampledPointSetOn())
489  {
490  return this->UseSampledPointSetOn();
491  }
492  itkLegacyMacro(virtual void UseFixedSampledPointSetOff())
493  {
494  return this->UseSampledPointSetOff();
495  }
496 #endif
497 
501  itkSetObjectMacro(FixedImageGradientFilter, FixedImageGradientFilterType);
502  itkGetModifiableObjectMacro(FixedImageGradientFilter, FixedImageGradientFilterType);
503  itkSetObjectMacro(MovingImageGradientFilter, MovingImageGradientFilterType);
504  itkGetModifiableObjectMacro(MovingImageGradientFilter, MovingImageGradientFilterType);
508  itkSetObjectMacro(FixedImageGradientCalculator, FixedImageGradientCalculatorType);
509  itkGetModifiableObjectMacro(FixedImageGradientCalculator, FixedImageGradientCalculatorType);
510  itkSetObjectMacro(MovingImageGradientCalculator, MovingImageGradientCalculatorType);
511  itkGetModifiableObjectMacro(MovingImageGradientCalculator, MovingImageGradientCalculatorType);
516  itkSetMacro(UseFixedImageGradientFilter, bool);
517  itkGetConstReferenceMacro(UseFixedImageGradientFilter, bool);
518  itkBooleanMacro(UseFixedImageGradientFilter);
522  itkSetMacro(UseMovingImageGradientFilter, bool);
523  itkGetConstReferenceMacro(UseMovingImageGradientFilter, bool);
524  itkBooleanMacro(UseMovingImageGradientFilter);
530  virtual ThreadIdType
531  GetNumberOfWorkUnitsUsed() const;
532 
536  virtual void
537  SetMaximumNumberOfWorkUnits(const ThreadIdType number);
538  virtual ThreadIdType
539  GetMaximumNumberOfWorkUnits() const;
542 #if !defined(ITK_LEGACY_REMOVE)
543 
548  itkLegacyMacro(virtual ThreadIdType GetNumberOfThreadsUsed() const)
549  {
550  return this->GetNumberOfWorkUnitsUsed();
551  }
552 
559  itkLegacyMacro(virtual void SetMaximumNumberOfThreads(const ThreadIdType count))
560  {
561  this->SetMaximumNumberOfWorkUnits(count);
562  }
563  itkLegacyMacro(virtual ThreadIdType GetMaximumNumberOfThreads() const)
564  {
565  return this->GetMaximumNumberOfWorkUnits();
566  }
567 #endif // !ITK_LEGACY_REMOVE
568 
578  virtual void
579  FinalizeThread(const ThreadIdType /*threadId*/)
580  { /*Do nothing by default */
581  }
582 
584  itkGetModifiableObjectMacro(FixedImageGradientImage, FixedImageGradientImageType);
585 
587  itkGetModifiableObjectMacro(MovingImageGradientImage, MovingImageGradientImageType);
588 
594  GetNumberOfDomainPoints() const;
595 
609  itkSetMacro(UseFloatingPointCorrection, bool);
610  itkGetConstReferenceMacro(UseFloatingPointCorrection, bool);
611  itkBooleanMacro(UseFloatingPointCorrection);
618  itkSetMacro(FloatingPointCorrectionResolution, DerivativeValueType);
619  itkGetConstMacro(FloatingPointCorrectionResolution, DerivativeValueType);
622  /* Initialize the metric before calling GetValue or GetDerivative.
623  * Derived classes must call this Superclass version if they override
624  * this to perform their own initialization.
625  * \note This is meant to be called once for a particular metric setup.
626  * That is, when used in registration, this method would be called once
627  * before entering the registration loop, during which GetValue or
628  * GetDerivative will be called repeatedly. It must be called again if
629  * metric settings are changed before beginning a new registration. */
630  void
631  Initialize() override;
632 
633  MeasureType
634  GetValue() const override;
635 
636  void
637  GetDerivative(DerivativeType &) const override;
638 
644  void
645  GetValueAndDerivative(MeasureType & value, DerivativeType & derivative) const override;
646 
650  itkGetConstReferenceMacro(NumberOfSkippedFixedSampledPoints, SizeValueType);
651 
652  bool
654  {
655  return true;
656  }
657 
658  using typename Superclass::MetricCategoryType;
659 
661  MetricCategoryType
662  GetMetricCategory() const override
663  {
664  return MetricCategoryType::IMAGE_METRIC;
665  }
666 
667 protected:
668  /* Interpolators for image gradient filters. */
669  using FixedImageGradientInterpolatorType =
673 
675  ThreadedImageRegionPartitioner<VirtualImageDimension>,
681 
682  /* A DenseGetValueAndDerivativeThreader
683  * Derived classes must define this class and assign it in their constructor
684  * if threaded processing in GetValueAndDerivative is performed. */
687  /* A SparseGetValueAndDerivativeThreader
688  * Derived classes must define this class and assign it in their constructor
689  * if threaded processing in GetValueAndDerivative is performed. */
692 
697  virtual void
698  InitializeForIteration() const;
699 
707  bool
708  TransformAndEvaluateFixedPoint(const VirtualPointType & virtualPoint,
709  FixedImagePointType & mappedFixedPoint,
710  FixedImagePixelType & mappedFixedPixelValue) const;
711 
713  bool
714  TransformAndEvaluateMovingPoint(const VirtualPointType & virtualPoint,
715  MovingImagePointType & mappedMovingPoint,
716  MovingImagePixelType & mappedMovingPixelValue) const;
717 
719  virtual void
720  ComputeFixedImageGradientAtPoint(const FixedImagePointType & mappedPoint, FixedImageGradientType & gradient) const;
721 
723  virtual void
724  ComputeMovingImageGradientAtPoint(const MovingImagePointType & mappedPoint, MovingImageGradientType & gradient) const;
725 
729  virtual void
730  ComputeFixedImageGradientFilterImage();
731 
735  virtual void
736  ComputeMovingImageGradientFilterImage() const;
737 
744  virtual void
745  GetValueAndDerivativeExecute() const;
746 
749  virtual void
750  InitializeDefaultFixedImageGradientFilter();
751  virtual void
752  InitializeDefaultMovingImageGradientFilter();
756  itkGetConstMacro(ComputeDerivative, bool);
757 
758  FixedImageConstPointer m_FixedImage{};
759  MovingImageConstPointer m_MovingImage{};
760 
762  FixedInterpolatorPointer m_FixedInterpolator{};
763  MovingInterpolatorPointer m_MovingInterpolator{};
764  typename FixedImageGradientInterpolatorType::Pointer m_FixedImageGradientInterpolator{};
765  typename MovingImageGradientInterpolatorType::Pointer m_MovingImageGradientInterpolator{};
766 
769  bool m_UseFixedImageGradientFilter{};
770  bool m_UseMovingImageGradientFilter{};
771 
773  FixedImageGradientFilterPointer m_FixedImageGradientFilter{};
774  MovingImageGradientFilterPointer m_MovingImageGradientFilter{};
775 
778  typename DefaultFixedImageGradientFilter::Pointer m_DefaultFixedImageGradientFilter{};
779  typename DefaultMovingImageGradientFilter::Pointer m_DefaultMovingImageGradientFilter{};
780 
783  typename DefaultFixedImageGradientCalculator::Pointer m_DefaultFixedImageGradientCalculator{};
784  typename DefaultMovingImageGradientCalculator::Pointer m_DefaultMovingImageGradientCalculator{};
785 
787  mutable FixedImageGradientImagePointer m_FixedImageGradientImage{};
788  mutable MovingImageGradientImagePointer m_MovingImageGradientImage{};
789 
791  FixedImageGradientCalculatorPointer m_FixedImageGradientCalculator{};
792  MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator{};
793 
800  mutable DerivativeType * m_DerivativeResult{};
801 
803  FixedImageMaskConstPointer m_FixedImageMask{};
804  MovingImageMaskConstPointer m_MovingImageMask{};
805 
807  FixedSampledPointSetConstPointer m_FixedSampledPointSet{};
808  VirtualPointSetPointer m_VirtualSampledPointSet{};
809 
811  bool m_UseSampledPointSet{};
812 
815  bool m_UseVirtualSampledPointSet{};
816 
818  ~ImageToImageMetricv4() override = default;
819 
820  void
821  PrintSelf(std::ostream & os, Indent indent) const override;
822 
823 private:
825  void
826  MapFixedSampledPointSetToVirtual();
827 
829  void
831  typename FixedTransformType::OutputPointType & mappedFixedPoint) const
832  {
833  mappedFixedPoint = this->m_FixedTransform->TransformPoint(virtualPoint);
834  }
835  // cast the virtual point
836  template <typename TVirtualPoint>
837  void
838  LocalTransformPoint(const TVirtualPoint & virtualPoint,
839  typename FixedTransformType::OutputPointType & mappedFixedPoint) const
840  {
841  typename FixedTransformType::OutputPointType localVirtualPoint;
844  localVirtualPoint.CastFrom(virtualPoint);
845 
846  mappedFixedPoint = this->m_FixedTransform->TransformPoint(localVirtualPoint);
847  }
848  // cast the mapped Fixed Point
849  template <typename TFixedImagePoint>
850  void
852  TFixedImagePoint & mappedFixedPoint) const
853  {
854  typename FixedTransformType::OutputPointType localMappedFixedPoint;
855  localMappedFixedPoint.CastFrom(mappedFixedPoint);
856  localMappedFixedPoint = this->m_FixedTransform->TransformPoint(virtualPoint);
857  mappedFixedPoint.CastFrom(localMappedFixedPoint);
858  }
859  // cast both mapped and fixed point.
860  template <typename TVirtualPoint, typename TFixedImagePoint>
861  void
862  LocalTransformPoint(const TVirtualPoint & virtualPoint, TFixedImagePoint & mappedFixedPoint) const
863  {
864  typename FixedTransformType::OutputPointType localVirtualPoint;
865  typename FixedTransformType::OutputPointType localMappedFixedPoint;
866 
867  localVirtualPoint.CastFrom(virtualPoint);
868  localMappedFixedPoint.CastFrom(mappedFixedPoint);
869 
870  localMappedFixedPoint = this->m_FixedTransform->TransformPoint(localVirtualPoint);
871  mappedFixedPoint.CastFrom(localMappedFixedPoint);
872  }
873 
876  mutable bool m_HaveMadeGetValueWarning{};
877 
881  SizeValueType m_NumberOfSkippedFixedSampledPoints{};
882 
883  bool m_UseFloatingPointCorrection{};
884  DerivativeValueType m_FloatingPointCorrectionResolution{};
885 
886  MetricTraits m_MetricTraits{};
887 
889  mutable bool m_ComputeDerivative{};
890 
893 #ifdef ITK_USE_CONCEPT_CHECKING
896  itkConceptMacro(OnlyDefinedForFloatingPointTypes0, (itk::Concept::IsFloatingPoint<FixedImagePixelValueType>));
898 #endif // ITK_USE_CONCEPT_CHECKING
899 };
900 } // namespace itk
903 #ifndef ITK_MANUAL_INSTANTIATION
904 # include "itkImageToImageMetricv4.hxx"
905 #endif
906 
907 #endif
itk::ImageToImageMetricv4::m_SparseGetValueAndDerivativeThreader
ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Self >::Pointer m_SparseGetValueAndDerivativeThreader
Definition: itkImageToImageMetricv4.h:691
itk::ImageToImageMetricv4::VirtualRadiusType
typename Superclass::VirtualSizeType VirtualRadiusType
Definition: itkImageToImageMetricv4.h:260
itk::ImageToImageMetricv4::FixedImageMaskConstPointer
typename FixedImageMaskType::ConstPointer FixedImageMaskConstPointer
Definition: itkImageToImageMetricv4.h:277
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
itk::ImageToImageMetricv4::FixedPixelType
FixedImagePixelType FixedPixelType
Definition: itkImageToImageMetricv4.h:236
itkImageFunction.h
itk::ImageToImageMetricv4::MovingRealType
typename MetricTraits::MovingRealType MovingRealType
Definition: itkImageToImageMetricv4.h:314
itk::ImageToImageMetricv4::FixedImageGradientType
typename MetricTraits::FixedImageGradientType FixedImageGradientType
Definition: itkImageToImageMetricv4.h:297
ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkAddImageFilter.h:94
itk::ImageToImageMetricv4::MovingImageGradientCalculatorType
typename MetricTraits::MovingImageGradientCalculatorType MovingImageGradientCalculatorType
Definition: itkImageToImageMetricv4.h:342
itk::ImageToImageMetricv4::InternalComputationValueType
TInternalComputationValueType InternalComputationValueType
Definition: itkImageToImageMetricv4.h:198
itk::ImageToImageMetricv4::ImageDimensionType
typename Superclass::DimensionType ImageDimensionType
Definition: itkImageToImageMetricv4.h:212
itkThreadedIndexedContainerPartitioner.h
itkCovariantVector.h
itk::ImageToImageMetricv4::DefaultFixedImageGradientCalculator
typename MetricTraits::DefaultFixedImageGradientCalculator DefaultFixedImageGradientCalculator
Definition: itkImageToImageMetricv4.h:348
itk::ImageToImageMetricv4::MovingImageGradientFilterType
typename MetricTraits::MovingImageGradientFilterType MovingImageGradientFilterType
Definition: itkImageToImageMetricv4.h:329
itk::PointSet
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
Definition: itkPointSet.h:81
itk::ImageToImageMetricv4::MovingImageIndexType
typename MovingImageType::IndexType MovingImageIndexType
Definition: itkImageToImageMetricv4.h:248
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h:46
itk::ImageToImageMetricv4::DefaultFixedImageGradientFilter
typename MetricTraits::DefaultFixedImageGradientFilter DefaultFixedImageGradientFilter
Definition: itkImageToImageMetricv4.h:336
itk::ImageToImageMetricv4GetValueAndDerivativeThreader
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:44
itk::ImageToImageMetricv4::FixedImageType
TFixedImage FixedImageType
Definition: itkImageToImageMetricv4.h:234
itk::ThreadedImageRegionPartitioner
Class for partitioning of an ImageRegion.
Definition: itkThreadedImageRegionPartitioner.h:45
itk::ImageToImageMetricv4::FixedImageMaskPointer
typename FixedImageMaskType::Pointer FixedImageMaskPointer
Definition: itkImageToImageMetricv4.h:276
itkSpatialObject.h
itk::ImageToImageMetricv4::MovingInterpolatorPointer
typename MovingInterpolatorType::Pointer MovingInterpolatorPointer
Definition: itkImageToImageMetricv4.h:294
itk::ImageToImageMetricv4::FixedSampledPointSetPointer
typename FixedSampledPointSetType::Pointer FixedSampledPointSetPointer
Definition: itkImageToImageMetricv4.h:287
itk::ThreadedIndexedContainerPartitioner
Partitions an indexed container.
Definition: itkThreadedIndexedContainerPartitioner.h:45
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::ImageToImageMetricv4::FixedImageIndexType
typename FixedImageType::IndexType FixedImageIndexType
Definition: itkImageToImageMetricv4.h:240
itk::Point::CastFrom
void CastFrom(const Point< TCoordinateB, VPointDimension > &pa)
Definition: itkPoint.h:269
itk::ImageToImageMetricv4::SetMovingObject
void SetMovingObject(const ObjectType *object) override
Definition: itkImageToImageMetricv4.h:380
itk::ImageToImageMetricv4::MovingImageMaskPointer
typename MovingImageMaskType::Pointer MovingImageMaskPointer
Definition: itkImageToImageMetricv4.h:282
itk::ImageToImageMetricv4::MovingImageRegionType
typename MovingImageType::RegionType MovingImageRegionType
Definition: itkImageToImageMetricv4.h:247
itk::ImageToImageMetricv4::FixedImagePixelValueType
typename PixelTraits< FixedImagePixelType >::ValueType FixedImagePixelValueType
Definition: itkImageToImageMetricv4.h:894
itk::ImageToImageMetricv4::FinalizeThread
virtual void FinalizeThread(const ThreadIdType)
Definition: itkImageToImageMetricv4.h:579
itk::ImageToImageMetricv4::FixedImageGradientFilterType
typename MetricTraits::FixedImageGradientFilterType FixedImageGradientFilterType
Definition: itkImageToImageMetricv4.h:328
itkImageToImageMetricv4GetValueAndDerivativeThreader.h
itk::ImageToImageMetricv4::FixedRealType
typename MetricTraits::FixedRealType FixedRealType
Definition: itkImageToImageMetricv4.h:313
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::ImageToImageMetricv4::LocalTransformPoint
void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint, TFixedImagePoint &mappedFixedPoint) const
Definition: itkImageToImageMetricv4.h:851
itk::ImageToImageMetricv4::DefaultMovingImageGradientCalculator
typename MetricTraits::DefaultMovingImageGradientCalculator DefaultMovingImageGradientCalculator
Definition: itkImageToImageMetricv4.h:349
itk::ImageToImageMetricv4::MovingImageGradientFilterPointer
typename MovingImageGradientFilterType::Pointer MovingImageGradientFilterPointer
Definition: itkImageToImageMetricv4.h:332
itkThreadedImageRegionPartitioner.h
itk::ImageToImageMetricv4::MovingImagePointType
typename MovingImageType::PointType MovingImagePointType
Definition: itkImageToImageMetricv4.h:246
itk::ObjectToObjectMetricBaseTemplate::DerivativeValueType
typename DerivativeType::ValueType DerivativeValueType
Definition: itkObjectToObjectMetricBase.h:113
itk::ImageToImageMetricv4::FixedImagePointType
typename FixedImageType::PointType FixedImagePointType
Definition: itkImageToImageMetricv4.h:239
itk::ImageToImageMetricv4::MovingImagePixelValueType
typename PixelTraits< MovingImagePixelType >::ValueType MovingImagePixelValueType
Definition: itkImageToImageMetricv4.h:895
itk::ThreadIdType
unsigned int ThreadIdType
Definition: itkIntTypes.h:102
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::ImageToImageMetricv4::FixedImageGradientImagePointer
typename FixedImageGradientImageType::Pointer FixedImageGradientImagePointer
Definition: itkImageToImageMetricv4.h:325
itkDefaultConvertPixelTraits.h
itk::ImageToImageMetricv4::MovingPixelType
MovingImagePixelType MovingPixelType
Definition: itkImageToImageMetricv4.h:243
itkObjectToObjectMetric.h
itk::LinearInterpolateImageFunction
Linearly interpolate an image at specified positions.
Definition: itkLinearInterpolateImageFunction.h:51
itk::ImageToImageMetricv4::MetricTraits
TMetricTraits MetricTraits
Definition: itkImageToImageMetricv4.h:266
itkDefaultImageToImageMetricTraitsv4.h
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::ImageToImageMetricv4::MovingImageMaskConstPointer
typename MovingImageMaskType::ConstPointer MovingImageMaskConstPointer
Definition: itkImageToImageMetricv4.h:283
itk::ImageToImageMetricv4::SetFixedObject
void SetFixedObject(const ObjectType *object) override
Definition: itkImageToImageMetricv4.h:364
itk::ImageToImageMetricv4::LocalTransformPoint
void LocalTransformPoint(const TVirtualPoint &virtualPoint, TFixedImagePoint &mappedFixedPoint) const
Definition: itkImageToImageMetricv4.h:862
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::ImageToImageMetricv4::MovingGradientPixelType
typename MetricTraits::MovingGradientPixelType MovingGradientPixelType
Definition: itkImageToImageMetricv4.h:320
itk::ImageToImageMetricv4::MovingImageConstPointer
typename MovingImageType::ConstPointer MovingImageConstPointer
Definition: itkImageToImageMetricv4.h:245
itk::Concept::IsFloatingPoint
Definition: itkConceptChecking.h:953
itk::ImageToImageMetricv4::FixedSampledPointSetConstPointer
typename FixedSampledPointSetType::ConstPointer FixedSampledPointSetConstPointer
Definition: itkImageToImageMetricv4.h:288
itk::SpatialObject
Implementation of the composite pattern.
Definition: itkSpatialObject.h:58
itk::ImageToImageMetricv4::FixedImageGradientCalculatorPointer
typename FixedImageGradientCalculatorType::Pointer FixedImageGradientCalculatorPointer
Definition: itkImageToImageMetricv4.h:344
itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >::VirtualPointType
typename VirtualImageType::PointType VirtualPointType
Definition: itkObjectToObjectMetric.h:145
itk::ImageToImageMetricv4::VirtualImageGradientType
typename MetricTraits::VirtualImageGradientType VirtualImageGradientType
Definition: itkImageToImageMetricv4.h:299
itkImageToImageFilter.h
itk::ImageToImageMetricv4::LocalTransformPoint
void LocalTransformPoint(const TVirtualPoint &virtualPoint, typename FixedTransformType::OutputPointType &mappedFixedPoint) const
Definition: itkImageToImageMetricv4.h:838
itk::ImageToImageMetricv4::FixedScalarRealType
typename NumericTraits< FixedRealType >::ScalarRealType FixedScalarRealType
Definition: itkImageToImageMetricv4.h:316
itk::ImageToImageMetricv4::MovingImageType
TMovingImage MovingImageType
Definition: itkImageToImageMetricv4.h:241
itk::ImageToImageMetricv4::MovingImageGradientImagePointer
typename MovingImageGradientImageType::Pointer MovingImageGradientImagePointer
Definition: itkImageToImageMetricv4.h:326
itk::ImageToImageMetricv4::FixedImageGradientCalculatorType
typename MetricTraits::FixedImageGradientCalculatorType FixedImageGradientCalculatorType
Definition: itkImageToImageMetricv4.h:341
itk::CovariantVector
A templated class holding a n-Dimensional covariant vector.
Definition: itkCovariantVector.h:70
itk::ImageToImageMetricv4::MovingScalarRealType
typename NumericTraits< MovingRealType >::ScalarRealType MovingScalarRealType
Definition: itkImageToImageMetricv4.h:317
itk::ImageToImageMetricv4::FixedImageGradientImageType
typename MetricTraits::FixedImageGradientImageType FixedImageGradientImageType
Definition: itkImageToImageMetricv4.h:322
itk::PixelTraits::ValueType
typename TPixelType::ValueType ValueType
Definition: itkPixelTraits.h:52
itk::ImageToImageMetricv4::MovingImageGradientImageType
typename MetricTraits::MovingImageGradientImageType MovingImageGradientImageType
Definition: itkImageToImageMetricv4.h:323
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:65
itk::NumericTraits::ScalarRealType
RealType ScalarRealType
Definition: itkNumericTraits.h:89
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29
itk::ImageToImageMetricv4::MovingImageGradientType
typename MetricTraits::MovingImageGradientType MovingImageGradientType
Definition: itkImageToImageMetricv4.h:298
itk::ImageToImageMetricv4::GetMetricCategory
MetricCategoryType GetMetricCategory() const override
Definition: itkImageToImageMetricv4.h:662
itk::ImageToImageMetricv4::SupportsArbitraryVirtualDomainSamples
bool SupportsArbitraryVirtualDomainSamples() const override
Definition: itkImageToImageMetricv4.h:653
itk::ImageToImageMetricv4::FixedInterpolatorPointer
typename FixedInterpolatorType::Pointer FixedInterpolatorPointer
Definition: itkImageToImageMetricv4.h:293
itk::ImageToImageMetricv4::FixedImageGradientFilterPointer
typename FixedImageGradientFilterType::Pointer FixedImageGradientFilterPointer
Definition: itkImageToImageMetricv4.h:331
itk::ImageToImageMetricv4::VirtualOriginType
typename Superclass::VirtualPointType VirtualOriginType
Definition: itkImageToImageMetricv4.h:257
itk::ImageToImageMetricv4::LocalTransformPoint
void LocalTransformPoint(const typename FixedTransformType::OutputPointType &virtualPoint, typename FixedTransformType::OutputPointType &mappedFixedPoint) const
Definition: itkImageToImageMetricv4.h:830
itk::ImageToImageMetricv4
Definition: itkImageToImageMetricv4.h:174
itk::Array< TInternalComputationValueType >
itk::Object
Base class for most ITK classes.
Definition: itkObject.h:61
itk::Point
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:53
itk::ObjectToObjectMetric
Computes similarity between regions of two objects.
Definition: itkObjectToObjectMetric.h:92
itkPointSet.h
itk::ImageToImageMetricv4::FixedImagePixelType
typename FixedImageType::PixelType FixedImagePixelType
Definition: itkImageToImageMetricv4.h:235
itkResampleImageFilter.h
itkInterpolateImageFunction.h
itk::ImageToImageMetricv4::MovingImagePixelType
typename MovingImageType::PixelType MovingImagePixelType
Definition: itkImageToImageMetricv4.h:242
itk::ImageToImageMetricv4::DefaultMovingImageGradientFilter
typename MetricTraits::DefaultMovingImageGradientFilter DefaultMovingImageGradientFilter
Definition: itkImageToImageMetricv4.h:337
itk::ImageToImageMetricv4::FixedGradientPixelType
typename MetricTraits::FixedGradientPixelType FixedGradientPixelType
Definition: itkImageToImageMetricv4.h:319
itk::ImageToImageMetricv4::m_DenseGetValueAndDerivativeThreader
ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< VirtualImageDimension >, Self >::Pointer m_DenseGetValueAndDerivativeThreader
Definition: itkImageToImageMetricv4.h:686
itk::ImageToImageMetricv4::MovingImageGradientCalculatorPointer
typename MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
Definition: itkImageToImageMetricv4.h:345
itk::ImageToImageMetricv4::FixedImagePointer
typename FixedImageType::Pointer FixedImagePointer
Definition: itkImageToImageMetricv4.h:237
itk::InterpolateImageFunction
Base class for all image interpolators.
Definition: itkInterpolateImageFunction.h:45
itk::ImageToImageMetricv4::MovingImagePointer
typename MovingImageType::Pointer MovingImagePointer
Definition: itkImageToImageMetricv4.h:244
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:86
itk::ImageToImageMetricv4::VirtualImageType
typename Superclass::VirtualImageType VirtualImageType
Definition: itkImageToImageMetricv4.h:251
itk::ImageToImageMetricv4::FixedImageConstPointer
typename FixedImageType::ConstPointer FixedImageConstPointer
Definition: itkImageToImageMetricv4.h:238