我有一个简单的读取网络摄像头的程序,但是读取结果很慢,所以我降低了从网络摄像头读取图像的质量,但读取仍然很慢,所以我尝试使用多处理,所以我测试一个简单的程序,看看我的多处理程序是否正常运行。但我不知道为什么无法读取变量“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()
最佳答案
实际上,cap 从未声明过。尝试在您的导入语句之后插入此行:
cap = None
这将解决丢失的上限。当然,这会导致您的代码出现其他问题,但这是一个陈述点。
祝你好运
安德烈亚斯
关于python - 使用多处理在 python 中读取网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59960938/