我正在尝试建立一个神经网络来同时在多个摄像头上工作(或者至少……)。首先,我尝试使用OpenCV和python线程模块同时对2个摄像头进行流式处理。在
我想出了这个密码:
import cv2
import threading
import queue
def multistream(stream, q):
ret, frame = stream.read()
q.put(frame)
if __name__ == "__main__":
camlink1 = "rtsp://......link1"
camlink2 = "rtsp://......link2"
stream1 = cv2.VideoCapture(camlink1)
stream2 = cv2.VideoCapture(camlink2)
print("stream is opened")
while True:
q = queue.Queue()
cam1 = threading.Thread(target=multistream, args=(stream1, q))
cam2 = threading.Thread(target=multistream, args=(stream2, q))
cam1.start()
cam2.start()
cam1.join()
cam2.join()
while not q.empty():
cv2.imshow("video", q.get())
问题是cv2.imshow显示的是一个空窗口而不是框架,而如果我添加到代码print(q.get())
中,它会打印生成框架的mats,因此框架从multistream函数正确返回到主线程。正确的解决方法是什么?在
目前没有回答
相关问题 更多 >
编程相关推荐