首页 > 解决方案 > 为什么 cv.waitKey(0) 直到按下键才暂停执行?

问题描述

我原以为cv.waitKey会暂停执行,直到按下一个键,但它似乎并没有这样做。当我运行以下代码时:

import cv2 as cv

print("Start")
k = cv.waitKey(0)
print("Stop")

它在完成执行之前不会等待按键被按下。是否必须实际显示图像才能发生延迟?是否有一些关于事件循环创建的事情(很多事情之一)我不明白?

(注意:我不只是在寻找充当“输入”行的东西。我目前正在将 OpenCV 与眼动仪一起使用,并试图弄清楚为什么 OpenCV 在我运行时似乎会阻止眼动仪的回调函数陷入这种误解。)

标签: opencv3.0opencv-python

解决方案


您需要创建一个 HighGUI 窗口并处于活动状态(焦点):

https://docs.opencv.org/3.4/d7/dfc/group__highgui.html#ga5628525ad33f52eab17feebcfba38bd7

因此以下内容将起作用(使用 imagefile.png 磁盘上的一些图像):

import cv2 as cv

print("Start")
image=cv.imread("imagefile.png")
cv.imshow("test",image)
k = cv.waitKey(0)
print("Stop")

推荐阅读