ITK  5.2.0
Insight Toolkit
itkImageToImageMetric.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  * 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 itkImageToImageMetric_h
19 #define itkImageToImageMetric_h
20 
25 #include "itkSpatialObject.h"
27 #include "itkMultiThreaderBase.h"
28 
29 namespace itk
30 {
51 template <typename TFixedImage, typename TMovingImage>
52 class ITK_TEMPLATE_EXPORT ImageToImageMetric : public SingleValuedCostFunction
53 {
54 public:
55  ITK_DISALLOW_COPY_AND_MOVE(ImageToImageMetric);
56 
62 
64  using CoordinateRepresentationType = typename Superclass::ParametersValueType;
65 
68 
70  using MovingImageType = TMovingImage;
71  using MovingImagePixelType = typename TMovingImage::PixelType;
72  using MovingImageConstPointer = typename MovingImageType::ConstPointer;
73 
75  using FixedImageType = TFixedImage;
76  using FixedImagePixelType = typename TFixedImage::PixelType;
77  using FixedImageConstPointer = typename FixedImageType::ConstPointer;
79 
81  static constexpr unsigned int MovingImageDimension = TMovingImage::ImageDimension;
82  static constexpr unsigned int FixedImageDimension = TFixedImage::ImageDimension;
83 
86 
92 
99 
100  using FixedImageIndexContainer = std::vector<FixedImageIndexType>;
101 
104 
112 
114 
120 
126 
128  using MeasureType = typename Superclass::MeasureType;
129 
131  using DerivativeType = typename Superclass::DerivativeType;
132 
134  using ParametersType = typename Superclass::ParametersType;
135 
137  itkSetConstObjectMacro(FixedImage, FixedImageType);
138  itkGetConstObjectMacro(FixedImage, FixedImageType);
140 
142  itkSetConstObjectMacro(MovingImage, MovingImageType);
143  itkGetConstObjectMacro(MovingImage, MovingImageType);
145 
147  itkSetObjectMacro(Transform, TransformType);
148 
150  itkGetModifiableObjectMacro(Transform, TransformType);
151 
153  itkSetObjectMacro(Interpolator, InterpolatorType);
154 
156  itkGetModifiableObjectMacro(Interpolator, InterpolatorType);
157 
161  {
162  return this->GetNumberOfPixelsCounted();
163  }
164 
165  itkGetConstReferenceMacro(NumberOfPixelsCounted, SizeValueType);
166 
168  virtual void
169  SetFixedImageRegion(const FixedImageRegionType reg);
170 
172  itkGetConstReferenceMacro(FixedImageRegion, FixedImageRegionType);
173 
175  itkSetObjectMacro(MovingImageMask, MovingImageMaskType);
176  itkSetConstObjectMacro(MovingImageMask, MovingImageMaskType);
177  itkGetConstObjectMacro(MovingImageMask, MovingImageMaskType);
179 
181  itkSetObjectMacro(FixedImageMask, FixedImageMaskType);
182  itkSetConstObjectMacro(FixedImageMask, FixedImageMaskType);
183  itkGetConstObjectMacro(FixedImageMask, FixedImageMaskType);
185 
188  void
189  SetFixedImageIndexes(const FixedImageIndexContainer & indexes);
190 
191  void
192  SetUseFixedImageIndexes(bool useIndexes);
193 
194  itkGetConstReferenceMacro(UseFixedImageIndexes, bool);
195 
197  void
198  SetNumberOfWorkUnits(ThreadIdType numberOfThreads);
199  itkGetConstReferenceMacro(NumberOfWorkUnits, ThreadIdType);
201 
203  itkSetMacro(ComputeGradient, bool);
204  itkGetConstReferenceMacro(ComputeGradient, bool);
205  itkBooleanMacro(ComputeGradient);
207 
209  virtual void
210  ComputeGradient();
211 
213  itkGetModifiableObjectMacro(GradientImage, GradientImageType);
214 
216  void
217  SetTransformParameters(const ParametersType & parameters) const;
218 
220  unsigned int
221  GetNumberOfParameters() const override
222  {
223  return m_Transform->GetNumberOfParameters();
224  }
225 
228  virtual void
229  Initialize();
230 
232  virtual void
233  MultiThreadingInitialize();
234 
237  virtual void
238  SetNumberOfFixedImageSamples(SizeValueType numSamples);
239  itkGetConstReferenceMacro(NumberOfFixedImageSamples, SizeValueType);
241 
244  void
246  {
247  this->SetNumberOfFixedImageSamples(num);
248  }
249 
252  {
253  return this->GetNumberOfFixedImageSamples();
254  }
255 
258  void
259  SetFixedImageSamplesIntensityThreshold(const FixedImagePixelType & thresh);
260 
261  itkGetConstReferenceMacro(FixedImageSamplesIntensityThreshold, FixedImagePixelType);
262 
263  void
264  SetUseFixedImageSamplesIntensityThreshold(bool useThresh);
265 
266  itkGetConstReferenceMacro(UseFixedImageSamplesIntensityThreshold, bool);
267 
271  void
272  SetUseAllPixels(bool useAllPixels);
273 
274  void
276  {
277  this->SetUseAllPixels(true);
278  }
279 
280  void
282  {
283  this->SetUseAllPixels(false);
284  }
285 
286  itkGetConstReferenceMacro(UseAllPixels, bool);
287 
292  void
293  SetUseSequentialSampling(bool useSequential);
294 
295  itkGetConstReferenceMacro(UseSequentialSampling, bool);
296 
306  void
307  ReinitializeSeed();
308  void
309  ReinitializeSeed(int seed);
311 
328  itkSetMacro(UseCachingOfBSplineWeights, bool);
329  itkGetConstReferenceMacro(UseCachingOfBSplineWeights, bool);
330  itkBooleanMacro(UseCachingOfBSplineWeights);
332 
335  itkGetModifiableObjectMacro(Threader, MultiThreaderType);
336  const TransformPointer *
338  {
339  return m_ThreaderTransform;
340  }
342 
343 protected:
345  ~ImageToImageMetric() override;
346 
347  void
348  PrintSelf(std::ostream & os, Indent indent) const override;
349 
356  {
357  public:
359  {
360  point.Fill(0.0);
361  value = 0;
362  valueIndex = 0;
363  }
364 
365  ~FixedImageSamplePoint() = default;
366 
367  public:
369  double value;
370  unsigned int valueIndex;
371  };
372 
373  bool m_UseFixedImageIndexes{ false };
375 
376  bool m_UseFixedImageSamplesIntensityThreshold{ false };
378 
380  using FixedImageSampleContainer = std::vector<FixedImageSamplePoint>;
381 
383  virtual void
384  SampleFixedImageRegion(FixedImageSampleContainer & samples) const;
385 
386  virtual void
387  SampleFixedImageIndexes(FixedImageSampleContainer & samples) const;
388 
390  virtual void
391  SampleFullFixedImageRegion(FixedImageSampleContainer & samples) const;
392 
395 
396  SizeValueType m_NumberOfParameters{ 0 };
397 
398  SizeValueType m_NumberOfFixedImageSamples{ 50000 };
399  // m_NumberOfPixelsCounted must be mutable because the const
400  // thread consolidation functions merge each work unit's values
401  // onto this accumulator variable.
402  mutable SizeValueType m_NumberOfPixelsCounted{ 0 };
403 
406 
409 
413 
415 
416  bool m_ComputeGradient{ true };
418 
421 
422  ThreadIdType m_NumberOfWorkUnits{ 1 };
423 
424  bool m_UseAllPixels{ false };
425  bool m_UseSequentialSampling{ false };
426 
427  bool m_ReseedIterator{ false };
428 
429  mutable int m_RandomSeed;
430 
438  bool m_TransformIsBSpline{ false };
439 
442  SizeValueType m_NumBSplineWeights{ 0 };
443 
444  static constexpr unsigned int DeformationSplineOrder = 3;
445 
446  using BSplineTransformType =
448 
450  using WeightsValueType = typename BSplineTransformWeightsType::ValueType;
452 
454  using IndexValueType = typename BSplineTransformIndexArrayType::ValueType;
456 
457  using MovingImagePointArrayType = std::vector<MovingImagePointType>;
458  using BooleanArrayType = std::vector<bool>;
466 
470 
472 
477 
479 
480  // Variables needed for optionally caching values when using a BSpline
481  // transform.
482  bool m_UseCachingOfBSplineWeights{ true };
485 
488 
489  virtual void
490  PreComputeTransformValues();
491 
494  virtual void
495  TransformPoint(unsigned int sampleNumber,
496  MovingImagePointType & mappedPoint,
497  bool & sampleOk,
498  double & movingImageValue,
499  ThreadIdType threadId) const;
500 
501  virtual void
502  TransformPointWithDerivatives(unsigned int sampleNumber,
503  MovingImagePointType & mappedPoint,
504  bool & sampleOk,
505  double & movingImageValue,
506  ImageDerivativesType & movingImageGradient,
507  ThreadIdType threadId) const;
508 
510  bool m_InterpolatorIsBSpline{ false };
511 
514 
517 
519  virtual void
520  ComputeImageDerivatives(const MovingImagePointType & mappedPoint,
521  ImageDerivativesType & gradient,
522  ThreadIdType threadId) const;
523 
537  {
538  public:
540  : m_ConstMetricPointer{ i2i_metricPointer }
541  {}
542  const ImageToImageMetric *
544  {
545  return m_ConstMetricPointer;
546  }
548 
549  private:
551  };
552 
561  {
562  public:
563  MultiThreaderWorkUnitInfoImageToImageMetricWrapper(const void * workunitInfoAsVoid)
564  : m_WorkUnitInfo(static_cast<const typename MultiThreaderType::WorkUnitInfo *>(workunitInfoAsVoid))
565  {}
567  GetThreadId() const
568  {
569  return m_WorkUnitInfo->WorkUnitID;
570  }
571  const ImageToImageMetric *
573  {
574  return (static_cast<ConstantPointerWrapper *>(m_WorkUnitInfo->UserData))->GetConstMetricPointer();
575  }
577 
578  private:
580  };
581 
584  mutable unsigned int * m_ThreaderNumberOfMovingImageSamples{ nullptr };
585  bool m_WithinThreadPreProcess{ false };
586  bool m_WithinThreadPostProcess{ false };
587 
588  void
589  GetValueMultiThreadedInitiate() const;
590 
591  void
592  GetValueMultiThreadedPostProcessInitiate() const;
593 
595  GetValueMultiThreaded(void * workunitInfoAsVoid);
596 
598  GetValueMultiThreadedPostProcess(void * workunitInfoAsVoid);
599 
600  virtual inline void
601  GetValueThread(ThreadIdType threadId) const;
602 
603  virtual inline void
604  GetValueThreadPreProcess(ThreadIdType itkNotUsed(threadId), bool itkNotUsed(withinSampleThread)) const
605  {}
606  virtual inline bool
608  SizeValueType itkNotUsed(fixedImageSample),
609  const MovingImagePointType & itkNotUsed(mappedPoint),
610  double itkNotUsed(movingImageValue)) const
611  {
612  return false;
613  }
614  virtual inline void
615  GetValueThreadPostProcess(ThreadIdType itkNotUsed(threadId), bool itkNotUsed(withinSampleThread)) const
616  {}
617 
618  void
619  GetValueAndDerivativeMultiThreadedInitiate() const;
620 
621  void
622  GetValueAndDerivativeMultiThreadedPostProcessInitiate() const;
623 
625  GetValueAndDerivativeMultiThreaded(void * workunitInfoAsVoid);
626 
628  GetValueAndDerivativeMultiThreadedPostProcess(void * workunitInfoAsVoid);
629 
630  virtual inline void
631  GetValueAndDerivativeThread(ThreadIdType threadId) const;
632 
633  virtual inline void
634  GetValueAndDerivativeThreadPreProcess(ThreadIdType itkNotUsed(threadId), bool itkNotUsed(withinSampleThread)) const
635  {}
636  virtual inline bool
638  SizeValueType itkNotUsed(fixedImageSample),
639  const MovingImagePointType & itkNotUsed(mappedPoint),
640  double itkNotUsed(movingImageValue),
641  const ImageDerivativesType & itkNotUsed(movingImageGradientValue)) const
642  {
643  return false;
644  }
645  virtual inline void
646  GetValueAndDerivativeThreadPostProcess(ThreadIdType itkNotUsed(threadId), bool itkNotUsed(withinSampleThread)) const
647  {}
648 
652  virtual void
653  SynchronizeTransforms() const;
654 
655 private:
657 };
658 } // end namespace itk
659 
660 #ifndef ITK_MANUAL_INSTANTIATION
661 # include "itkImageToImageMetric.hxx"
662 #endif
663 
664 #endif
itk::ImageToImageMetric::m_DerivativeCalculator
DerivativeFunctionType::Pointer m_DerivativeCalculator
Definition: itkImageToImageMetric.h:516
itk::ImageToImageMetric::FixedImageConstPointer
typename FixedImageType::ConstPointer FixedImageConstPointer
Definition: itkImageToImageMetric.h:77
itk::MultiThreaderBase
A class for performing multithreaded execution.
Definition: itkMultiThreaderBase.h:105
itk::ImageToImageMetric
Computes similarity between regions of two images.
Definition: itkImageToImageMetric.h:52
itk::ImageToImageMetric::m_ThreaderTransform
TransformPointer * m_ThreaderTransform
Definition: itkImageToImageMetric.h:412
itk::ImageToImageMetric::MultiThreaderWorkUnitInfoImageToImageMetricWrapper::m_WorkUnitInfo
const MultiThreaderType::WorkUnitInfo * m_WorkUnitInfo
Definition: itkImageToImageMetric.h:579
itk::ImageToImageMetric::MovingImageMaskConstPointer
typename MovingImageMaskType::ConstPointer MovingImageMaskConstPointer
Definition: itkImageToImageMetric.h:125
itk::SingleValuedCostFunction::MeasureType
double MeasureType
Definition: itkSingleValuedCostFunction.h:50
itk::OptimizerParameters< TInternalComputationValueType >
itk::ImageToImageMetric::WeightsValueType
typename BSplineTransformWeightsType::ValueType WeightsValueType
Definition: itkImageToImageMetric.h:450
itk::ImageToImageMetric::MovingImageIndexType
typename MovingImageType::IndexType MovingImageIndexType
Definition: itkImageToImageMetric.h:96
itk::ImageToImageMetric::m_MovingImageMask
MovingImageMaskConstPointer m_MovingImageMask
Definition: itkImageToImageMetric.h:420
itk::ImageToImageMetric::MovingImagePointArrayType
std::vector< MovingImagePointType > MovingImagePointArrayType
Definition: itkImageToImageMetric.h:457
itk::ImageToImageMetric::GetValueAndDerivativeThreadPreProcess
virtual void GetValueAndDerivativeThreadPreProcess(ThreadIdType, bool) const
Definition: itkImageToImageMetric.h:634
itk::ImageToImageMetric::FixedImageSamplePoint::valueIndex
unsigned int valueIndex
Definition: itkImageToImageMetric.h:370
itk::ImageToImageMetric::m_BSplineTransform
BSplineTransformType::Pointer m_BSplineTransform
Definition: itkImageToImageMetric.h:471
itk::ImageToImageMetric::GetValueAndDerivativeThreadPostProcess
virtual void GetValueAndDerivativeThreadPostProcess(ThreadIdType, bool) const
Definition: itkImageToImageMetric.h:646
itk::MultiThreaderBase::WorkUnitInfo
Definition: itkMultiThreaderBase.h:290
itk::ImageToImageMetric::FixedImagePointType
typename TransformType::InputPointType FixedImagePointType
Definition: itkImageToImageMetric.h:97
itk::ImageToImageMetric::GetNumberOfMovingImageSamples
SizeValueType GetNumberOfMovingImageSamples()
Definition: itkImageToImageMetric.h:160
itk::ImageToImageMetric::FixedImageIndexValueType
typename FixedImageIndexType::IndexValueType FixedImageIndexValueType
Definition: itkImageToImageMetric.h:95
itk::ImageToImageMetric::MultiThreaderWorkUnitInfoImageToImageMetricWrapper::MultiThreaderWorkUnitInfoImageToImageMetricWrapper
MultiThreaderWorkUnitInfoImageToImageMetricWrapper(const void *workunitInfoAsVoid)
Definition: itkImageToImageMetric.h:563
itk::ImageToImageMetric::m_MovingImage
MovingImageConstPointer m_MovingImage
Definition: itkImageToImageMetric.h:405
itk::BSplineInterpolateImageFunction
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
Definition: itkBSplineInterpolateImageFunction.h:82
itk::ImageToImageMetric::TransformParametersType
typename TransformType::ParametersType TransformParametersType
Definition: itkImageToImageMetric.h:90
itk::ImageToImageMetric::ConstantPointerWrapper::ConstantPointerWrapper
ConstantPointerWrapper(ImageToImageMetric *i2i_metricPointer)
Definition: itkImageToImageMetric.h:539
itkSpatialObject.h
itk::ImageToImageMetric::GetValueThreadProcessSample
virtual bool GetValueThreadProcessSample(ThreadIdType, SizeValueType, const MovingImagePointType &, double) const
Definition: itkImageToImageMetric.h:607
itk::ImageToImageMetric::GetNumberOfParameters
unsigned int GetNumberOfParameters() const override
Definition: itkImageToImageMetric.h:221
itk::BSplineBaseTransform::WeightsType
typename WeightsFunctionType::WeightsType WeightsType
Definition: itkBSplineBaseTransform.h:235
itk::ImageToImageMetric::FixedImageIndexContainer
std::vector< FixedImageIndexType > FixedImageIndexContainer
Definition: itkImageToImageMetric.h:100
itk::ImageToImageMetric::RealType
typename NumericTraits< MovingImagePixelType >::RealType RealType
Definition: itkImageToImageMetric.h:106
itk::ImageToImageMetric::TransformJacobianType
typename TransformType::JacobianType TransformJacobianType
Definition: itkImageToImageMetric.h:91
itk::ImageToImageMetric::m_FixedImageMask
FixedImageMaskConstPointer m_FixedImageMask
Definition: itkImageToImageMetric.h:419
itk::ImageToImageMetric::UseAllPixelsOff
void UseAllPixelsOff()
Definition: itkImageToImageMetric.h:281
itk::ImageToImageMetric::m_Threader
MultiThreaderType::Pointer m_Threader
Definition: itkImageToImageMetric.h:582
itk::ImageToImageMetric::ConstantPointerWrapper
Definition: itkImageToImageMetric.h:536
itk::CentralDifferenceImageFunction
Calculate the derivative by central differencing.
Definition: itkCentralDifferenceImageFunction.h:76
itk::ImageToImageMetric::m_FixedImageSamplesIntensityThreshold
FixedImagePixelType m_FixedImageSamplesIntensityThreshold
Definition: itkImageToImageMetric.h:377
itk::ImageToImageMetric::MovingImagePointType
typename TransformType::OutputPointType MovingImagePointType
Definition: itkImageToImageMetric.h:98
itk::ImageToImageMetric::m_BSplineTransformIndices
BSplineTransformIndexArrayType m_BSplineTransformIndices
Definition: itkImageToImageMetric.h:484
Threader
itk::ImageToImageMetric::FixedImageType
TFixedImage FixedImageType
Definition: itkImageToImageMetric.h:75
itk::ImageToImageMetric::OutputPointType
typename TransformType::OutputPointType OutputPointType
Definition: itkImageToImageMetric.h:89
itk::ImageToImageMetric::m_ThreaderBSplineTransformWeights
BSplineTransformWeightsType * m_ThreaderBSplineTransformWeights
Definition: itkImageToImageMetric.h:486
itk::ImageToImageMetric::m_ThreaderBSplineTransformIndices
BSplineTransformIndexArrayType * m_ThreaderBSplineTransformIndices
Definition: itkImageToImageMetric.h:487
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::ImageToImageMetric::m_FixedImageIndexes
FixedImageIndexContainer m_FixedImageIndexes
Definition: itkImageToImageMetric.h:374
itk::ImageToImageMetric::IndexValueType
typename BSplineTransformIndexArrayType::ValueType IndexValueType
Definition: itkImageToImageMetric.h:454
itk::ImageToImageMetric::m_FixedImage
FixedImageConstPointer m_FixedImage
Definition: itkImageToImageMetric.h:404
itk::ImageToImageMetric::InputPointType
typename TransformType::InputPointType InputPointType
Definition: itkImageToImageMetric.h:88
itk::ImageToImageMetric::GetValueAndDerivativeThreadProcessSample
virtual bool GetValueAndDerivativeThreadProcessSample(ThreadIdType, SizeValueType, const MovingImagePointType &, double, const ImageDerivativesType &) const
Definition: itkImageToImageMetric.h:637
itk::ImageToImageMetric::FixedImageMaskPointer
typename FixedImageMaskType::Pointer FixedImageMaskPointer
Definition: itkImageToImageMetric.h:118
itk::ImageToImageMetric::m_RandomSeed
int m_RandomSeed
Definition: itkImageToImageMetric.h:429
itk::ImageToImageMetric::m_WithinBSplineSupportRegionArray
BooleanArrayType m_WithinBSplineSupportRegionArray
Definition: itkImageToImageMetric.h:476
itk::ImageToImageMetric::BooleanArrayType
std::vector< bool > BooleanArrayType
Definition: itkImageToImageMetric.h:458
itk::ThreadIdType
unsigned int ThreadIdType
Definition: itkIntTypes.h:99
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itkBSplineInterpolateImageFunction.h
itkGradientRecursiveGaussianImageFilter.h
itk::ImageToImageMetric::GetValueThreadPreProcess
virtual void GetValueThreadPreProcess(ThreadIdType, bool) const
Definition: itkImageToImageMetric.h:604
itk::ImageToImageMetric::m_FixedImageSamples
FixedImageSampleContainer m_FixedImageSamples
Definition: itkImageToImageMetric.h:394
itk::ImageToImageMetric::m_FixedImageRegion
FixedImageRegionType m_FixedImageRegion
Definition: itkImageToImageMetric.h:656
itk::ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
itk::ITK_THREAD_RETURN_TYPE ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
Definition: itkThreadSupport.h:82
itk::ImageToImageMetric::m_BSplineTransformWeights
BSplineTransformWeightsType m_BSplineTransformWeights
Definition: itkImageToImageMetric.h:483
itk::ImageToImageMetric::FixedImageSamplePoint::FixedImageSamplePoint
FixedImageSamplePoint()
Definition: itkImageToImageMetric.h:358
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:59
itk::ImageToImageMetric::m_GradientImage
GradientImagePointer m_GradientImage
Definition: itkImageToImageMetric.h:417
itkCentralDifferenceImageFunction.h
itk::ImageToImageMetric::MovingImageConstPointer
typename MovingImageType::ConstPointer MovingImageConstPointer
Definition: itkImageToImageMetric.h:72
itk::ImageToImageMetric::SetNumberOfSpatialSamples
void SetNumberOfSpatialSamples(SizeValueType num)
Definition: itkImageToImageMetric.h:245
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::ImageToImageMetric::m_BSplineTransformIndicesArray
BSplineTransformIndicesArrayType m_BSplineTransformIndicesArray
Definition: itkImageToImageMetric.h:474
itk::ImageToImageMetric::m_BSplinePreTransformPointsArray
MovingImagePointArrayType m_BSplinePreTransformPointsArray
Definition: itkImageToImageMetric.h:475
itk::ImageToImageMetric::m_ConstSelfWrapper
ConstantPointerWrapper * m_ConstSelfWrapper
Definition: itkImageToImageMetric.h:583
itk::GradientRecursiveGaussianImageFilter
Computes the gradient of an image by convolution with the first derivative of a Gaussian.
Definition: itkGradientRecursiveGaussianImageFilter.h:59
itk::SingleValuedCostFunction
This class is a base for the CostFunctions returning a single value.
Definition: itkSingleValuedCostFunction.h:34
itk::ImageToImageMetric::FixedImageMaskConstPointer
typename FixedImageMaskType::ConstPointer FixedImageMaskConstPointer
Definition: itkImageToImageMetric.h:119
itk::ImageToImageMetric::FixedImagePixelType
typename TFixedImage::PixelType FixedImagePixelType
Definition: itkImageToImageMetric.h:76
itk::ImageToImageMetric::FixedImageSamplePoint::point
FixedImagePointType point
Definition: itkImageToImageMetric.h:368
itk::SpatialObject
Implementation of the composite pattern.
Definition: itkSpatialObject.h:57
itk::ImageToImageMetric::GetThreaderTransform
const TransformPointer * GetThreaderTransform()
Definition: itkImageToImageMetric.h:337
itk::ImageToImageMetric::MultiThreaderWorkUnitInfoImageToImageMetricWrapper
Definition: itkImageToImageMetric.h:560
itk::ImageToImageMetric::FixedImageSampleContainer
std::vector< FixedImageSamplePoint > FixedImageSampleContainer
Definition: itkImageToImageMetric.h:380
itk::FixedArray< SizeValueType, FixedImageType::ImageDimension >
itk::ImageToImageMetric::UseAllPixelsOn
void UseAllPixelsOn()
Definition: itkImageToImageMetric.h:275
itk::ImageToImageMetric::MovingImagePixelType
typename TMovingImage::PixelType MovingImagePixelType
Definition: itkImageToImageMetric.h:71
itk::CovariantVector
A templated class holding a n-Dimensional covariant vector.
Definition: itkCovariantVector.h:70
itk::ImageToImageMetric::MultiThreaderWorkUnitInfoImageToImageMetricWrapper::GetThreadId
ThreadIdType GetThreadId() const
Definition: itkImageToImageMetric.h:567
itk::ImageToImageMetric::TransformPointer
typename TransformType::Pointer TransformPointer
Definition: itkImageToImageMetric.h:87
itk::ImageToImageMetric::ConstantPointerWrapper::m_ConstMetricPointer
const ImageToImageMetric * m_ConstMetricPointer
Definition: itkImageToImageMetric.h:550
itk::ImageToImageMetric::m_Transform
TransformPointer m_Transform
Definition: itkImageToImageMetric.h:408
itk::ImageToImageMetric::FixedImageSamplePoint
Definition: itkImageToImageMetric.h:355
itk::Transform::ParametersType
typename Superclass::ParametersType ParametersType
Definition: itkTransform.h:121
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::ImageToImageMetric::MovingImageType
TMovingImage MovingImageType
Definition: itkImageToImageMetric.h:70
itkMultiThreaderBase.h
itk::ImageToImageMetric::FixedImageSamplePoint::value
double value
Definition: itkImageToImageMetric.h:369
itkBSplineBaseTransform.h
itk::BSplineBaseTransform
A base class with common elements of BSplineTransform and BSplineDeformableTransform.
Definition: itkBSplineBaseTransform.h:34
itk::IndexValueType
signed long IndexValueType
Definition: itkIntTypes.h:90
itk::Array
Array class with size defined at construction time.
Definition: itkArray.h:47
itk::ImageToImageMetric::GradientImageFilterPointer
typename GradientImageFilterType::Pointer GradientImageFilterPointer
Definition: itkImageToImageMetric.h:111
itk::ImageToImageMetric::GetValueThreadPostProcess
virtual void GetValueThreadPostProcess(ThreadIdType, bool) const
Definition: itkImageToImageMetric.h:615
itk::ImageToImageMetric::m_BSplineTransformWeightsArray
BSplineTransformWeightsArrayType m_BSplineTransformWeightsArray
Definition: itkImageToImageMetric.h:473
itk::ImageToImageMetric::m_BSplineInterpolator
BSplineInterpolatorType::Pointer m_BSplineInterpolator
Definition: itkImageToImageMetric.h:513
itk::Point
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:53
itk::Image
Templated n-dimensional image class.
Definition: itkImage.h:86
itk::ImageToImageMetric::InterpolatorPointer
typename InterpolatorType::Pointer InterpolatorPointer
Definition: itkImageToImageMetric.h:113
itk::ImageToImageMetric::MultiThreaderWorkUnitInfoImageToImageMetricWrapper::GetConstImageToImageMetricPointer
const ImageToImageMetric * GetConstImageToImageMetricPointer() const
Definition: itkImageToImageMetric.h:572
itk::NumericTraits::RealType
double RealType
Definition: itkNumericTraits.h:84
itk::Transform
Transform points and vectors from an input space to an output space.
Definition: itkTransform.h:82
itk::ImageToImageMetric::FixedImageIndexType
typename FixedImageType::IndexType FixedImageIndexType
Definition: itkImageToImageMetric.h:94
itk::Array2D
Array2D class representing a 2D array with size defined at construction time.
Definition: itkArray2D.h:45
itkSingleValuedCostFunction.h
itk::ImageToImageMetric::m_BSplineParametersOffset
BSplineParametersOffsetType m_BSplineParametersOffset
Definition: itkImageToImageMetric.h:478
itk::ImageToImageMetric::CoordinateRepresentationType
typename Superclass::ParametersValueType CoordinateRepresentationType
Definition: itkImageToImageMetric.h:64
itk::ImageToImageMetric::ConstantPointerWrapper::GetConstMetricPointer
const ImageToImageMetric * GetConstMetricPointer() const
Definition: itkImageToImageMetric.h:543
itk::ImageToImageMetric::GetNumberOfSpatialSamples
SizeValueType GetNumberOfSpatialSamples()
Definition: itkImageToImageMetric.h:251
itk::ImageToImageMetric::BSplineTransformWeightsType
typename BSplineTransformType::WeightsType BSplineTransformWeightsType
Definition: itkImageToImageMetric.h:449
itk::ImageToImageMetric::BSplineTransformIndexArrayType
typename BSplineTransformType::ParameterIndexArrayType BSplineTransformIndexArrayType
Definition: itkImageToImageMetric.h:453
itk::InterpolateImageFunction
Base class for all image interpolators.
Definition: itkInterpolateImageFunction.h:45
itk::ImageToImageMetric::m_Interpolator
InterpolatorPointer m_Interpolator
Definition: itkImageToImageMetric.h:414
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:83
itk::ImageToImageMetric::MovingImageMaskPointer
typename MovingImageMaskType::Pointer MovingImageMaskPointer
Definition: itkImageToImageMetric.h:124
itk::ImageToImageMetric::FixedImageRegionType
typename FixedImageType::RegionType FixedImageRegionType
Definition: itkImageToImageMetric.h:78