是否可以在Windows 10上禁用网络摄像头的自动对焦?

时间:2019-04-09 10:40:07

标签: python windows opencv logitech v4l

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

我正在使用Logitech 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存储库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类似物。

1 个答案:

答案 0 :(得分:0)

忘了提及,我当时使用的是虚拟盒子,可以在Windows上运行。 如果我直接在Windows计算机上运行相同的代码,一切正常)) 虚拟盒子一定有问题

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