项目中需要使用Opencv打开双目摄像头,并获取彩色和红外的照片。
情形:
1. 单独打开任何一个摄像头,正常显示;
2. 同时打开两个摄像头,最后一个摄像头打开时会报如下错误
VIDIOC_STREAMON: 设备上没有空间
VIDIOC_QBUF: 无效的参数
经询问麒麟厂商,回应麒麟系统每次打开摄像头,都会默认分配大量带宽(ubuntu不会),所以2个摄像头就会报上面带宽不足的错误。
解决方法如下:
VideoCapture设置为视频流格式MJPG,MJPG格式可以高速输出高分辨率图像
set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G'));//视频流格式