如何使用OpenCV从多个摄像头捕获实时视频?

时间:2018-02-15 18:42:38

标签: python opencv image-processing video-streaming video-capture

我正在使用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来说这对我来说似乎很难。

3 个答案:

答案 0 :(得分:0)

下面的代码有效,我已经测试了,所以如果你使用两个摄像头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()

答案 1 :(得分:0)

我对R_Pi和2个摄像头的经验表明,限制是R_Pi上的GPU。 我使用设置将更多的GPU内存分配给512Mb。 使用2个凸轮时,其速度会超过10 fps。 而且,USB端口限制了视频流。

答案 2 :(得分:0)

一种解决方案是将每个摄像机放在其自己的USB控制器上。我是使用4通道PCIe卡完成此操作的。该卡的每个端口必须有一个单独的控制器。我刚刚完成一个项目,在该项目中我从4个ELP USB摄像机捕捉图像,将图像合并为一个,然后将其写入磁盘。我花了几天的时间试图使其工作。我找到了两个与笔记本电脑相机和一个外接相机搭配使用但没有两个外接相机搭配使用的相机的示例。内置摄像头位于与外部端口不同的USB控制器上...