![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
00001 /*====================================================================== 00002 00003 This file is part of the elastix software. 00004 00005 Copyright (c) University Medical Center Utrecht. All rights reserved. 00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for 00007 details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notices for more information. 00012 00013 ======================================================================*/ 00014 00015 #ifndef __elxFiniteDifferenceGradientDescent_h 00016 #define __elxFiniteDifferenceGradientDescent_h 00017 00018 #include "itkFiniteDifferenceGradientDescentOptimizer.h" 00019 #include "elxIncludes.h" 00020 00021 namespace elastix 00022 { 00023 using namespace itk; 00024 00077 template <class TElastix> 00078 class FiniteDifferenceGradientDescent : 00079 public 00080 itk::FiniteDifferenceGradientDescentOptimizer, 00081 public 00082 OptimizerBase<TElastix> 00083 { 00084 public: 00085 00087 typedef FiniteDifferenceGradientDescent Self; 00088 typedef FiniteDifferenceGradientDescentOptimizer Superclass1; 00089 typedef OptimizerBase<TElastix> Superclass2; 00090 typedef SmartPointer<Self> Pointer; 00091 typedef SmartPointer<const Self> ConstPointer; 00092 00094 itkNewMacro( Self ); 00095 00097 itkTypeMacro( FiniteDifferenceGradientDescent, FiniteDifferenceGradientDescentOptimizer ); 00098 00103 elxClassNameMacro( "FiniteDifferenceGradientDescent" ); 00104 00106 typedef Superclass1::CostFunctionType CostFunctionType; 00107 typedef Superclass1::CostFunctionPointer CostFunctionPointer; 00108 typedef Superclass1::StopConditionType StopConditionType; 00109 00111 typedef typename Superclass2::ElastixType ElastixType; 00112 typedef typename Superclass2::ElastixPointer ElastixPointer; 00113 typedef typename Superclass2::ConfigurationType ConfigurationType; 00114 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00115 typedef typename Superclass2::RegistrationType RegistrationType; 00116 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00117 typedef typename Superclass2::ITKBaseType ITKBaseType; 00118 00120 typedef typename Superclass1::ParametersType ParametersType; 00121 00123 virtual void BeforeRegistration(void); 00124 virtual void BeforeEachResolution(void); 00125 virtual void AfterEachResolution(void); 00126 virtual void AfterEachIteration(void); 00127 virtual void AfterRegistration(void); 00128 00131 virtual void StartOptimization(void); 00132 00133 protected: 00134 00135 FiniteDifferenceGradientDescent(); 00136 virtual ~FiniteDifferenceGradientDescent() {}; 00137 00138 bool m_ShowMetricValues; 00139 00140 private: 00141 00142 FiniteDifferenceGradientDescent( const Self& ); // purposely not implemented 00143 void operator=( const Self& ); // purposely not implemented 00144 00145 }; // end class FiniteDifferenceGradientDescent 00146 00147 00148 } // end namespace elastix 00149 00150 #ifndef ITK_MANUAL_INSTANTIATION 00151 #include "elxFiniteDifferenceGradientDescent.hxx" 00152 #endif 00153 00154 #endif // end #ifndef __elxFiniteDifferenceGradientDescent_h 00155
Generated on 24-05-2012 for elastix by ![]() |
![]() |