opencv3.0 - 为什么 cv.waitKey(0) 直到按下键才暂停执行?
问题描述
我原以为cv.waitKey
会暂停执行,直到按下一个键,但它似乎并没有这样做。当我运行以下代码时:
import cv2 as cv
print("Start")
k = cv.waitKey(0)
print("Stop")
它在完成执行之前不会等待按键被按下。是否必须实际显示图像才能发生延迟?是否有一些关于事件循环创建的事情(很多事情之一)我不明白?
(注意:我不只是在寻找充当“输入”行的东西。我目前正在将 OpenCV 与眼动仪一起使用,并试图弄清楚为什么 OpenCV 在我运行时似乎会阻止眼动仪的回调函数陷入这种误解。)
解决方案
您需要创建一个 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")
推荐阅读
- python - 在 python 桌面测试中使用 apium 和 selenium 的 if 语句
- css - 在锚链接中包含 CSS 计数器?
- java - 如何在不使用任何库或集合的情况下从数组中删除所有重复元素
- batch-file - 为什么我的批处理变量设置为空格?
- python - 熊猫:无法删除第二列
- reactjs - 在 React 中,如何显示使用数据库中特定项目的数据的页面
- javascript - 我可以使用 getatribute 将样式更改为无吗?
- python - jinja2.exceptions.UndefinedError:“消息”未定义
- c++11 - 在此示例中,让 `std::ostreambuf_iterator` 写入字符串而不是 `std::cout`
- javascript - 带有 SSML 的 SpeechSynthesisUtterance 是童话吗?