繁体   English   中英

如何使用OpenCV捕获来自多台摄像机的实时视频?

[英]How to use OpenCV to capture live video feed from multiple cameras?

我在项目工作中使用的是Opencv 3和python 3.6。 我想一次设置多台摄像机,以一次查看所有摄像机的视频。 我想使用它进行面部识别。 但是,没有做到这一点的好方法。 这是我跟踪的一个链接,但没有任何反应: 一次从OpenCV中的两个摄像机读取

我也尝试过此博客文章,但是它一次只能从视频中捕获一张图像,而不能显示实时视频。 https://www.pyimagesearch.com/2016/01/18/multiple-cameras-with-the-raspberry-pi-and-opencv/

以前人们使用C ++做到这一点,但是使用python对我来说似乎很困难。

下面的代码有效并且我已经对其进行了测试,因此,如果您使用两个摄像头1(一个摄像头,另一个是USB摄像头),(如果两个摄像头都是USB摄像头,请调整视频捕获编号)

导入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。 我使用设置将更多的GPU内存分配给512Mb。 使用2个凸轮时,其速度会超过10 fps。 而且,USB端口限制了视频流。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM