| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- using AForge.Controls;
- using AForge.Video.DirectShow;
- namespace shjxCamera
- {
- public class InterfaceCamera
- {
- //public void PresetLightParam(WebCamera WebCam, VideoCaptureDevice vidCapDevice, VideoSourcePlayer vidPlayer)
- //{
- // ColorDataGraber colorDataGraber = new ColorDataGraber(WebCam);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, 125, VideoProcAmpFlags.Manual);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Contrast, 255, VideoProcAmpFlags.Manual);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Sharpness, 0, VideoProcAmpFlags.Manual);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Gain, 0, VideoProcAmpFlags.Manual);
- // WebCam.GetPropertiesRange(CameraControlProperty.Exposure, out var min, out var max, out var size, out var value, out var flag);
- // Thread.Sleep(1000);
- // // 读取信号值
- // var cdp = colorDataGraber.GrabSignal(500);
- // // 判断信号所在区间,小于额定值范围则缩小曝光值,大于额定范围则增大曝光值
- // CameraControlFlags flags = CameraControlFlags.Manual;
- // WebCam.GetProperties(CameraControlProperty.Exposure, out int val, out flags);
- // int maxcount = 10;
- // double bsvBelow = 0.0;
- // double bsvUp = 0.0;
- // int valBelow = 0;
- // int valUp = 0;
- // double bsv = 0.0;
- // bool flagJudge = true; ;
- // while (maxcount > 0)
- // {
- // maxcount--;
- // bsv = cdp.GetBSV();
- // if (bsv < 120)
- // {
- // bsvBelow = bsv;
- // if (val.Equals(min))
- // break;
- // val = Math.Min(max, Math.Max(-9, val - 1));
- // valBelow = val;
- // WebCam.SetProperties(CameraControlProperty.Exposure, val, CameraControlFlags.Manual);
- // Thread.Sleep(500);
- // colorDataGraber.UpdateRoiPos(false);
- // }
- // else if (bsv > 130)
- // {
- // bsvUp = bsv;
- // if (val.Equals(max)) break;
- // val = Math.Min(max, Math.Max(-9, val + 1));
- // valUp = val;
- // WebCam.SetProperties(CameraControlProperty.Exposure, val, CameraControlFlags.Manual);
- // Thread.Sleep(500);
- // colorDataGraber.UpdateRoiPos(false);
- // }
- // else
- // {
- // flagJudge = false; ;
- // break;
- // }
- // cdp = colorDataGraber.GrabSignal(500);
- // }
- // if (flagJudge)
- // {
- // val = 125 - bsvBelow > bsvUp - 125 ? valBelow : valUp;
- // val = Math.Min(max, Math.Max(-9, val));
- // WebCam.SetProperties(CameraControlProperty.Exposure, val, CameraControlFlags.Manual);
- // Thread.Sleep(500);
- // ContinuePresetLightParam(WebCam, vidCapDevice, vidPlayer);
- // }
- // WebCam.GetProperties(CameraControlProperty.Exposure, out val, out flags);
- //}
- //public void PresetLightParammanual(WebCamera WebCam, CameraValue cameraValue, int explosionRange)
- //{
- // ColorDataGraber colorDataGraber = new ColorDataGraber(WebCam);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, cameraValue.Brightness, VideoProcAmpFlags.Manual);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Contrast, cameraValue.Contrast, VideoProcAmpFlags.Manual);
- // //WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Hue, cameraValue.Hue, VideoProcAmpFlags.Manual);
- // //WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Saturation, cameraValue.Saturation, VideoProcAmpFlags.Manual);
- // //WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.WhiteBalance, cameraValue.WhiteBalance, VideoProcAmpFlags.Manual);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Sharpness, cameraValue.Sharpness, VideoProcAmpFlags.Manual);
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Gain, cameraValue.Gain, VideoProcAmpFlags.Manual);
- // if (explosionRange != 10)
- // {
- // WebCam.SetProperties(CameraControlProperty.Exposure, explosionRange, CameraControlFlags.Manual);
- // }
- // Thread.Sleep(1000);
- // colorDataGraber.UpdateRoiPos(true);
- // colorDataGraber.GrabSignal(10);
- // logger.LogCritical($"11111111亮度:{cameraValue.Brightness} 对比:{cameraValue.Contrast} 锐度:{cameraValue.Sharpness} 增益:{cameraValue.Gain} 曝光:{explosionRange}");
- //}
- //public void ContinuePresetLightParam(WebCamera WebCam, VideoCaptureDevice vidCapDevice, VideoSourcePlayer vidPlayer)
- //{
- // ColorDataGraber colorDataGraber = new ColorDataGraber(WebCam);
- // WebCam.GetVideoProcAmpPropertiesRange(VideoProcAmpProperty.Brightness, out var minb, out var maxb, out var sizeb, out var valueb, out var flagb);
- // Thread.Sleep(1000);
- // // 读取信号值
- // var cdp = colorDataGraber.GrabSignal(500);
- // VideoProcAmpFlags flags = VideoProcAmpFlags.Manual;
- // WebCam.GetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, out int val, out flags);
- // int maxcount = 15;
- // while (maxcount > 0)
- // {
- // maxcount--;
- // if (cdp.GetBSV() < 120)
- // {
- // if (val < minb) break;
- // val = val + 2;
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, val, VideoProcAmpFlags.Manual);
- // Thread.Sleep(500);
- // colorDataGraber.UpdateRoiPos(false);
- // }
- // else if (cdp.GetBSV() > 130)
- // {
- // if (val > maxb) break;
- // val = val - 2;
- // WebCam.SetVideoProcAmpProperties(VideoProcAmpProperty.Brightness, val, VideoProcAmpFlags.Manual);
- // Thread.Sleep(500);
- // colorDataGraber.UpdateRoiPos(false);
- // }
- // else
- // {
- // break;
- // }
- // cdp = colorDataGraber.GrabSignal(500);
- // }
- // WebCam.GetVideoProcAmpProperties(AForge.Video.DirectShow.VideoProcAmpProperty.Brightness, out val, out flagb);
-
- //}
- }
- }
|