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); } }
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); }
public void SetBrightness(int val, VideoProcAmpFlags flags = VideoProcAmpFlags.Manual) { if (_values["Brightness"] != val) { _videoSource.SetVideoProperty(VideoProcAmpProperty.Brightness, val, flags); _values["Brightness"] = val; } }
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; } }