00001 #pragma once 00002 00003 #ifdef WIN32 00004 #if defined _USRDLL 00005 #define DllExport _declspec(dllexport) 00006 #else 00007 #define DllExport _declspec(dllimport) 00008 #endif 00009 #else 00010 #define DllExport 00011 #endif 00012 00013 00014 00015 class DllExport CHLabHMM 00016 { 00017 char* m_pszName; 00018 00019 public: 00020 int m_iDim; 00021 int m_iNumStates; 00022 float** m_ppfMean; 00023 float** m_ppfVar; 00024 float** m_ppfTrans; 00025 00026 public: 00027 00028 int SetDefaultTrans(void); 00029 00030 CHLabHMM(void); 00031 00032 int Init(int iDim, int iNumStates, const char* pszName); 00033 00034 void SetMean(float fData, int i, int j) 00035 { 00036 m_ppfMean[i][j] = fData; 00037 } 00038 void SetVar(float fData, int i, int j) 00039 { 00040 m_ppfVar[i][j] = fData; 00041 } 00042 void SetTrans(float fData, int i, int j) 00043 { 00044 m_ppfTrans[i][j] = fData; 00045 } 00046 00047 inline int GetNumStates() 00048 { 00049 return m_iNumStates; 00050 } 00051 00052 00053 int ReadHMM(const char* szDir); 00054 int WriteHMM(const char* szDir); 00055 00056 virtual ~CHLabHMM(void); 00057 };