StaticDetect.h
上传用户:smdfuse
上传日期:2015-11-06
资源大小:98k
文件大小:2k
源码类别:

图形图象

开发平台:

Visual C++

  1. // StatsticDetect.h: interface for the CStatsticDetect class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_STATSTICDETECT_H__7B40C0FB_7939_4E8A_9E3C_54F9008F0416__INCLUDED_)
  5. #define AFX_STATSTICDETECT_H__7B40C0FB_7939_4E8A_9E3C_54F9008F0416__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "StructDefine.h"
  10. #define BACK_ALL_NUM 100 //计算背景所需帧数
  11. #define BACK_SEQ_NUM 3 //背景计算循环数目
  12. #define THRESHOLD 20              //设置差分阈值
  13. class CStatsticDetect  
  14. {
  15. public:
  16. CStatsticDetect(int nwidth, int nheight);
  17. virtual ~CStatsticDetect();
  18. void ReceiveFrame(int index, BYTE* sBuf, DETECT_METHOD sMethod); //主调用函数
  19. public:
  20. BYTE *m_pCurImage;  //当前图像
  21. BYTE *m_pBgImage;      //背景图像
  22. BYTE *m_pDetectImage;    //检测结果图像
  23. //private:
  24. int m_nFrame, count;
  25. int WIDTH, HEIGHT,IMAGESIZE;
  26. short int *m_pBackHistgram;   //背景颜色统计
  27. BYTE *m_pGrayImage;               //当前灰度图像
  28. BYTE *m_pBackground;           //背景
  29. BYTE *m_pDiffImage;               //差分图像
  30. UINT *m_pTemplate;                //存取多帧数据
  31. BYTE *m_pPreGrayImage;            //存取前一帧灰度图像
  32. BYTE *image1;
  33. BYTE *image2;
  34. BYTE *image3;
  35. BYTE *image4;
  36. public :
  37. void RGBToYUV(BYTE *sRGB,BYTE *sGray,int nWidth, int nHeight);
  38. void SetBgHistgram(short int *pHistgram, BYTE *sGray,int nWidth, int nHeight);
  39. BOOL GetBgByHistgram(short int *pHistgram,BYTE *sBg,int nWidth,int nHeight);
  40. void DiffImage(BYTE *sGray,BYTE *pGray,int nWidth, int nHeight,int nThreshold);
  41. void DeNoise(BYTE *sGray,int nWidth, int nHeight);
  42. void Medianfilter_3x3(BYTE *sGray, int nWidth, int nHeight);
  43. void Dilation(BYTE *sGray,int nWidth, int nHeight,int structure[3][3]);
  44. void Erosion(BYTE *sGray,int nWidth, int nHeight,int structure[3][3]);
  45. void GetMultiData(BYTE *sGray,int nWidth, int nHeight);
  46. void GetBgImage();
  47. void SaveBmp(BYTE* buffer,int nwidth, int nheight, int bit, int index); 
  48. void ImageCopy(BYTE *sGray, int m_num);
  49. void Subtract(BYTE *nImage, BYTE *nImage1, BYTE *nImage2, int nWidth, int nHeight, int nThresh);
  50. void MDiffImage(BYTE *sGray,int nWidth, int nHeight, int nthresh);
  51. };
  52. #endif // !defined(AFX_STATSTICDETECT_H__7B40C0FB_7939_4E8A_9E3C_54F9008F0416__INCLUDED_)