我正在使用python opencv,无法在windows10上禁用自动对焦、自动曝光等功能。在
使用4ko网络摄像头。在
在Ubuntu18.04上一切正常。通过使用v4l后端的opencv3.4.4,我能够成功地设置焦点、曝光、视频分辨率。但是同样的代码在windows上不起作用
在windows上我尝试过:
Python的非官方预构建OpenCV包:OpenCV contrib Pythonhttps://pypi.org/project/opencv-contrib-python/
使用MSMF、VFW、DSHOW后端从opencv3.4.3源代码构建。 使用VFW,我根本无法打开视频捕获
使用MSMF、DSHOW后端的opencv 4.1源代码构建
在以上每种情况下(除了VFW后端),我可以使用opencv功能,从网络摄像头读取和显示帧,但不能禁用自动对焦。在
我从官方opencvgithub repohttps://github.com/opencv/opencv/blob/master/samples/python/video_v4l2.py使用的代码
我像这样创建视频捕获来指定后端VideoCapture(0 + BACKEND_ID)
,后端的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后端。你能推荐一些其他的后端或者是在windows上的v4l模拟版,opencv支持吗。在
忘了提,我是用虚拟机在windows上运行的。 如果我直接在windows机器上运行相同的代码,一切都可以正常工作) 一定是虚拟盒子出了点问题
唯一的区别是焦点值似乎在0-255范围内。但在我上面提供的示例代码中,它们在0-100范围内
相关问题 更多 >
编程相关推荐