【发布时间】:2019-04-10 17:36:53
【问题描述】:
我正在使用 python opencv,但无法在 Windows 10 上禁用自动对焦、自动曝光等。
我正在使用罗技 BRIO 4k 网络摄像头。
在 Ubuntu 18.04 上一切正常。通过使用 v4l 后端的 Opencv 3.4.4,我能够成功设置焦点、曝光和视频分辨率。但是相同的代码在 windows 上不起作用
在我尝试过的 Windows 上:
用于 Python 的非官方预构建 OpenCV 包:opencv-contrib-python https://pypi.org/project/opencv-contrib-python/
使用 MSMF、VFW、DSHOW 后端从源代码 opencv 3.4.3 构建。 使用 VFW 我根本无法打开视频捕获
使用 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