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

问题描述 投票:2回答:1

我正在使用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. 从源代码opencv 4.1和MSMF,DSHOW后端构建

在上面的每种情况下(除了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
1个回答
0
投票

忘了提,我正在使用虚拟盒在Windows上运行。如果我在Windows机器上直接运行相同的代码一切正常))必须是虚拟框的一些问题

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

© www.soinside.com 2019 - 2024. All rights reserved.