// GainMatrix.h: interface for the CGainMatrix class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_GAINMATRIX_H__90E0973C_F38F_4FEE_9652_EA61383AC966__INCLUDED_) #define AFX_GAINMATRIX_H__90E0973C_F38F_4FEE_9652_EA61383AC966__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define GAINMATRIX_MEAN 0x10000 #define FULL_IMG_WIDTH 3072L #define FULL_IMG_HEIGHT 2560L class CGainMatrix { public: bool LoadGainMap(void); bool LoadGainMap(const char* filename); bool LoadGainMap(WORD* wImage); bool AverageGainMap(WORD* wImage, int refenceindex); bool AverageGainMap(WORD* wImage, int refenceindex, bool bStart); bool StoreGainMap(const char* filename, int refenceindex); void PlaceRefrenceInOrder(); CGainMatrix(int width, int height,int woffset=0, int hoffset=0,int refrencenum =1,WORD maxpv = 16383); virtual ~CGainMatrix(); static CGainMatrix* Instance(); void ApplyGainMap(WORD *wImage); private: int m_nRefrenceNum; int m_nRefrenceCount; int* m_nAverage; WORD** m_wGainBuffer; int m_nWidth; int m_nHeight; int m_nWOffset; int m_nHOffset; static CGainMatrix* m_instance; unsigned w_gOffset; WORD m_nMaxPV; int m_nAverageCts; int m_nCurRefIndex; }; #endif // !defined(AFX_GAINMATRIX_H__90E0973C_F38F_4FEE_9652_EA61383AC966__INCLUDED_)