GlobalInfo.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "GlobalInfo.h"
  2. EyeDataMatrix g_eyeDataMatrix;
  3. void EyeDataMatrix::addData(int x, int y)
  4. {
  5. if(dataMatrix[x][y].Cnt < 79999.0)
  6. {
  7. dataMatrix[x][y].fCnt += eyenWeightCoefficient;
  8. }
  9. }
  10. void EyeDataMatrix::eyeStatisticalWeight()
  11. {
  12. eyeIsLessenTheBurden = true;
  13. if (eyenWeightCoefficient <= eyenWeightCoefficientMIN)
  14. {
  15. return;
  16. }
  17. int num = 0;
  18. int num2 = 0;
  19. double num3 = 0.0;
  20. int num4 = 79999;
  21. for (int i = 0; i < 1000; i++)
  22. {
  23. for (int j = 0; j < 256; j++)
  24. {
  25. if (dataMatrix[i][j].fCnt > 0.0)
  26. {
  27. num++;
  28. if (dataMatrix[i][j].fCnt >= (double)num4)
  29. {
  30. num2++;
  31. }
  32. }
  33. }
  34. }
  35. if (num2 > 0)
  36. {
  37. num3 = (double)num2 / (double)num;
  38. }
  39. if (num3 >= 0.25)
  40. {
  41. eyeIsLessenTheBurden = false;
  42. }
  43. }
  44. void EyeDataMatrix::eyeLessenTheBurden()
  45. {
  46. if (eyeIsLessenTheBurden)
  47. {
  48. return;
  49. }
  50. int num = 0;
  51. for (int i = 0; i < 1000; i++)
  52. {
  53. for (int j = 0; j < 256; j++)
  54. {
  55. if (dataMatrix[i][j].fCnt > 0.0)
  56. {
  57. num = (int)(dataMatrix[i][j].fCnt * 0.05);
  58. dataMatrix[i][j].fCnt -= num;
  59. }
  60. }
  61. }
  62. eyenWeightCoefficient *= eyenWeightCoefficient;
  63. }
  64. EyeDataSample** EyeDataMatrix::eyeZoomOut()
  65. {
  66. EyeDataSample (*array)[256] = new EyeDataSample[1000][256];
  67. for (int i = 0; i < 1000; i++)
  68. {
  69. for (int j = 0; j < 256; j++)
  70. {
  71. EyeDataSample pEyeData2;
  72. pEyeData2.x = dataMatrix[i][j].x;
  73. pEyeData2.y = dataMatrix[i][j].y;
  74. pEyeData2.fCnt = dataMatrix[i][j].fCnt;
  75. pEyeData2.data = dataMatrix[i][j].data;
  76. if (dataMatrix[i][j].fCnt > 0.0) {
  77. pEyeData2.fCnt /= 100.0;
  78. pEyeData2.Cnt = (int)pEyeData2.fCnt;
  79. }
  80. array[i][j] = pEyeData2;
  81. }
  82. }
  83. return array;
  84. }