00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freLimitedAxisAmoebaSOOptimizer.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freLimitedAxisAmoebaSOOptimizer_h 00023 #define __freLimitedAxisAmoebaSOOptimizer_h 00024 00025 #include "freAmoebaSOOptimizer.h" 00026 00027 #include "freSVLimitedAxisVnlSOMetricAdaptor.h" 00028 00029 namespace FREE 00030 { 00031 00036 class ITK_EXPORT LimitedAxisAmoebaSOOptimizer : 00037 public AmoebaSOOptimizer 00038 { 00039 public: 00041 typedef LimitedAxisAmoebaSOOptimizer Self; 00042 typedef AmoebaSOOptimizer Superclass; 00043 typedef itk::SmartPointer<Self> Pointer; 00044 typedef itk::SmartPointer<const Self> ConstPointer; 00045 00047 itkTypeMacro( LimitedAxisAmoebaSOOptimizer, AmoebaSOOptimizer ); 00048 00050 itkNewMacro(Self); 00051 00053 typedef Superclass::InternalParametersType InternalParametersType; 00054 00056 typedef Superclass::InternalOptimizerType InternalOptimizerType; 00057 00058 typedef itk::Array< long > ParameterAxisType; 00059 00060 itkSetMacro( NumberOfAxis, unsigned long ); 00061 itkGetConstReferenceMacro( NumberOfAxis, unsigned long ); 00062 itkSetMacro( ParameterAxis, ParameterAxisType ); 00063 itkGetConstReferenceMacro( ParameterAxis, ParameterAxisType ); 00064 00065 virtual void StartOptimization( void ); 00066 00067 virtual MeasureType GetValue (const ParametersType ¶meters); 00068 virtual DecomposedMeasureType GetDecomposedValue (const ParametersType ¶meters); 00069 00070 virtual void SetCostFunction( CostFunctionType * costFunction ); 00071 00072 protected: 00073 LimitedAxisAmoebaSOOptimizer(); 00074 void PrintSelf(std::ostream& os, itk::Indent indent) const; 00075 00076 typedef SVLimitedAxisVnlSOMetricAdaptor CostFunctionAdaptorType; 00077 00078 private: 00079 LimitedAxisAmoebaSOOptimizer(const Self&); //purposely not implemented 00080 void operator=(const Self&);//purposely not implemented 00081 00082 protected: 00083 00084 unsigned long m_NumberOfAxis; 00085 ParameterAxisType m_ParameterAxis; 00086 ParametersType m_CurrentAxisPosition; 00087 }; 00088 00089 } // end namespace FREE 00090 00091 #endif 00092 00093
1.5.3 written by Dimitri van Heesch,
© 1997-2000