我正在使用python opencv,我无法在Windows 10上禁用自动对焦,自动曝光等。
我正在使用Logitech BRIO 4k网络摄像头。
一切都在Ubuntu 18.04上完美运行。使用v4l后端的Opencv 3.4.4,我能够成功设置焦点,曝光,视频分辨率。但是,相同的代码不适用于Windows
在Windows上我试过:
在上面的每种情况下(除了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模拟吗?
忘了提,我正在使用虚拟盒在Windows上运行。如果我在Windows机器上直接运行相同的代码一切正常))必须是虚拟框的一些问题
唯一的区别是焦点值似乎在0-255范围内。但是在我上面提供的示例代码中,它们在0-100范围内