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

图形图象

开发平台:

Visual C++

  1. #include "StdAfx.h"
  2. #include "GravityTrack.h"
  3. /******************************************************/
  4. /* 函数名称:
  5. /*     GravityTrack
  6. /*
  7. /* 函数参数:
  8. /*     unsigned char* sGray-输入灰度图像
  9. /*     int sWidth-图像宽度
  10. /*     int sHeight-图像高度
  11. /*     int sThreshold-目标域值
  12. /* 
  13. /* 说明:
  14. /*     形心法目标跟踪程序
  15. /*******************************************************/
  16. /*WININFO GravityTrack (unsigned char* sGray, int sWidth, int sHeight, int sThreshold)
  17. {
  18. WININFO win;
  19. win.w = 0;
  20. win.h = 0;
  21. win.pt.x = 0;
  22. win.pt.y = 0;
  23. win.flag = FALSE;
  24. int M00bh = 0;
  25. int M01bh = 0;
  26. int M10bh = 0;
  27. int iLine,i,j;
  28. for(j=EDGE_SPACE;j<sHeight-EDGE_SPACE;j++)
  29. {
  30. iLine = 0;
  31. for(i=EDGE_SPACE;i<sWidth-EDGE_SPACE;i++)
  32. {
  33. int k = sWidth*j+i;
  34. if(sGray[k]>sThreshold)
  35. {
  36. iLine++;
  37. M01bh+=i;
  38. M10bh+=j;
  39. }
  40. }
  41. M00bh+=iLine;
  42. if(win.w<iLine) win.w = iLine;
  43. if(iLine>0) win.h++;
  44. }
  45. //if(M00bh>10)
  46. //{
  47. win.pt.x = int(M01bh/M00bh+0.5);
  48. win.pt.y = int(M10bh/M00bh+0.5);
  49. win.w = win.w/2+EDGE_DRAW;
  50. win.h = win.h/2+EDGE_DRAW;
  51. //win.flag = TRUE;
  52. //}
  53. return win;
  54. }
  55. */