python - See3CAM/OpenCV 自动白平衡支持

标签 python opencv camera webcam

我正在尝试设置 See3Cam_CU130 的白平衡设置通过 python 将网络摄像头设置为单个值。这是为了防止白平衡在我的分析过程中发生变化并干扰结果。我认为最好的方法是:

  1. 将相机设置为自动白平衡
  2. 在自动模式下读取当前的白平衡温度
  3. 禁用自动白平衡,并将其固定在之前的值

为此,我尝试运行:

cam = cv2.VideoCapture(0)
currentWB = cam.get(cv2.CAP_PROP_WHITE_BALANCE_BLUE_U)
cam.set(cv2.CAP_PROP_WHITE_BALANCE_BLUE_U, currentWB)

虽然最后一行返回True,但是白平衡参数仍然是auto,其值没有改变。

如果我改为使用我的 C920 网络摄像头运行此代码,白平衡将按预期关闭,并且我能够正确获取/设置它的值。

这是 See3Cam 的问题,还是 OpenCV 只是更好地支持 C920,因为它是一种更流行的网络摄像头?我可以做些什么来获得所需的行为?

我知道我可以使用 cam.set(cv2.CAP_PROP_SETTINGS, 1) 打开 dshow 配置对话框,但出于显而易见的原因,我不想手动执行此操作。

这是在 Windows 10、Python 3.5.2、OpenCV 3.2.0 上测试的

最佳答案

根据 UVC 规范,在自动模式下,白平衡手动控制不会更新。因此当 Controller 处于自动模式时读取手动值没有意义。

关于python - See3CAM/OpenCV 自动白平衡支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43649947/

相关文章:

c++ - 如何在OpenGL中更新 "forward"运动

python - 在 Windows 7 (x64) 上读取 Pandas 数据框中的大型 SPSS 文件的性能

Python编码问题(Utf-8,匈牙利语)

python - 为 Python3 安装 PySide

python - 如何在 dlib python 中保存/裁剪检测到的人脸

python - 使用 PIL 更改 OpenCV Python 中的字体系列

python - 从图像中提取特定文本关联值

java - Libgdx 相机不工作

Android更改相机声音

python - 使用Python的_winreg写入DWORD值?