【问题标题】:Is it possible to disable autofocus of a webcam on Windows 10?是否可以在 Windows 10 上禁用网络摄像头的自动对焦?
【发布时间】:2019-04-10 17:36:53
【问题描述】:

我正在使用 python opencv,但无法在 Windows 10 上禁用自动对焦、自动​​曝光等。

我正在使用罗技 BRIO 4k 网络摄像头。

在 Ubuntu 18.04 上一切正常。通过使用 v4l 后端的 Opencv 3.4.4,我能够成功设置焦点、曝光和视频分辨率。但是相同的代码在 windows 上不起作用

在我尝试过的 Windows 上:

  1. 用于 Python 的非官方预构建 OpenCV 包:opencv-contrib-python https://pypi.org/project/opencv-contrib-python/

  2. 使用 MSMF、VFW、DSHOW 后端从源代码 opencv 3.4.3 构建。 使用 VFW 我根本无法打开视频捕获

  3. 使用 MSMF、DSHOW 后端从源代码 opencv 4.1 构建

在上述所有情况下(VFW 后端除外),我都可以使用 opencv 功能,从网络摄像头读取和显示帧,但无法禁用自动对焦。

我使用的代码来自官方 opencv GitHub repo https://github.com/opencv/opencv/blob/master/samples/python/video_v4l2.py

我像这样创建视频捕获以指定后端VideoCapture(0 + BACKEND_ID),其中 BACKEND_ID 取自此处 https://docs.opencv.org/3.4.3/d4/d15/group__videoio__flags__base.html

环境变量OPENCV_VIDEOIO_DEBUG=True 确认我使用特定的后端

同一主题的问题没有答案Disable webcam's autofocus in Windows using opencv-python

cap.set( cv.CAP_PROP_SETTINGS, 1 ); 不适用于windows和linux

由于代码在 linux 上运行,我相信问题出在 videoio 后端。你能推荐一些其他的后端,或者可能是 opencv 支持的 windows 上的 v4l 模拟。

【问题讨论】:

    标签: python windows opencv logitech v4l


    【解决方案1】:

    忘了说,我是用虚拟盒子在windows上运行的。 如果我直接在 Windows 机器上运行相同的代码,一切正常)) 一定是虚拟盒子有问题

    唯一的区别是焦点值似乎在 0-255 范围内。但在我上面提供的示例代码中,它们在 0-100 范围内

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 2011-12-03
      相关资源
      最近更新 更多