zxhproj v 2.2
zxhproj
|
00001 00002 /*========================================================================= 00003 00004 Program: ZXH Registration Software 00005 Author: Xiahai Zhuang 00006 Module: $RCSfle: zxhTransformFFD.h $ 00007 Language: C++ 00008 Date: $Date: From 2004-01 $ 00009 Version: $Revision: 1.0, 2.0 $ 00010 00011 =========================================================================*/ 00012 00013 #ifndef zxhTransformFFD_h 00014 #define zxhTransformFFD_h 00015 00016 #include "zxhTransformBase.h" 00017 #include "zxhTransformFFDBase.h" 00018 #include "zxhGradientFFDBase.h" 00019 #include "zxhImageData.h" 00020 #include "zxhMetricMIFFD.h" 00021 #include "zxhMetricNV.h" 00022 #include "zxhMetricCCFFD2.h" 00023 #include "zxhMetricRMS.h" 00024 #include "zxhMetricPhaseFFD.h" 00025 00032 class zxhMetricMIFFD; 00033 class zxhMetricNV; 00034 class zxhMetricCCFFD2; 00035 class zxhMetricRMS; 00036 class zxhMetricPhaseFFD; 00037 class zxhTransformFFD : public zxhTransformFFDBase, public zxhGradientFFDBase 00038 { 00039 public: 00041 zxhTransformFFD(void); 00043 virtual ~zxhTransformFFD(void); 00044 00046 virtual std::string GetTransformType(){return "FFD";}; 00047 00049 virtual std::string GetPrintString() ; 00050 00052 virtual zxhTransformBase* Clone(zxhTransformBase*&pRet); 00053 00054 public: 00057 virtual bool ComputeMetricGradient ( zxhMetricBase * pMetric, zxhTransformBase * pInfluence =0 ); 00058 00065 virtual bool ComputeMetricGradientOnDirection ( zxhMetricBase * pMetric, 00066 zxhTransformBase * pInfluence, 00067 zxhImageModelingBaseT<float,float> * pDirectionFFDsNVModelRef ); 00068 00069 00072 virtual bool PrePostComputeMetricGradient( zxhMetricBase * pMetric, 00073 zxhTransformBase * pInfluence, 00074 bool isPre ) ; 00075 00076 }; 00077 00078 #endif // zxhTransformFFD_h 00079 00080