GainMatrix.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // GainMatrix.h: interface for the CGainMatrix class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_GAINMATRIX_H__90E0973C_F38F_4FEE_9652_EA61383AC966__INCLUDED_)
  5. #define AFX_GAINMATRIX_H__90E0973C_F38F_4FEE_9652_EA61383AC966__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #define GAINMATRIX_MEAN 0x10000
  10. #define FULL_IMG_WIDTH 3072L
  11. #define FULL_IMG_HEIGHT 2560L
  12. class CGainMatrix
  13. {
  14. public:
  15. bool LoadGainMap(void);
  16. bool LoadGainMap(const char* filename);
  17. bool LoadGainMap(WORD* wImage);
  18. bool AverageGainMap(WORD* wImage, int refenceindex);
  19. bool AverageGainMap(WORD* wImage, int refenceindex, bool bStart);
  20. bool StoreGainMap(const char* filename, int refenceindex);
  21. void PlaceRefrenceInOrder();
  22. CGainMatrix(int width, int height,int woffset=0, int hoffset=0,int refrencenum =1,WORD maxpv = 16383);
  23. virtual ~CGainMatrix();
  24. static CGainMatrix* Instance();
  25. void ApplyGainMap(WORD *wImage);
  26. private:
  27. int m_nRefrenceNum;
  28. int m_nRefrenceCount;
  29. int* m_nAverage;
  30. WORD** m_wGainBuffer;
  31. int m_nWidth;
  32. int m_nHeight;
  33. int m_nWOffset;
  34. int m_nHOffset;
  35. static CGainMatrix* m_instance;
  36. unsigned w_gOffset;
  37. WORD m_nMaxPV;
  38. int m_nAverageCts;
  39. int m_nCurRefIndex;
  40. };
  41. #endif // !defined(AFX_GAINMATRIX_H__90E0973C_F38F_4FEE_9652_EA61383AC966__INCLUDED_)