我试图借助线程从网络摄像头捕获帧,然后通过队列将其返回。运行代码时,我得到的返回类型为np.array,但显示时得到的是回调警告,而不是输出。
import cv2
cap = cv2.VideoCapture(0)
import queue
import threading
def capture(out_queue):
while(True):
frame = cap.read()[1]
cv2.imshow('window', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
out_queue.put(frame)
break
my_queue_1 = queue.Queue()
t1 = threading.Thread(target=capture, args=(my_queue_1,))
t1.start()
t1.join()
ret1 = my_queue_1.get()
print(type(ret1))
cv2.imshow('returned', ret1)
cv2.destroyAllWindows()
cap.release()
我得到的类型为类'numpy.ndarray'& [WARN:0]终止异步回调
答案 0 :(得分:0)
编辑:忘记包含cv2.waitkey()。问题解决了