我用OpenCV运行了这个简单的代码来显示一张图片。图片显示在一个新的窗口中。当我关闭窗口时,spyder中的控制台卡住了,看起来像是还在运行或等待。它的接缝像waitKey()无法正常工作。我可以继续的唯一方法是重新启动控制台。当我使用数字(例如waitKey)时(1000)程序工作正常,图片显示,窗口关闭,程序按预期完成。我试着从提示符运行Anaconda shell中的代码,我遇到了同样的问题我正在使用Python 3. 7. 5非常感谢!
import cv2
cv2.imshow("title", img)
cv2.waitKey()
cv2.destroyAllWindows()
3条答案
按热度按时间elcex8rz1#
在按下一个键之前,将焦点放在带有图像的图形窗口上。
iih3973s2#
cv2.waitKey()
是一个函数,它休眠一定的毫秒数,以保持cv2.imshow()
打开时窗口仍显示。正确用法是以下两种情况之一:
cv2.waitKey(0)
:休眠,直到用户按下一个键;cv2.waitKey(5)
:休眠5 ms,这里的数字5
可以替换为任何大于零的值,表示函数必须使用多少毫秒来进行休眠;调用不带任何值的
cv2.waitKey()
可能会触发意外行为。gojuced73#
我也遇到了同样的问题。我的Jupyter每次运行后都需要重新启动内核。我把所有东西都转移到了终端,然后执行了“python3my.py”。程序又卡住了,再也没有回到Linux提示符。键盘中断不起作用。我被迫关闭终端窗口,然后重新打开它(可能类似于Jupyter中的重新启动内核)。Windows 11没有这样的问题