|
刚好我也遇到了这种问题,本质是因为这个板子在不安装任何摄像头的情况下系统里/dev里面就有至少8个video,而opencv默认支持8个也就是支持/dev/video0到video7,这个时候你插usb摄像头会被系统识别为大于7的video x 然后cv2.VideoCapture(x)就会报错为index x is not correct! 而 cv2.VideoCapture(x)0<=x<=7又会报错 Unable to stop the stream:Invalid argument,因为0-7是无中生有的摄像头。
有两种解决方法:
一, 修改源码再编译安装,opencv源码的./modules/videoio/src/cap_v4l.cpp文件中,明确定义了opencv默认只支持最多8个摄像头的读取
把该cpp文件里面定义的MAX_CAMERAS的8改为12或者更多后再编译安装
不想费事可以用第二种方法:
二,使用udev规则,把外接的usb摄像头映射到video0和1上
具体参见:https://blog.csdn.net/limuyuanrs/article/details/108088644 |
|