为什么 cv.waitKey(0) 在按下键之前不暂停执行?

Why doesn't cv.waitKey(0) pause execution until key is pressed?

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

import cv2 as cv

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

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

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

您需要一个 HighGUI window 创建并激活(聚焦):

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")