SimpleITK  1.1.0
sitkImageRegistrationMethod.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 sitkImageRegistrationMethod_h
19 #define sitkImageRegistrationMethod_h
20 
21 #include "sitkRegistration.h"
22 
23 #include "sitkDetail.h"
24 #include "sitkImage.h"
25 #include "sitkPixelIDTokens.h"
27 #include "sitkProcessObject.h"
28 
29 #include "sitkRandomSeed.h"
30 #include "sitkInterpolator.h"
31 #include "sitkTransform.h"
32 
33 
34 namespace itk
35 {
36 
37 #ifndef SWIG
38 template< typename TInternalComputationValueType> class ObjectToObjectOptimizerBaseTemplate;
39 template<typename TFixedImage,
40  typename TMovingImage,
41  typename TVirtualImage,
42  typename TInternalComputationValueType,
43  typename TMetricTraits >
44 class ImageToImageMetricv4;
45 
46 template<typename TFixedImageType,
47  typename TMovingImageType,
48  typename TVirtualImageType,
49  typename TCoordRep>
50 class DefaultImageToImageMetricTraitsv4;
51 
52 template<typename TMetric> class RegistrationParameterScalesEstimator;
53 
54 template<unsigned int VDimension> class SpatialObject;
55 
56 class Command;
57 class EventObject;
58 #endif
59 
60 
61 
62 namespace simple
63 {
64 
89  : public ProcessObject
90  {
91  public:
92 
95 
96  virtual ~ImageRegistrationMethod();
97 
99 
100  std::string GetName() const { return std::string("ImageRegistrationMethod"); }
101 
108  std::string ToString() const;
109 
115  { return this->m_Interpolator; }
116  SITK_RETURN_SELF_TYPE_HEADER SetInterpolator ( InterpolatorEnum Interpolator )
117  { this->m_Interpolator = Interpolator; return *this; }
136 #if !defined(SWIG) || defined(JAVASWIG) || defined(CSHARPSWIG)
137  // Only wrap this method if the wrapping language is strongly typed
138  SITK_RETURN_SELF_TYPE_HEADER SetInitialTransform ( const Transform &transform );
139 #endif
140  SITK_RETURN_SELF_TYPE_HEADER SetInitialTransform ( Transform &transform, bool inPlace=true );
142  { return this->m_InitialTransform; }
144  { return this->m_InitialTransformInPlace;}
160  SITK_RETURN_SELF_TYPE_HEADER SetMovingInitialTransform( const Transform &transform )
161  { this->m_MovingInitialTransform = transform; return *this; }
163  { return this->m_MovingInitialTransform; }
176  SITK_RETURN_SELF_TYPE_HEADER SetFixedInitialTransform( const Transform &transform )
177  { this->m_FixedInitialTransform = transform; return *this; }
179  { return this->m_FixedInitialTransform; }
187  SITK_RETURN_SELF_TYPE_HEADER SetVirtualDomain( const std::vector<uint32_t> &virtualSize,
188  const std::vector<double> &virtualOrigin,
189  const std::vector<double> &virtualSpacing,
190  const std::vector<double> &virtualDirection );
191  SITK_RETURN_SELF_TYPE_HEADER SetVirtualDomainFromImage( const Image &virtualImage );
200  SITK_RETURN_SELF_TYPE_HEADER SetMetricAsANTSNeighborhoodCorrelation( unsigned int radius );
201 
206  SITK_RETURN_SELF_TYPE_HEADER SetMetricAsCorrelation( );
207 
212  SITK_RETURN_SELF_TYPE_HEADER SetMetricAsDemons( double intensityDifferenceThreshold = 0.001 );
213 
218  SITK_RETURN_SELF_TYPE_HEADER SetMetricAsJointHistogramMutualInformation( unsigned int numberOfHistogramBins = 20,
219  double varianceForJointPDFSmoothing = 1.5);
220 
225  SITK_RETURN_SELF_TYPE_HEADER SetMetricAsMeanSquares( );
226 
232  SITK_RETURN_SELF_TYPE_HEADER SetMetricAsMattesMutualInformation( unsigned int numberOfHistogramBins = 50 );
233 
234 
237  EachIteration
238  };
239 
244  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsConjugateGradientLineSearch( double learningRate,
245  unsigned int numberOfIterations,
246  double convergenceMinimumValue = 1e-6,
247  unsigned int convergenceWindowSize = 10,
248  double lineSearchLowerLimit = 0,
249  double lineSearchUpperLimit = 5.0,
250  double lineSearchEpsilon = 0.01,
251  unsigned int lineSearchMaximumIterations = 20,
252  EstimateLearningRateType estimateLearningRate = Once,
253  double maximumStepSizeInPhysicalUnits = 0.0 );
254 
259  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsRegularStepGradientDescent( double learningRate,
260  double minStep,
261  unsigned int numberOfIterations,
262  double relaxationFactor=0.5,
263  double gradientMagnitudeTolerance = 1e-4,
264  EstimateLearningRateType estimateLearningRate = Never,
265  double maximumStepSizeInPhysicalUnits = 0.0);
266 
271  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsGradientDescent( double learningRate,
272  unsigned int numberOfIterations,
273  double convergenceMinimumValue = 1e-6,
274  unsigned int convergenceWindowSize = 10,
275  EstimateLearningRateType estimateLearningRate = Once,
276  double maximumStepSizeInPhysicalUnits = 0.0);
277 
282  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsGradientDescentLineSearch( double learningRate,
283  unsigned int numberOfIterations,
284  double convergenceMinimumValue = 1e-6,
285  unsigned int convergenceWindowSize = 10,
286  double lineSearchLowerLimit = 0,
287  double lineSearchUpperLimit = 5.0,
288  double lineSearchEpsilon = 0.01,
289  unsigned int lineSearchMaximumIterations = 20,
290  EstimateLearningRateType estimateLearningRate = Once,
291  double maximumStepSizeInPhysicalUnits = 0.0 );
292 
299  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsLBFGSB(double gradientConvergenceTolerance = 1e-5,
300  unsigned int numberOfIterations = 500,
301  unsigned int maximumNumberOfCorrections = 5,
302  unsigned int maximumNumberOfFunctionEvaluations = 2000,
303  double costFunctionConvergenceFactor = 1e+7,
304  double lowerBound = std::numeric_limits<double>::min(),
305  double upperBound = std::numeric_limits<double>::max(),
306  bool trace = false );
307 
320  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsLBFGS2( double solutionAccuracy = 1e-5,
321  unsigned int numberOfIterations = 0,
322  unsigned int hessianApproximateAccuracy = 6,
323  unsigned int deltaConvergenceDistance = 0,
324  double deltaConvergenceTolerance = 1e-5,
325  unsigned int lineSearchMaximumEvaluations = 40,
326  double lineSearchMinimumStep = 1e-20,
327  double lineSearchMaximumStep = 1e20,
328  double lineSearchAccuracy = 1e-4);
329 
330 
347  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsExhaustive( const std::vector<unsigned int> &numberOfSteps,
348  double stepLength = 1.0 );
349 
354  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsAmoeba(double simplexDelta,
355  unsigned int numberOfIterations,
356  double parametersConvergenceTolerance=1e-8,
357  double functionConvergenceTolerance=1e-4,
358  bool withRestarts = false );
359 
371  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerWeights(const std::vector<double> &weights);
372  std::vector<double> GetOptimizerWeights( ) const;
379  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsPowell(unsigned int numberOfIterations = 100,
380  unsigned int maximumLineIterations = 100,
381  double stepLength = 1,
382  double stepTolerance = 1e-6,
383  double valueTolerance = 1e-6 );
384 
393  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsOnePlusOneEvolutionary(unsigned int numberOfIterations = 100,
394  double epsilon = 1.5e-4,
395  double initialRadius = 1.01,
396  double growthFactor = -1.0,
397  double shrinkFactor = -1.0,
398  unsigned int seed = sitkWallClock);
399 
400 
401 
403  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScales( const std::vector<double> &scales );
404 
411  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScalesFromJacobian( unsigned int centralRegionRadius = 5 );
412 
418  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScalesFromIndexShift( unsigned int centralRegionRadius = 5,
419  double smallParameterVariation = 0.01 );
420 
427  SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScalesFromPhysicalShift( unsigned int centralRegionRadius = 5,
428  double smallParameterVariation = 0.01 );
429 
430 
440  SITK_RETURN_SELF_TYPE_HEADER SetMetricFixedMask( const Image &binaryMask );
441 
451  SITK_RETURN_SELF_TYPE_HEADER SetMetricMovingMask( const Image &binaryMask );
452 
463  SITK_RETURN_SELF_TYPE_HEADER SetMetricSamplingPercentage(double percentage, unsigned int seed = sitkWallClock);
464  SITK_RETURN_SELF_TYPE_HEADER SetMetricSamplingPercentagePerLevel(const std::vector<double> &percentage, unsigned int seed = sitkWallClock);
470  RANDOM
471  };
472 
477  SITK_RETURN_SELF_TYPE_HEADER SetMetricSamplingStrategy( MetricSamplingStrategyType strategy);
478 
488  SITK_RETURN_SELF_TYPE_HEADER SetMetricUseFixedImageGradientFilter(bool);
489  SITK_RETURN_SELF_TYPE_HEADER MetricUseFixedImageGradientFilterOn() {return this->SetMetricUseFixedImageGradientFilter(true);}
490  SITK_RETURN_SELF_TYPE_HEADER MetricUseFixedImageGradientFilterOff() {return this->SetMetricUseFixedImageGradientFilter(false);}
503  SITK_RETURN_SELF_TYPE_HEADER SetMetricUseMovingImageGradientFilter(bool);
504  SITK_RETURN_SELF_TYPE_HEADER MetricUseMovingImageGradientFilterOn() {return this->SetMetricUseMovingImageGradientFilter(true);}
505  SITK_RETURN_SELF_TYPE_HEADER MetricUseMovingImageGradientFilterOff() {return this->SetMetricUseMovingImageGradientFilter(false);}
514  SITK_RETURN_SELF_TYPE_HEADER SetShrinkFactorsPerLevel( const std::vector<unsigned int> &shrinkFactors );
515 
521  SITK_RETURN_SELF_TYPE_HEADER SetSmoothingSigmasPerLevel( const std::vector<double> &smoothingSigmas );
522 
529  SITK_RETURN_SELF_TYPE_HEADER SetSmoothingSigmasAreSpecifiedInPhysicalUnits(bool arg);
530  SITK_RETURN_SELF_TYPE_HEADER SmoothingSigmasAreSpecifiedInPhysicalUnitsOn() { this->SetSmoothingSigmasAreSpecifiedInPhysicalUnits(true); return *this;}
531  SITK_RETURN_SELF_TYPE_HEADER SmoothingSigmasAreSpecifiedInPhysicalUnitsOff() { this->SetSmoothingSigmasAreSpecifiedInPhysicalUnits(false); return *this;}
536  Transform Execute ( const Image &fixed, const Image & moving );
537 
538 
548  double MetricEvaluate( const Image &fixed, const Image & moving );
549 
550 
557  unsigned int GetOptimizerIteration() const;
558  std::vector<double> GetOptimizerPosition() const;
559  double GetOptimizerLearningRate() const;
560  double GetOptimizerConvergenceValue() const;
561  double GetMetricValue() const;
562 
563 
564  unsigned int GetCurrentLevel() const;
565 
573  std::vector<double> GetOptimizerScales() const;
574 
577  std::string GetOptimizerStopConditionDescription() const;
578 
579  protected:
580 
581  template<class TImage>
582  Transform ExecuteInternal ( const Image &fixed, const Image &moving );
583 
584  template<class TImage>
585  double EvaluateInternal ( const Image &fixed, const Image &moving );
586 
587 
588  itk::ObjectToObjectOptimizerBaseTemplate<double> *CreateOptimizer( unsigned int numberOfTransformParameters );
589 
590  template<unsigned int VDimension>
591  itk::SpatialObject<VDimension> *CreateSpatialObjectMask(const Image &mask);
592 
593  template <class TImageType>
594  itk::ImageToImageMetricv4<TImageType,
595  TImageType,
596  TImageType,
597  double,
599  >* CreateMetric( );
600 
601  template <class TImageType>
602  void SetupMetric(
603  itk::ImageToImageMetricv4<TImageType,
604  TImageType,
605  TImageType,
606  double,
608  >*, const TImageType*, const TImageType* );
609 
610  template <typename TMetric>
612 
613  template <typename TTransformAdaptorPointer, typename TRegistrationMethod >
614  std::vector< TTransformAdaptorPointer >
615  CreateTransformParametersAdaptor(
616  TRegistrationMethod* method);
617 
618  virtual void PreUpdate( itk::ProcessObject *p );
619  virtual void OnActiveProcessDelete( ) SITK_NOEXCEPT;
620  virtual unsigned long AddITKObserver(const itk::EventObject &, itk::Command *);
621  virtual void RemoveITKObserver( EventCommand &e );
622 
623  private:
624 
625  nsstd::function<unsigned int()> m_pfGetOptimizerIteration;
626  nsstd::function<std::vector<double>()> m_pfGetOptimizerPosition;
627  nsstd::function<double()> m_pfGetOptimizerLearningRate;
628  nsstd::function<double()> m_pfGetOptimizerConvergenceValue;
629  nsstd::function<double()> m_pfGetMetricValue;
630  nsstd::function<std::vector<double>()> m_pfGetOptimizerScales;
631  nsstd::function<std::string()> m_pfGetOptimizerStopConditionDescription;
632 
633 
634  nsstd::function<unsigned int()> m_pfGetCurrentLevel;
635 
636  nsstd::function<void (itk::TransformBase *outTransform)> m_pfUpdateWithBestValue;
637 
638  template < class TMemberFunctionPointer >
640  {
641  typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
642 
643  template< typename TImageType >
644  TMemberFunctionPointer operator() ( void ) const
645  {
646  return &ObjectType::template EvaluateInternal< TImageType >;
647  }
648  };
649 
650  typedef Transform (ImageRegistrationMethod::*MemberFunctionType)( const Image &fixed, const Image &moving );
651  typedef double (ImageRegistrationMethod::*EvaluateMemberFunctionType)( const Image &fixed, const Image &moving );
652  friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
653  nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
654  nsstd::auto_ptr<detail::MemberFunctionFactory<EvaluateMemberFunctionType> > m_EvaluateMemberFactory;
655 
661 
662  std::vector<uint32_t> m_VirtualDomainSize;
663  std::vector<double> m_VirtualDomainOrigin;
664  std::vector<double> m_VirtualDomainSpacing;
665  std::vector<double> m_VirtualDomainDirection;
666 
667  // optimizer
668  enum OptimizerType { ConjugateGradientLineSearch,
677  LBFGS2
678  };
700  std::vector<unsigned int> m_OptimizerNumberOfSteps;
713  unsigned int m_OptimizerSeed;
722 
723 
724 
725  std::vector<double> m_OptimizerWeights;
726 
731  PhysicalShift
732  };
734  std::vector<double> m_OptimizerScales;
737 
738  // metric
739  enum MetricType { ANTSNeighborhoodCorrelation,
744  MattesMutualInformation
745  };
747  unsigned int m_MetricRadius;
751 
754 
755  std::vector<double> m_MetricSamplingPercentage;
757  unsigned int m_MetricSamplingSeed;
758 
761 
762  std::vector<unsigned int> m_ShrinkFactorsPerLevel;
763  std::vector<double> m_SmoothingSigmasPerLevel;
765 
768  unsigned int m_Iteration;
769 
771  };
772 
773 }
774 }
775 
776 #endif // sitkImageRegistrationMethod_h
itk::simple::Image
The main Image class for SimpleITK.
Definition: sitkImage.h:54
itk::simple::ImageRegistrationMethod::m_InitialTransformInPlace
bool m_InitialTransformInPlace
Definition: sitkImageRegistrationMethod.h:658
itk::simple::ImageRegistrationMethod::m_Iteration
unsigned int m_Iteration
Definition: sitkImageRegistrationMethod.h:768
itk::simple::ImageRegistrationMethod::m_MemberFactory
nsstd::auto_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Definition: sitkImageRegistrationMethod.h:653
itk::simple::ImageRegistrationMethod::SmoothingSigmasAreSpecifiedInPhysicalUnitsOn
Self & SmoothingSigmasAreSpecifiedInPhysicalUnitsOn()
Enable the smoothing sigmas for each level in physical units (default) or in terms of voxels.
Definition: sitkImageRegistrationMethod.h:530
itk::simple::ImageRegistrationMethod::m_MetricNumberOfHistogramBins
unsigned int m_MetricNumberOfHistogramBins
Definition: sitkImageRegistrationMethod.h:749
itk::simple::ImageRegistrationMethod::EvaluateMemberFunctionAddressor
Definition: sitkImageRegistrationMethod.h:639
sitkRandomSeed.h
itk::simple::ImageRegistrationMethod::SmoothingSigmasAreSpecifiedInPhysicalUnitsOff
Self & SmoothingSigmasAreSpecifiedInPhysicalUnitsOff()
Enable the smoothing sigmas for each level in physical units (default) or in terms of voxels.
Definition: sitkImageRegistrationMethod.h:531
itk::simple::ImageRegistrationMethod::m_OptimizerMaximumNumberOfFunctionEvaluations
unsigned int m_OptimizerMaximumNumberOfFunctionEvaluations
Definition: sitkImageRegistrationMethod.h:695
itk::simple::ImageRegistrationMethod::MetricUseMovingImageGradientFilterOff
Self & MetricUseMovingImageGradientFilterOff()
Enable image gradient computation by a filter.
Definition: sitkImageRegistrationMethod.h:505
itk::simple::InterpolatorEnum
InterpolatorEnum
Definition: sitkInterpolator.h:30
itk::simple::ImageRegistrationMethod::m_MetricValue
double m_MetricValue
Definition: sitkImageRegistrationMethod.h:767
itk::simple::ImageRegistrationMethod::m_OptimizerInitialRadius
double m_OptimizerInitialRadius
Definition: sitkImageRegistrationMethod.h:710
itk::simple::ImageRegistrationMethod::m_MetricSamplingStrategy
MetricSamplingStrategyType m_MetricSamplingStrategy
Definition: sitkImageRegistrationMethod.h:756
itk::simple::ImageRegistrationMethod::OptimizerType
OptimizerType
Definition: sitkImageRegistrationMethod.h:668
itk::simple::ImageRegistrationMethod::m_OptimizerMinimumStepLength
double m_OptimizerMinimumStepLength
Definition: sitkImageRegistrationMethod.h:681
itk::simple::ImageRegistrationMethod::m_OptimizerWeights
std::vector< double > m_OptimizerWeights
Definition: sitkImageRegistrationMethod.h:725
itk::simple::ImageRegistrationMethod::MetricType
MetricType
Definition: sitkImageRegistrationMethod.h:739
itk::simple::ImageRegistrationMethod::m_OptimizerConvergenceMinimumValue
double m_OptimizerConvergenceMinimumValue
Definition: sitkImageRegistrationMethod.h:691
itk::simple::Transform
A simplified wrapper around a variety of ITK transforms.
Definition: sitkTransform.h:84
itk::simple::detail::MemberFunctionAddressor
Definition: sitkDetail.h:32
itk::simple::ImageRegistrationMethod::m_EvaluateMemberFactory
nsstd::auto_ptr< detail::MemberFunctionFactory< EvaluateMemberFunctionType > > m_EvaluateMemberFactory
Definition: sitkImageRegistrationMethod.h:654
SITK_NOEXCEPT
#define SITK_NOEXCEPT
Definition: sitkMacro.h:68
itk::simple::ImageRegistrationMethod::m_MetricUseFixedImageGradientFilter
bool m_MetricUseFixedImageGradientFilter
Definition: sitkImageRegistrationMethod.h:759
itk::simple::ImageRegistrationMethod::Jacobian
@ Jacobian
Definition: sitkImageRegistrationMethod.h:729
itk::simple::ImageRegistrationMethod::m_OptimizerLowerBound
double m_OptimizerLowerBound
Definition: sitkImageRegistrationMethod.h:697
itk::simple::ImageRegistrationMethod::Exhaustive
@ Exhaustive
Definition: sitkImageRegistrationMethod.h:673
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchMaximumEvaluations
unsigned int m_OptimizerLineSearchMaximumEvaluations
Definition: sitkImageRegistrationMethod.h:718
itk::simple::ImageRegistrationMethod::m_OptimizerNumberOfIterations
unsigned int m_OptimizerNumberOfIterations
Definition: sitkImageRegistrationMethod.h:682
itk::simple::ImageRegistrationMethod::m_OptimizerSimplexDelta
double m_OptimizerSimplexDelta
Definition: sitkImageRegistrationMethod.h:702
itk::simple::ImageRegistrationMethod::RegularStepGradientDescent
@ RegularStepGradientDescent
Definition: sitkImageRegistrationMethod.h:669
itk::simple::ImageRegistrationMethod::m_OptimizerHessianApproximationAccuracy
unsigned int m_OptimizerHessianApproximationAccuracy
Definition: sitkImageRegistrationMethod.h:715
itk::simple::ImageRegistrationMethod::MetricUseFixedImageGradientFilterOn
Self & MetricUseFixedImageGradientFilterOn()
Enable image gradient computation by a filter.
Definition: sitkImageRegistrationMethod.h:489
SITKRegistration_EXPORT
#define SITKRegistration_EXPORT
Definition: sitkRegistration.h:32
sitkImage.h
itk::simple::ImageRegistrationMethod::OptimizerScalesType
OptimizerScalesType
Definition: sitkImageRegistrationMethod.h:727
itk::RegistrationParameterScalesEstimator
Definition: sitkImageRegistrationMethod.h:52
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchMaximumStep
double m_OptimizerLineSearchMaximumStep
Definition: sitkImageRegistrationMethod.h:720
itk::simple::ImageRegistrationMethod::m_VirtualDomainDirection
std::vector< double > m_VirtualDomainDirection
Definition: sitkImageRegistrationMethod.h:665
itk::simple::ImageRegistrationMethod::m_OptimizerDeltaConvergenceTolerance
double m_OptimizerDeltaConvergenceTolerance
Definition: sitkImageRegistrationMethod.h:717
itk::simple::ImageRegistrationMethod::m_OptimizerConvergenceWindowSize
unsigned int m_OptimizerConvergenceWindowSize
Definition: sitkImageRegistrationMethod.h:692
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchMaximumIterations
unsigned int m_OptimizerLineSearchMaximumIterations
Definition: sitkImageRegistrationMethod.h:686
itk::simple::ImageRegistrationMethod::GetInterpolator
InterpolatorEnum GetInterpolator()
Set and get the interpolator to use.
Definition: sitkImageRegistrationMethod.h:114
itk::simple::ImageRegistrationMethod::m_MetricVarianceForJointPDFSmoothing
double m_MetricVarianceForJointPDFSmoothing
Definition: sitkImageRegistrationMethod.h:750
itk::simple::ImageRegistrationMethod::m_OptimizerTrace
bool m_OptimizerTrace
Definition: sitkImageRegistrationMethod.h:699
itk::simple::ImageRegistrationMethod::m_OptimizerSolutionAccuracy
double m_OptimizerSolutionAccuracy
Definition: sitkImageRegistrationMethod.h:714
itk::simple::ImageRegistrationMethod::m_MetricIntensityDifferenceThreshold
double m_MetricIntensityDifferenceThreshold
Definition: sitkImageRegistrationMethod.h:748
itk::simple::ImageRegistrationMethod::m_OptimizerLearningRate
double m_OptimizerLearningRate
Definition: sitkImageRegistrationMethod.h:680
itk::simple::ImageRegistrationMethod::MetricUseFixedImageGradientFilterOff
Self & MetricUseFixedImageGradientFilterOff()
Enable image gradient computation by a filter.
Definition: sitkImageRegistrationMethod.h:490
itk::simple::ImageRegistrationMethod::Correlation
@ Correlation
Definition: sitkImageRegistrationMethod.h:740
itk::simple::ImageRegistrationMethod::MetricUseMovingImageGradientFilterOn
Self & MetricUseMovingImageGradientFilterOn()
Enable image gradient computation by a filter.
Definition: sitkImageRegistrationMethod.h:504
itk::simple::Command
An implementation of the Command design pattern for callback.
Definition: sitkCommand.h:44
itk::simple::ImageRegistrationMethod::m_MetricMovingMaskImage
Image m_MetricMovingMaskImage
Definition: sitkImageRegistrationMethod.h:753
itk::simple::ImageRegistrationMethod::m_OptimizerMaximumNumberOfCorrections
unsigned int m_OptimizerMaximumNumberOfCorrections
Definition: sitkImageRegistrationMethod.h:694
itk::simple::ImageRegistrationMethod::m_MetricSamplingSeed
unsigned int m_MetricSamplingSeed
Definition: sitkImageRegistrationMethod.h:757
itk::simple::ImageRegistrationMethod::LBFGSB
@ LBFGSB
Definition: sitkImageRegistrationMethod.h:672
itk::simple::ImageRegistrationMethod::SetMovingInitialTransform
Self & SetMovingInitialTransform(const Transform &transform)
Set a fixed transform component towards moving domain.
Definition: sitkImageRegistrationMethod.h:160
itk::simple::ImageRegistrationMethod::Superclass
ProcessObject Superclass
Definition: sitkImageRegistrationMethod.h:94
itk::simple::ImageRegistrationMethod::EvaluateMemberFunctionAddressor::ObjectType
::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
Definition: sitkImageRegistrationMethod.h:641
sitkMemberFunctionFactory.h
itk::simple::ImageRegistrationMethod::REGULAR
@ REGULAR
Definition: sitkImageRegistrationMethod.h:469
itk::simple::ImageRegistrationMethod::m_SmoothingSigmasPerLevel
std::vector< double > m_SmoothingSigmasPerLevel
Definition: sitkImageRegistrationMethod.h:763
itk::simple::ImageRegistrationMethod::NONE
@ NONE
Definition: sitkImageRegistrationMethod.h:468
itk::simple::ImageRegistrationMethod::m_OptimizerType
OptimizerType m_OptimizerType
Definition: sitkImageRegistrationMethod.h:679
itk::simple::ImageRegistrationMethod::m_OptimizerWithRestarts
bool m_OptimizerWithRestarts
Definition: sitkImageRegistrationMethod.h:705
sitkDetail.h
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchLowerLimit
double m_OptimizerLineSearchLowerLimit
Definition: sitkImageRegistrationMethod.h:683
itk::simple::ImageRegistrationMethod::m_OptimizerFunctionConvergenceTolerance
double m_OptimizerFunctionConvergenceTolerance
Definition: sitkImageRegistrationMethod.h:704
itk::simple::ImageRegistrationMethod::m_OptimizerEstimateLearningRate
EstimateLearningRateType m_OptimizerEstimateLearningRate
Definition: sitkImageRegistrationMethod.h:687
itk::simple::ImageRegistrationMethod::OnePlusOneEvolutionary
@ OnePlusOneEvolutionary
Definition: sitkImageRegistrationMethod.h:676
sitkProcessObject.h
sitkRegistration.h
itk::simple::ImageRegistrationMethod::m_OptimizerScalesType
OptimizerScalesType m_OptimizerScalesType
Definition: sitkImageRegistrationMethod.h:733
itk::simple::ImageRegistrationMethod::Demons
@ Demons
Definition: sitkImageRegistrationMethod.h:741
itk::simple::ImageRegistrationMethod::m_OptimizerSeed
unsigned int m_OptimizerSeed
Definition: sitkImageRegistrationMethod.h:713
itk::simple::ImageRegistrationMethod::GetFixedInitialTransform
Transform GetFixedInitialTransform() const
Set transform mapping to the fixed domain.
Definition: sitkImageRegistrationMethod.h:178
itk::simple::ImageRegistrationMethod::m_VirtualDomainSpacing
std::vector< double > m_VirtualDomainSpacing
Definition: sitkImageRegistrationMethod.h:664
itk::simple::ImageRegistrationMethod::GradientDescentLineSearch
@ GradientDescentLineSearch
Definition: sitkImageRegistrationMethod.h:671
itk::Command
class ITK_FORWARD_EXPORT Command
itk::simple::ImageRegistrationMethod::m_OptimizerEpsilon
double m_OptimizerEpsilon
Definition: sitkImageRegistrationMethod.h:709
itk::simple::ImageRegistrationMethod::GetInitialTransform
Transform GetInitialTransform()
Set the initial transform and parameters to optimize.
Definition: sitkImageRegistrationMethod.h:141
itk::simple::ImageRegistrationMethod::m_MetricSamplingPercentage
std::vector< double > m_MetricSamplingPercentage
Definition: sitkImageRegistrationMethod.h:755
itk::simple::ImageRegistrationMethod::GetName
std::string GetName() const
Definition: sitkImageRegistrationMethod.h:100
itk::simple::ImageRegistrationMethod::m_ActiveOptimizer
itk::ObjectToObjectOptimizerBaseTemplate< double > * m_ActiveOptimizer
Definition: sitkImageRegistrationMethod.h:770
itk::simple::ImageRegistrationMethod::m_OptimizerUpperBound
double m_OptimizerUpperBound
Definition: sitkImageRegistrationMethod.h:698
itk::DefaultImageToImageMetricTraitsv4
Definition: sitkImageRegistrationMethod.h:50
itk::simple::ImageRegistrationMethod::m_OptimizerNumberOfSteps
std::vector< unsigned int > m_OptimizerNumberOfSteps
Definition: sitkImageRegistrationMethod.h:700
itk::simple::ImageRegistrationMethod::m_VirtualDomainOrigin
std::vector< double > m_VirtualDomainOrigin
Definition: sitkImageRegistrationMethod.h:663
itk::SpatialObject
Definition: sitkImageRegistrationMethod.h:54
itk::simple::ImageRegistrationMethod::IndexShift
@ IndexShift
Definition: sitkImageRegistrationMethod.h:730
itk::simple::ImageRegistrationMethod::Self
ImageRegistrationMethod Self
Definition: sitkImageRegistrationMethod.h:93
itk::simple::ImageRegistrationMethod::m_ShrinkFactorsPerLevel
std::vector< unsigned int > m_ShrinkFactorsPerLevel
Definition: sitkImageRegistrationMethod.h:762
itk::simple::ImageRegistrationMethod::m_OptimizerMaximumLineIterations
unsigned int m_OptimizerMaximumLineIterations
Definition: sitkImageRegistrationMethod.h:706
itk::simple::ImageRegistrationMethod::m_OptimizerGrowthFactor
double m_OptimizerGrowthFactor
Definition: sitkImageRegistrationMethod.h:711
itk::simple::ImageRegistrationMethod::m_InitialTransform
Transform m_InitialTransform
Definition: sitkImageRegistrationMethod.h:657
itk::simple::ImageRegistrationMethod::m_MovingInitialTransform
Transform m_MovingInitialTransform
Definition: sitkImageRegistrationMethod.h:659
sitkInterpolator.h
itk::simple::ImageRegistrationMethod::m_OptimizerGradientMagnitudeTolerance
double m_OptimizerGradientMagnitudeTolerance
Definition: sitkImageRegistrationMethod.h:690
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchEpsilon
double m_OptimizerLineSearchEpsilon
Definition: sitkImageRegistrationMethod.h:685
itk::simple::ImageRegistrationMethod::Amoeba
@ Amoeba
Definition: sitkImageRegistrationMethod.h:674
itk::simple::ImageRegistrationMethod::m_MetricRadius
unsigned int m_MetricRadius
Definition: sitkImageRegistrationMethod.h:747
itk::simple::ImageRegistrationMethod::m_OptimizerRelaxationFactor
double m_OptimizerRelaxationFactor
Definition: sitkImageRegistrationMethod.h:689
itk::simple::ImageRegistrationMethod::m_OptimizerDeltaConvergenceDistance
unsigned int m_OptimizerDeltaConvergenceDistance
Definition: sitkImageRegistrationMethod.h:716
itk::simple::ImageRegistrationMethod::m_SmoothingSigmasAreSpecifiedInPhysicalUnits
bool m_SmoothingSigmasAreSpecifiedInPhysicalUnits
Definition: sitkImageRegistrationMethod.h:764
itk::simple::ImageRegistrationMethod::m_OptimizerShrinkFactor
double m_OptimizerShrinkFactor
Definition: sitkImageRegistrationMethod.h:712
itk::simple::ImageRegistrationMethod::m_OptimizerGradientConvergenceTolerance
double m_OptimizerGradientConvergenceTolerance
Definition: sitkImageRegistrationMethod.h:693
itk::simple::ImageRegistrationMethod::m_VirtualDomainSize
std::vector< uint32_t > m_VirtualDomainSize
Definition: sitkImageRegistrationMethod.h:662
sitkTransform.h
itk::simple::ImageRegistrationMethod::GetMovingInitialTransform
Transform GetMovingInitialTransform() const
Set a fixed transform component towards moving domain.
Definition: sitkImageRegistrationMethod.h:162
itk::simple::ImageRegistrationMethod::m_OptimizerCostFunctionConvergenceFactor
double m_OptimizerCostFunctionConvergenceFactor
Definition: sitkImageRegistrationMethod.h:696
itk::simple::ImageRegistrationMethod::Never
@ Never
Never run estimation, use provided value.
Definition: sitkImageRegistrationMethod.h:235
sitkPixelIDTokens.h
itk::simple::ImageRegistrationMethod
An interface method to the modular ITKv4 registration framework.
Definition: sitkImageRegistrationMethod.h:88
itk::simple::sitkWallClock
@ sitkWallClock
Definition: sitkRandomSeed.h:31
itk::simple::ImageRegistrationMethod::Powell
@ Powell
Definition: sitkImageRegistrationMethod.h:675
itk
itk::simple::ImageRegistrationMethod::GetInitialTransformInPlace
bool GetInitialTransformInPlace() const
Set the initial transform and parameters to optimize.
Definition: sitkImageRegistrationMethod.h:143
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchMinimumStep
double m_OptimizerLineSearchMinimumStep
Definition: sitkImageRegistrationMethod.h:719
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchUpperLimit
double m_OptimizerLineSearchUpperLimit
Definition: sitkImageRegistrationMethod.h:684
itk::simple::ImageRegistrationMethod::m_OptimizerLineSearchAccuracy
double m_OptimizerLineSearchAccuracy
Definition: sitkImageRegistrationMethod.h:721
itk::ProcessObject
itk::simple::ImageRegistrationMethod::m_OptimizerMaximumStepSizeInPhysicalUnits
double m_OptimizerMaximumStepSizeInPhysicalUnits
Definition: sitkImageRegistrationMethod.h:688
itk::simple::ImageRegistrationMethod::m_OptimizerScalesCentralRegionRadius
unsigned int m_OptimizerScalesCentralRegionRadius
Definition: sitkImageRegistrationMethod.h:735
itk::ObjectToObjectOptimizerBaseTemplate< double >
itk::simple::ProcessObject
Base class for SimpleITK classes based on ProcessObject.
Definition: sitkProcessObject.h:50
itk::simple::ImageRegistrationMethod::m_OptimizerScalesSmallParameterVariation
double m_OptimizerScalesSmallParameterVariation
Definition: sitkImageRegistrationMethod.h:736
itk::ImageToImageMetricv4
Definition: sitkImageRegistrationMethod.h:44
itk::simple::ImageRegistrationMethod::m_MetricUseMovingImageGradientFilter
bool m_MetricUseMovingImageGradientFilter
Definition: sitkImageRegistrationMethod.h:760
itk::simple::ImageRegistrationMethod::SetInterpolator
Self & SetInterpolator(InterpolatorEnum Interpolator)
Set and get the interpolator to use.
Definition: sitkImageRegistrationMethod.h:116
itk::simple::ImageRegistrationMethod::Manual
@ Manual
Definition: sitkImageRegistrationMethod.h:728
itk::simple::ImageRegistrationMethod::m_MetricFixedMaskImage
Image m_MetricFixedMaskImage
Definition: sitkImageRegistrationMethod.h:752
itk::EventObject
itk::simple::ImageRegistrationMethod::m_OptimizerValueTolerance
double m_OptimizerValueTolerance
Definition: sitkImageRegistrationMethod.h:708
itk::simple::ImageRegistrationMethod::Once
@ Once
Estimate learning once each level, ignore provided values.
Definition: sitkImageRegistrationMethod.h:236
itk::simple::ImageRegistrationMethod::EstimateLearningRateType
EstimateLearningRateType
Definition: sitkImageRegistrationMethod.h:235
itk::simple::ImageRegistrationMethod::m_FixedInitialTransform
Transform m_FixedInitialTransform
Definition: sitkImageRegistrationMethod.h:660
itk::simple::ImageRegistrationMethod::GradientDescent
@ GradientDescent
Definition: sitkImageRegistrationMethod.h:670
itk::simple::ImageRegistrationMethod::m_OptimizerScales
std::vector< double > m_OptimizerScales
Definition: sitkImageRegistrationMethod.h:734
itk::simple::ImageRegistrationMethod::MetricSamplingStrategyType
MetricSamplingStrategyType
Definition: sitkImageRegistrationMethod.h:467
itk::simple::ImageRegistrationMethod::m_OptimizerStepLength
double m_OptimizerStepLength
Definition: sitkImageRegistrationMethod.h:701
itk::simple::ImageRegistrationMethod::m_StopConditionDescription
std::string m_StopConditionDescription
Definition: sitkImageRegistrationMethod.h:766
itk::simple::ImageRegistrationMethod::m_Interpolator
InterpolatorEnum m_Interpolator
Definition: sitkImageRegistrationMethod.h:656
itk::TransformBaseTemplate
Definition: sitkTransform.h:37
itk::simple::ImageRegistrationMethod::m_MetricType
MetricType m_MetricType
Definition: sitkImageRegistrationMethod.h:746
itk::simple::ImageRegistrationMethod::MeanSquares
@ MeanSquares
Definition: sitkImageRegistrationMethod.h:743
itk::simple::ImageRegistrationMethod::SetFixedInitialTransform
Self & SetFixedInitialTransform(const Transform &transform)
Set transform mapping to the fixed domain.
Definition: sitkImageRegistrationMethod.h:176
itk::simple::ImageRegistrationMethod::m_OptimizerParametersConvergenceTolerance
double m_OptimizerParametersConvergenceTolerance
Definition: sitkImageRegistrationMethod.h:703
itk::simple::ImageRegistrationMethod::m_OptimizerStepTolerance
double m_OptimizerStepTolerance
Definition: sitkImageRegistrationMethod.h:707
itk::simple::ImageRegistrationMethod::JointHistogramMutualInformation
@ JointHistogramMutualInformation
Definition: sitkImageRegistrationMethod.h:742