繁体   English   中英

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

[英]Is it possible to disable autofocus of a webcam on Windows 10?

我正在使用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确认我使用了特定的后端

相同主题的问题没有答案在Windows中使用opencv-python禁用网络摄像头的自动对焦

cap.set( cv.CAP_PROP_SETTINGS, 1 ); 在Windows和Linux上均不起作用

由于代码可以在linux上运行,因此我认为问题出在videoio后端。 您可以在opencv支持的Windows上建议其他后端或v4l模拟吗?

忘了提,我当时使用虚拟盒在Windows上运行。 如果我直接在Windows机器上运行相同的代码,则一切正常))虚拟框一定存在问题

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM