【发布时间】:2020-09-25 09:44:54
【问题描述】:
看起来很简单,但我无法让它工作,也找不到关于这个特定问题的任何问题(如果有,请在 cmets 中指出)。
我正在显示一个图像并希望窗口在特定键上关闭,但奇怪的是,任何键都会导致它关闭。
这是我的简单测试代码:
img = cv2.imread("MyImage.png")
cv2.imshow('My Image', img)
k = cv2.waitKey(0) & 0xFF
print(k)
if k == 27: # close on ESC key
cv2.destroyAllWindows()
(根据here所说的话)
无论我按什么键,都会显示键码(ESC 为 27,SPACE 为 32,...)并且窗口关闭。
主要问题:永远无法到达if 子句(我通过将print(k) 放入其中进行检查,但没有打印任何内容)。按键后,程序只是停止运行,并且不会检查键码。
(我在 macOS Catalina 上,使用 Python 3.8)
那么,我实际上如何让它等待特定的键?
【问题讨论】:
-
如果显示的代码就是一切,您的程序结束,因此所有窗口都将关闭。例如,围绕关键读数放置一些循环。
-
我刚刚在我的电脑上试了一下,效果很好:/
-
@HansHirse,你完全正确!我用
waitKey(0)添加了一个无限循环,它运行得很好!虽然,我很惊讶为什么上面的代码似乎对某些人有用? (也可以发表您的评论作为答案,所以我接受)
标签: python image opencv window