zxhproj v 2.2
zxhproj

zxhTransformFields.h

00001 
00002 /*=========================================================================
00003 
00004   Program:   ZXH Registration Software
00005   Author:    Xiahai Zhuang
00006   Module:    $RCSfle: zxhTransformFields.h    $
00007   Language:  C++
00008   Date:      $Date: From  2004-01 $
00009   Version:   $Revision: 1.0, 2.0 $
00010 
00011 =========================================================================*/
00012 
00013 #ifndef zxhTransformFields_H
00014 #define zxhTransformFields_H
00015 
00016 #include "zxhTransformBase.h"
00017 #include "zxhImageData.h"
00018 #include "zxhImageGipl.h"
00019 #include "zxhImageModelingLinear.h"
00020 
00033 
00034 
00035 class zxhTransformFields :  public zxhTransformBase
00036 {
00037 public:
00039     zxhTransformFields(void);
00041     ~zxhTransformFields(void);
00042 
00044     virtual std::string GetTransformType(){return "FLD";};//RIG,AFF,FFD
00045 
00047     virtual zxhTransformBase*   Clone(zxhTransformBase*&pRet) ;
00048 
00050     virtual void    TransformWorldToWorld(const float fVectorFromWorld[ImageDimensionMax],float fVectorToWorld[ImageDimensionMax]);
00051    
00053     virtual bool    SetTransformFromStream(std::ifstream & ifs);
00055     virtual bool    SetTransformIdentity();
00056 
00059     virtual std::string GetPrintString();
00061     virtual bool SaveTransform2Disc( std::string sFileNameWithoutExt ) ;
00062 
00064     virtual bool ElasticRegularizationDeformationFeild(float* sigmasmm); 
00065 
00068     virtual bool    SetTransformFieldsFromFiles(char* pFilename[ImageDimensionMax]);
00070     virtual bool    SetTransformFieldsFromFiles(std::string pFilename[ImageDimensionMax]);
00072     virtual bool    SetTransformFieldsFromFiles(std::string pFileX,std::string pFileY,std::string pFileZ);
00074     virtual bool    CloneTransformFieldsFromImages( zxhImageDataT<float> * pX, zxhImageDataT<float> * pY, zxhImageDataT<float> * pZ ) ;
00076     virtual bool    CloneTransformFieldsFromToWorldImages( zxhImageDataT<float> * ptwX, zxhImageDataT<float> * ptwY, zxhImageDataT<float> * ptwZ ) ;
00078     virtual zxhImageDataT<float> * GetTransformFieldImages()        {return m_pimgTransformFields;}
00080     virtual zxhImageModelingLinearT<float,float> * GetTransformFieldModels()    {return m_pmodelTransformFields;}
00083     virtual int     GetNoParameters() ;
00085     virtual float   GetParameters(int index) ;
00087     virtual bool    SetParameterValue( int index, float f ) ;
00088 
00090     virtual bool    SetTransformFieldsOrientationInfo(zxhImageInfo*pimageinfo) ;
00092     virtual void    NewTransformImages( int dim, const int*size, const float*spacing, const zxhImageInfo*pimageinfo ) ;
00094     virtual void    ReleaseMemOfTransformImages();
00095 
00097     virtual float   GetMaxLocalMagnitudeAndNormalisation( bool bNormalisationByLocalMagnitude ) ;
00098 
00100     virtual bool    ConvertTransformToField( zxhTransformBase*pt, const zxhImageInfo*pimageinfo) ;
00101 protected:
00103     std::string     m_strTransformFieldImageFiles[ImageDimensionMax];
00105     zxhImageDataT<float>  m_pimgTransformFields[ImageDimensionMax];
00107     zxhImageModelingLinearT<float,float> m_pmodelTransformFields[ImageDimensionMax];
00108 
00110     bool  CheckTranformFieldSameDimSizeSpacing() const ;
00111 
00112 };
00113 
00114 #endif //zxhTransformFields_H
00115 
00116 
 All Classes Namespaces Functions Variables Typedefs