shjxCamera.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using AForge.Controls;
  2. using AForge.Video.DirectShow;
  3. namespace shjxCamera
  4. {
  5. public class InterfaceCamera
  6. {
  7. //public void PresetLightParam(WebCamera WebCam, VideoCaptureDevice vidCapDevice, VideoSourcePlayer vidPlayer)
  8. //{
  9. // ColorDataGraber colorDataGraber = new ColorDataGraber(WebCam);
  10. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, 125, VideoProcAmpFlags.Manual);
  11. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Contrast, 255, VideoProcAmpFlags.Manual);
  12. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Sharpness, 0, VideoProcAmpFlags.Manual);
  13. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Gain, 0, VideoProcAmpFlags.Manual);
  14. // WebCam.GetPropertiesRange(CameraControlProperty.Exposure, out var min, out var max, out var size, out var value, out var flag);
  15. // Thread.Sleep(1000);
  16. // // 读取信号值
  17. // var cdp = colorDataGraber.GrabSignal(500);
  18. // // 判断信号所在区间,小于额定值范围则缩小曝光值,大于额定范围则增大曝光值
  19. // CameraControlFlags flags = CameraControlFlags.Manual;
  20. // WebCam.GetProperties(CameraControlProperty.Exposure, out int val, out flags);
  21. // int maxcount = 10;
  22. // double bsvBelow = 0.0;
  23. // double bsvUp = 0.0;
  24. // int valBelow = 0;
  25. // int valUp = 0;
  26. // double bsv = 0.0;
  27. // bool flagJudge = true; ;
  28. // while (maxcount > 0)
  29. // {
  30. // maxcount--;
  31. // bsv = cdp.GetBSV();
  32. // if (bsv < 120)
  33. // {
  34. // bsvBelow = bsv;
  35. // if (val.Equals(min))
  36. // break;
  37. // val = Math.Min(max, Math.Max(-9, val - 1));
  38. // valBelow = val;
  39. // WebCam.SetProperties(CameraControlProperty.Exposure, val, CameraControlFlags.Manual);
  40. // Thread.Sleep(500);
  41. // colorDataGraber.UpdateRoiPos(false);
  42. // }
  43. // else if (bsv > 130)
  44. // {
  45. // bsvUp = bsv;
  46. // if (val.Equals(max)) break;
  47. // val = Math.Min(max, Math.Max(-9, val + 1));
  48. // valUp = val;
  49. // WebCam.SetProperties(CameraControlProperty.Exposure, val, CameraControlFlags.Manual);
  50. // Thread.Sleep(500);
  51. // colorDataGraber.UpdateRoiPos(false);
  52. // }
  53. // else
  54. // {
  55. // flagJudge = false; ;
  56. // break;
  57. // }
  58. // cdp = colorDataGraber.GrabSignal(500);
  59. // }
  60. // if (flagJudge)
  61. // {
  62. // val = 125 - bsvBelow > bsvUp - 125 ? valBelow : valUp;
  63. // val = Math.Min(max, Math.Max(-9, val));
  64. // WebCam.SetProperties(CameraControlProperty.Exposure, val, CameraControlFlags.Manual);
  65. // Thread.Sleep(500);
  66. // ContinuePresetLightParam(WebCam, vidCapDevice, vidPlayer);
  67. // }
  68. // WebCam.GetProperties(CameraControlProperty.Exposure, out val, out flags);
  69. //}
  70. //public void PresetLightParammanual(WebCamera WebCam, CameraValue cameraValue, int explosionRange)
  71. //{
  72. // ColorDataGraber colorDataGraber = new ColorDataGraber(WebCam);
  73. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, cameraValue.Brightness, VideoProcAmpFlags.Manual);
  74. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Contrast, cameraValue.Contrast, VideoProcAmpFlags.Manual);
  75. // //WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Hue, cameraValue.Hue, VideoProcAmpFlags.Manual);
  76. // //WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Saturation, cameraValue.Saturation, VideoProcAmpFlags.Manual);
  77. // //WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.WhiteBalance, cameraValue.WhiteBalance, VideoProcAmpFlags.Manual);
  78. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Sharpness, cameraValue.Sharpness, VideoProcAmpFlags.Manual);
  79. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Gain, cameraValue.Gain, VideoProcAmpFlags.Manual);
  80. // if (explosionRange != 10)
  81. // {
  82. // WebCam.SetProperties(CameraControlProperty.Exposure, explosionRange, CameraControlFlags.Manual);
  83. // }
  84. // Thread.Sleep(1000);
  85. // colorDataGraber.UpdateRoiPos(true);
  86. // colorDataGraber.GrabSignal(10);
  87. // logger.LogCritical($"11111111亮度:{cameraValue.Brightness} 对比:{cameraValue.Contrast} 锐度:{cameraValue.Sharpness} 增益:{cameraValue.Gain} 曝光:{explosionRange}");
  88. //}
  89. //public void ContinuePresetLightParam(WebCamera WebCam, VideoCaptureDevice vidCapDevice, VideoSourcePlayer vidPlayer)
  90. //{
  91. // ColorDataGraber colorDataGraber = new ColorDataGraber(WebCam);
  92. // WebCam.GetVideoProcAmpPropertiesRange(VideoProcAmpProperty.Brightness, out var minb, out var maxb, out var sizeb, out var valueb, out var flagb);
  93. // Thread.Sleep(1000);
  94. // // 读取信号值
  95. // var cdp = colorDataGraber.GrabSignal(500);
  96. // VideoProcAmpFlags flags = VideoProcAmpFlags.Manual;
  97. // WebCam.GetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, out int val, out flags);
  98. // int maxcount = 15;
  99. // while (maxcount > 0)
  100. // {
  101. // maxcount--;
  102. // if (cdp.GetBSV() < 120)
  103. // {
  104. // if (val < minb) break;
  105. // val = val + 2;
  106. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, val, VideoProcAmpFlags.Manual);
  107. // Thread.Sleep(500);
  108. // colorDataGraber.UpdateRoiPos(false);
  109. // }
  110. // else if (cdp.GetBSV() > 130)
  111. // {
  112. // if (val > maxb) break;
  113. // val = val - 2;
  114. // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, val, VideoProcAmpFlags.Manual);
  115. // Thread.Sleep(500);
  116. // colorDataGraber.UpdateRoiPos(false);
  117. // }
  118. // else
  119. // {
  120. // break;
  121. // }
  122. // cdp = colorDataGraber.GrabSignal(500);
  123. // }
  124. // WebCam.GetVideoProcAmpProperties(AForge.Video.DirectShow.VideoProcAmpProperty.Brightness, out val, out flagb);
  125. //}
  126. }
  127. }