我正在使用Opencv 3和python 3.6进行项目工作。我想一次设置多个摄像头,以便立即查看所有摄像机的视频。我想用它进行面部识别。但是没有好办法做到这一点。这是我遵循的一个链接,但没有任何反应:Reading from two cameras in OpenCV at once
我也尝试过这篇博文,但它只能从视频中一次捕获一个图像,无法显示实时视频。 https://www.pyimagesearch.com/2016/01/18/multiple-cameras-with-the-raspberry-pi-and-opencv/
以前人们用C ++做过这个,但是使用python对我来说似乎很难。
下面的代码工作,我已经测试过,所以如果你使用两个摄像头1一个网络摄像头,另一个是usb凸轮,(如果两个都是usb cam,调整视频捕获数字)
导入cv2
cap1 = cv2.VideoCapture(0)
cap2 = cv2.VideoCapture(1)
而1:
ret1,img1 = cap1.read()
ret2,img2 = cap2.read()
如果ret1和ret2:
cv2.imshow('img1',img1)
cv2.imshow('img2',img2)
k = cv2.waitKey(100)
if k == 27: #press Esc to exit
break
cap1.release()
cap2.release()
cv2.destroyAllWindows()
我对R_Pi和2个凸轮的经验表明,R_Pi上的GPU是限制的。我使用setup来分配更多GPU内存到512Mb。使用2个凸轮可以减速超过10 fps。此外,USB端口限制了视频流。
一种解决方案是将每个摄像头放在它自己的USB控制器上。我使用4通道PCIe卡做到了这一点。该卡必须为每个端口配备一个单独的控制器。我刚刚完成了一个项目,我从4个ELP USB摄像头拍摄图像,将图像合并为一个,然后将其写入磁盘。我花了几天时间试图让它发挥作用。我找到了两个相机的例子,这些相机可以用我的笔记本电脑和外部相机,但不是两个外部相机。内部摄像头位于与外部端口不同的USB控制器上...