cv2.waitKey(time_ms) : 表示阻塞等待 n 毫秒,在等待过程中,若按下某键,则停止等待,继续运行,且返回该键值的 ASCII 码。
1 2 3 4 5
| def test(): lena = cv2.imread('1.jpg') cv2.imshow('image', lena) cv2.waitKey(0) print "I'm done"
|
程序不加阻塞的直接执行
1 2 3 4 5 6
| def test(): lena = cv2.imread('1.jpg') cv2.imshow('image', lena) keycode = cv2.waitKey(1000) print keycode print "I'm done"
|
程序运行到第 4 行,等待 1 s 后打印输出
若执行过程中你按下了某个键,则会立刻输出:
这里的 97 是你按下的键值对应的 ASCII 码
1 2 3 4 5 6 7 8 9 10 11 12 13
| def test(): cap = cv2.VideoCapture(0) i = 0 while True: ret, image_np = cap.read() cv2.imshow('object detection', image_np) keyCode = cv2.waitKey(1000) if keyCode & 0xFF == ord('q'): print('destroy!') cv2.destroyAllWindows() break i += 1 print('run: ', i)
|
此程序执行后,会打开摄像头,直到按下 q
键时,程序才停止。且摄像头读取的周期为 1s 。
keyCode & 0xFF
的作用这里是取 keyCode 的低八位。