【问题标题】:Read webcam in python with multiprocessing使用多处理在 python 中读取网络摄像头
【发布时间】:2020-05-14 14:06:32
【问题描述】:

我有一个简单的读取网络摄像头的程序,但是读取结果很慢,所以我降低了从网络摄像头读取图像的质量,但是读取仍然很慢,所以我尝试使用多处理,所以我测试一个简单的程序,看看我的多处理程序是否运行正确。但我不知道为什么无法读取变量“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】:

实际上,上限从未被声明过。尝试在您的导入语句之后插入这一行:

cap = None

这将解决丢失的上限。当然,这会导致代码中出现其他问题,但这是一个说明点。

祝你好运

安德烈亚斯

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 2020-10-15
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    相关资源
    最近更新 更多