【发布时间】: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()
【问题讨论】:
-
当你尝试this basic example时,你仍然遇到同样的问题吗?
-
刚才,我之前做的实际程序涉及到图像操作,从缩小图像的大小和质量开始,然后改变图像的透视,然后用hsv检测3种颜色,然后确定读取结果的坐标,然后显示程序的结果,但是结果太慢了,然后我得到朋友的建议,在网络摄像头的图像更新部分使用多处理。因此,为了确保多处理程序正常工作,我首先制作了一个简单的程序,通过多处理读取图像
-
谢谢,很有帮助,
标签: python opencv python-multiprocessing video-capture