コード例 #1
0
        private static void WriteProperty(VideoCaptureDevice device, VideoProcAmpProperty property, CameraProperty value)
        {
            if (!value.Supported)
            {
                return;
            }

            try
            {
                VideoProcAmpFlags flags = value.Automatic ? VideoProcAmpFlags.Auto : VideoProcAmpFlags.Manual;
                int  v;
                bool parsed = int.TryParse(value.CurrentValue, NumberStyles.Any, CultureInfo.InvariantCulture, out v);
                if (parsed)
                {
                    device.SetVideoProperty(property, v, flags);
                }
                else
                {
                    log.ErrorFormat("Could not parse property {0}, value: {1}.", value.Identifier, value.CurrentValue);
                }
            }
            catch (Exception e)
            {
                log.ErrorFormat("Could not write property {0}. {1}.", value.Identifier, e.Message);
            }
        }
コード例 #2
0
        private static void WriteProperty(VideoCaptureDevice device, VideoProcAmpProperty property, CameraProperty value)
        {
            VideoProcAmpFlags flags = value.Automatic ? VideoProcAmpFlags.Auto : VideoProcAmpFlags.Manual;
            int v = int.Parse(value.CurrentValue, CultureInfo.InvariantCulture);

            device.SetVideoProperty(property, v, flags);
        }
コード例 #3
0
 public void SetBrightness(int val, VideoProcAmpFlags flags = VideoProcAmpFlags.Manual)
 {
     if (_values["Brightness"] != val)
     {
         _videoSource.SetVideoProperty(VideoProcAmpProperty.Brightness, val, flags);
         _values["Brightness"] = val;
     }
 }
コード例 #4
0
        private void BtnStart_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "" || comboBoxAttachedCameras.Text == "" || comboBoxSupportedModes.Text == "")
            {
                MessageBox.Show("未選擇儲存路徑 or 未選擇相機 or 未選擇解析度");
            }
            else if (BtnStart.Text == "開啟相機")
            {
                FinalVideo.SetVideoProperty(VideoProcAmpProperty.Brightness, 128, VideoProcAmpFlags.Manual);                                       // 亮度
                FinalVideo.SetVideoProperty(VideoProcAmpProperty.Contrast, 128, VideoProcAmpFlags.Manual);                                         // 對比
                FinalVideo.SetVideoProperty(VideoProcAmpProperty.Saturation, 128, VideoProcAmpFlags.Manual);                                       // 飽和度
                FinalVideo.SetVideoProperty(VideoProcAmpProperty.WhiteBalance, 5500, VideoProcAmpFlags.Manual);                                    // 白平衡
                FinalVideo.SetVideoProperty(VideoProcAmpProperty.BacklightCompensation, 0, VideoProcAmpFlags.Manual);                              // 背光補償
                FinalVideo.SetVideoProperty(VideoProcAmpProperty.Gain, 0, VideoProcAmpFlags.Manual);                                               // 增益
                FinalVideo.SetVideoProperty(VideoProcAmpProperty.KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY, 2, VideoProcAmpFlags.Manual);        // 電源基線
                FinalVideo.SetCameraProperty(CameraControlProperty.Zoom, 100, CameraControlFlags.Manual);                                          // 縮放
                FinalVideo.SetCameraProperty(CameraControlProperty.Focus, 0, CameraControlFlags.Manual);                                           // 焦距
                FinalVideo.SetCameraProperty(CameraControlProperty.Exposure, -5, CameraControlFlags.Manual);                                       // 曝光度
                FinalVideo.SetCameraProperty(CameraControlProperty.Pan, 0, CameraControlFlags.Manual);                                             // 取景位置調整
                FinalVideo.SetCameraProperty(CameraControlProperty.Tilt, 0, CameraControlFlags.Manual);                                            // 傾斜
                FinalVideo.SetCameraProperty(CameraControlProperty.KSPROPERTY_CAMERACONTROL_AUTO_EXPOSURE_PRIORITY, 0, CameraControlFlags.Manual); // 弱光補償

                FinalVideo.VideoResolution = FinalVideo.VideoCapabilities[comboBoxSupportedModes.SelectedIndex];
                Btnsetcamera.Enabled       = true;
                rect = new Rectangle(FinalVideo.VideoResolution.FrameSize.Width / 2 - 175, FinalVideo.VideoResolution.FrameSize.Height / 2 - 200, 350, 400);
                FinalVideo.Start();
                t.Start();
                BtnStart.Text    = "關閉相機";
                BtnStart.Enabled = false;
                comboBoxAttachedCameras.Enabled = false;
                comboBoxSupportedModes.Enabled  = false;
                label4.Visible = true;
            }
        }