zxhproj v 2.2
zxhproj
|
00001 00002 /*========================================================================= 00003 00004 Program: ZXH Registration Software 00005 Author: Xiahai Zhuang 00006 Module: $RCSfle: zxhOptimizerBase.h $ 00007 Language: C++ 00008 Date: $Date: From 2008-01 $ 00009 Version: $Revision: 2.2 $ 00010 00011 =========================================================================*/ 00012 00013 #ifndef zxhOptimizerGradientLocalAffines_h 00014 #define zxhOptimizerGradientLocalAffines_h 00015 00016 #include "zxhOptimizerGradient.h" 00017 #include "zxhTransformLocalAffines.h" 00018 #include "zxhMetricMILocalAffines.h" 00019 #include "zxhGradientBase.h" 00020 00028 class zxhOptimizerGradientLocalAffines : 00029 public zxhOptimizerGradient 00030 { 00031 public: 00033 zxhOptimizerGradientLocalAffines(void); 00035 ~zxhOptimizerGradientLocalAffines(void); 00036 00038 virtual std::string GetPrintString(); 00040 virtual bool SetOptimizerFromStream(std::ifstream & ifs); 00041 00043 virtual zxhOptimizerBase* Clone(zxhOptimizerBase* &pRet); 00045 virtual void SetOptimisationSteps( int nGlobal, int nLocal ) 00046 { m_nGlobalAffine = nGlobal; m_nLocalAffines = nLocal ; } 00047 00049 virtual void Run(); 00051 virtual void Run2(); 00052 00054 virtual bool AdjustParameters( bool forceconcatenation = false ) ; 00058 void AdjustGradientAdvanceStep( 00059 zxhTransformBase * pTransformAdvanceStep, 00060 zxhTransformBase * pGradient ) ; 00062 virtual void SetPreGlobalRegistration(int i) {m_nPreGlobalRegistration=i;}; 00064 virtual void SetAccessoryLocalRegions( bool b ) {m_bAccessoryLocalRegions=b;}; 00066 virtual bool GetAccessoryLocalRegions() {return m_bAccessoryLocalRegions;}; 00067 00068 protected: 00070 int m_nGlobalAffine ; 00072 int m_nLocalAffines ; 00074 int m_nPreGlobalRegistration ; 00076 bool m_bAccessoryLocalRegions ; 00077 00078 //float m_fLocalAffineSearchLength ; float m_fLocalAffineDifferentialLength ; 00079 }; 00080 #endif 00081 00082