zxhproj v 2.2
zxhproj

zxhTransformIterateSquareRoot.h

00001 
00002 /*=========================================================================
00003 
00004   Program:   ZXH Registration Software
00005   Author:    Xiahai Zhuang
00006   Module:    $RCSfle: zxhTransformIterateSquareRoot.h    $
00007   Language:  C++
00008   Date:      $Date: From  2011-02 $
00009   Version:   $Revision: 2.0,2.1 $
00010 
00011 =========================================================================*/
00012 
00013 #ifndef zxhTransformIterateSquareRoot_H
00014 #define zxhTransformIterateSquareRoot_H
00015 
00016 #include "zxhTransformFieldGradient.h"
00017 #include "zxhOptimizerGradientField.h"
00018 #include "zxhImageData.h"
00019 #include <string.h>
00020 #include <stdio.h>
00021 
00026 #ifndef  m_staticMinimalSpace
00027 #define m_staticMinimalSpace 0.01f
00028 #endif
00029 #ifndef  m_staticMinimalSampling
00030 #define m_staticMinimalSampling 1 // it's so weird that 2 works worse than 1
00031 #endif
00032 
00033 class zxhTransformIterateSquareRoot : public zxhTransformFieldGradient
00034 {
00035 public:
00037     zxhTransformIterateSquareRoot();
00039     virtual ~zxhTransformIterateSquareRoot();
00041     virtual zxhTransformBase*   Clone(zxhTransformBase*&pRet) ;
00043     virtual void SetTransform( zxhTransformBase*p )         {m_pTransform=p;if(p) m_iDimension=p->GetDimension();} ;
00045     virtual bool Evaluate();
00047     virtual void SetNumberOfMultiLevelOptimization( int n ) {m_nMultiLevel=n;};
00049     virtual int  GetNumberOfMultiLevelOptimization()        {return m_nMultiLevel;};
00051     virtual void SetFinalLevelStepLength(float f)           {m_fFinalLevelStepLength=f;};
00053     virtual float GetFinalLevelStepLength(void)             {return m_fFinalLevelStepLength;};
00055     virtual bool SetOptimizer( zxhOptimizerGradient*pSrc ) ;
00056 protected:
00058     virtual bool InitTransformFieldImage() ;
00060     zxhTransformBase    * m_pTransform;
00062     zxhOptimizerGradientField m_Optimizer ;
00064     int                 m_nMultiLevel;
00066     float               m_fFinalLevelStepLength ;
00067 };
00068 #endif //
00069 
00070 
 All Classes Namespaces Functions Variables Typedefs