我有一个用于读取网络摄像头的简单程序,但是读取结果非常慢,因此我降低了从网络摄像头读取图像的质量,但是读取仍然很慢,因此我尝试使用多处理功能,因此我正在测试一个简单的程序,以确定我的多处理程序是否正确运行。但我不知道为什么不能读取变量“ 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 = None
这将解决丢失的封顶。当然,这会导致代码中出现其他问题,但这是一个切入点。
祝你好运
安德里亚斯