📜  从两个摄像头在opencv-at-once中捕获视频-任何(1)

📅  最后修改于: 2023-12-03 15:36:15.911000             🧑  作者: Mango

从两个摄像头在OpenCV同时捕获视频

在某些情况下,您可能需要从多个摄像头捕获视频,例如监视两个不同区域的安全摄像头。在本文中,我们将介绍如何在OpenCV中同时捕获两个摄像头的视频。

步骤
  1. 导入必要的库和模块
import cv2
  1. 创建两个VideoCapture对象
cap1 = cv2.VideoCapture(0)
cap2 = cv2.VideoCapture(1)

这将分别创建两个VideoCapture对象,表示编号为0和1的两个摄像头。

  1. 循环读取帧
while True:
    ret1, frame1 = cap1.read()
    ret2, frame2 = cap2.read()
    
    if not ret1 or not ret2:
        break
        
    cv2.imshow('frame1', frame1)
    cv2.imshow('frame2', frame2)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

这会一直循环读取从两个摄像头捕获的帧,并将它们显示在窗口中。如果按下“q”键,则退出循环。

  1. 释放资源
cap1.release()
cap2.release()
cv2.destroyAllWindows()

必须在完成所有操作后释放资源。

完整代码
import cv2

cap1 = cv2.VideoCapture(0)
cap2 = cv2.VideoCapture(1)

while True:
    ret1, frame1 = cap1.read()
    ret2, frame2 = cap2.read()
    
    if not ret1 or not ret2:
        break
        
    cv2.imshow('frame1', frame1)
    cv2.imshow('frame2', frame2)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
        
cap1.release()
cap2.release()
cv2.destroyAllWindows()
结论

在本文中,我们学习了如何在OpenCV中从两个摄像头同时捕获视频。这个技术可用于不同的用例,例如机器人视觉,监控系统等。