使用多处理功能在python中读取网络摄像头

问题描述 投票:0回答:1

我有一个用于读取网络摄像头的简单程序,但是读取结果非常慢,因此我降低了从网络摄像头读取图像的质量,但是读取仍然很慢,因此我尝试使用多处理功能,因此我正在测试一个简单的程序,以确定我的多处理程序是否正确运行。但我不知道为什么不能读取变量“ cap”。而且我不知道如何解决。

这是我的程序:

import cv2
import numpy as np
import multiprocessing

def get():
        global cap
        cap = cv2.VideoCapture(0)
        return cap

def video(cap):
        _, frame = cap.read()
        frame = cv2.flip(frame, 1)
        return frame

if __name__ == "__main__":
        p1 = multiprocessing.Process(target = get)
        p1.start()
        p1.join()

        while True:

                frame = video(cap)

                cv2.imshow("frame", frame)

                key = cv2.waitKey(1)
                if key == 27: #Key 'S'
                        break
 cv2.waitKey(0)
 cv2.destroyAllWindows() 
python opencv python-multiprocessing video-capture
1个回答
0
投票

实际上,从未宣布上限。尝试在导入状态之后插入此行:

cap = None

这将解决丢失的封顶。当然,这会导致代码中出现其他问题,但这是一个切入点。

祝你好运

安德里亚斯

© www.soinside.com 2019 - 2024. All rights reserved.