首页 > 解决方案 > 无法使用 python cv2 在 Windows 上同时从两台摄像机(通过一个集线器)捕获帧

问题描述

当尝试同时从两台摄像机(使用单个 USB 集线器)捕获帧时,只有一台摄像机可以返回有效帧,另一台将返回无。当使用一台外置摄像头和笔记本电脑的内置摄像头时,它工作正常。

完全相同的代码和硬件在 Ubuntu 系统上运行良好。所以可能是Windows或其驱动程序有问题,或者使用集线器有问题(可能是带宽问题,但不是电源问题,因为集线器有外部电源)

import cv2
import numpy as np
from multiprocessing import Process
def show(camera_id):
    cap = cv2.VideoCapture(camera_id)
    cap.set(3,640)
    cap.set(4,480)
    cap.set(cv2.CAP_PROP_FPS, 30)
    while True:
        ret, frame = cap.read()
        cv2.imshow('test', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    cap.release()
    cv2.destroyAllWindows()

if __name__ == '__main__':
    p1 = Process(target=show, args=(0,))
    p2 = Process(target=show, args=(1,))
    p1.start()
    p2.start()

标签: pythoncameracv2

解决方案


推荐阅读