我正在使用 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 存储库的代码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
确认我使用特定的后端
相同主题的问题没有答案使用 opencv-python 在 Windows 中禁用网络摄像头的自动对焦
cap.set( cv.CAP_PROP_SETTINGS, 1 );
不适用于 windows 和 linux
由于代码适用于 linux,我相信问题出在 videoio 后端。您能否在 opencv 支持的 Windows 上建议一些其他后端或 v4l 模拟。