我已经买了两个天才脸部摄像头 1000x相机并尝试设置立体相机,v4l2-ctl
相机的输出如下:
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUYV 4:2:2
Index : 1
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : Motion-JPEG
如你所见,MJPG 像素格式是受支持的,并且这和这这种像素格式是必需的,但当我尝试从两个网络摄像头捕获视频时,VIDIOC_STREAMON: No space left on device
第二个摄像头仍然出现错误,我只能获得 320x240 分辨率的立体视频!我尝试了以下两个方法,但对我不起作用。
v4l2-ctl --set-fmt-video=width=640,height=480,pixelformat=1
设置
FOURCC
为 MJPG 会导致HIGHGUI ERROR: V4L: Property <unknown property string>(6) not supported by device
错误。# setting the `FOURCC` will cause the # `HIGHGUI ERROR: V4L: Property <unknown property string>(6) not supported by device` for p in ports: self.caps.append(cv2.VideoCapture(p)) self.caps[-1].set(cv2.cv.CV_CAP_PROP_FOURCC('M','J','P','G'));
我该怎么做才能以相对合适的分辨率获得正确的结果?
PS:我的所有 USB 端口都连接到单个控制器!
答案1
您是否尝试过使用和从源代码构建-D WITH_V4L=ON
OpenCV -D WITH_LIBV4L=ON
?