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

图形图象

开发平台:

Visual C++

  1. #ifndef _GRAVITYCENTER_H_INCLUDED_
  2. #define _GRAVITYCENTER_H_INCLUDED_
  3. #include "StructDefine.h"
  4. class CGravityCenter
  5. {
  6. public:
  7. TARGETPARA  m_result;
  8. public:
  9. CGravityCenter(int nwidth,int nheight);
  10. virtual ~CGravityCenter();
  11. void InitalObjectTracker(BOOL type, int threshold);
  12. void GravityCenter(int index, unsigned char  * nRGBbuffer);
  13. private:
  14.     int m_frame;
  15. int m_width,m_height;
  16. int m_imageSize;
  17. int m_threshBH, m_threshW;
  18. int m_threshBHD,m_threshW1,m_threshW2,m_threshW3,m_threshW4;
  19. unsigned char *m_CurImage;     //当前RGB图像
  20. unsigned char *m_CurGrayImage; //当前Gray图像
  21. unsigned char *m_TempGrayImage; //过渡帧Gray图像
  22. unsigned char *m_PreGrayImage;      //上一帧Gray图像
  23. BOOL trackflag;             //捕获/跟踪切换
  24. WININFO m_TargetWin;        //目标窗口
  25. WININFO m_DrawWin;          //显示外接窗口
  26.     UINT m_ObjectType;          //目标类型
  27. UINT m_ObjectNum;           //目标个数
  28. bool permitflag1,permitflag2,permitflag3,permitflag4;
  29. bool captureflag1,captureflag2,captureflag3,captureflag4;
  30. WININFO m_TargetWin1, m_TargetWin2, m_TargetWin3, m_TargetWin4;
  31. WININFO m_DrawWin1, m_DrawWin2, m_DrawWin3, m_DrawWin4;
  32. BOOL m_otype;
  33. UINT m_threshold, m_thresholdT;
  34. UINT m_colorType;
  35. public:
  36. int GetBHThByHistogram(unsigned char *sGray,int nWidth, int nHeight);
  37. int GetWThByHistogram(unsigned char *sGray, WININFO sWin, int nWidth, int nHeight);
  38. int GetWThByAera(unsigned char *sGray, WININFO sWin, int nWidth, int nHeight);
  39. WININFO project(unsigned char* sGray, int sWidth, int sHeight, int sThreshold);
  40. WININFO gravity(unsigned char* sGray, int sWidth, int sHeight,int sThreshold);
  41. WININFO findEdge(unsigned char* sGray, int sWidth, int sHeight, int sThreshold, int sBlockNum);
  42. WININFO AdjustWindow(WININFO sWin, int sWidth, int sHeight);
  43. void erasure(unsigned char *sGray, WININFO sWin, int sWidth, int sHeight);
  44. WININFO gvtrack(unsigned char* sGray, int sWidth, int sHeight, WININFO sWin, int sThreshold);
  45. WININFO match(int* sGray, int* sTemp, int sWidth, int sHeight, int sTWidth, int sTHeight);
  46.     void RGBToGray(unsigned char *sRGB, unsigned char *sGray, int nWidth, int nHeight);
  47.     void Segment(unsigned char *sGray, int nWidth, int nHeight, int nThreshold);
  48.     void Inverse(unsigned char *sGray, int nWidth, int nHeight);
  49. unsigned long GetBoxColor();
  50. void SetPixelValues(unsigned char *sRGB,unsigned long pixelValues, int x, int y);
  51. void DrawObjectBox(unsigned char *sRGB, WININFO sWin);
  52. void SaveGrayImage(unsigned char *sGray,int nwidth, int nheight);
  53. void SaveRGBImage(unsigned char *sRGB,int nwidth, int nheight);
  54. void Initial();
  55. };
  56. #endif