我在项目工作中使用 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 对我来说似乎很难。
下面的代码有效并且我已经测试过了,所以如果你使用两个摄像头,一个是网络摄像头,另一个是 USB 摄像头,(如果两个都是 USB 摄像头,则调整视频捕获编号)
import cv2
cap1 = cv2.VideoCapture(0)
cap2 = cv2.VideoCapture(1)
while 1:
ret1, img1 = cap1.read()
ret2, img2 = cap2.read()
if ret1 and 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()