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

图形图象

开发平台:

Visual C++

  1. #ifndef MEANSHIFTSEGGER_H_INCLUDE
  2. #define MEANSHIFTSEGGER_H_INCLUDE
  3. #define HISTOGRAM_LENGTH 4096   //直方图长度
  4. typedef unsigned char pixel;
  5. class MeanShiftSegger{
  6. public:
  7. MeanShiftSegger();
  8. ~MeanShiftSegger();
  9. private:
  10. int imgWidth;   //图像宽度
  11. int imgHeight;  //图像高度
  12. int trackWinWidth;  //窗口宽度
  13. int trackWinHeight;  //窗口高度
  14. int currentX;       //当前目标横坐标
  15. int currentY;       //当前目标纵坐标
  16. private:
  17. float currHistogram[HISTOGRAM_LENGTH];  //当前直方图
  18. float tempHistogram[HISTOGRAM_LENGTH];  //目标直方图摸板
  19. public:
  20.     //计算Bhattacharyya系数
  21. float CalculateBhattacharyya(float initHistogram[HISTOGRAM_LENGTH],float tempHistogram[HISTOGRAM_LENGTH]);
  22.     //设置目标位置
  23. void InitMeanShiftTracker(unsigned char* firstFrame,int frameWidth,int frameHeight,int targetPosX,int targetPosY,int targetWidth,int targetHeight);
  24.     //计算目标直方图
  25. int CalculateHistogramSp(unsigned char*  frame,char kernel,float histogram[HISTOGRAM_LENGTH]);
  26. //Mean Shift 迭代过程
  27. void MeanShiftProcessSp(unsigned char * frame);
  28.     //Mean Shift跟踪操作函数
  29. void MeanShiftTrackProcess(unsigned char*  frame,int frameNumber);
  30. //根据当前跟踪窗口的大小和目标位置绘制跟踪窗
  31. void DrawTrackBox(unsigned char*  frame);
  32. };
  33. #endif