我在google或stackoverflow上查看其他问题,他们正在讨论脚本中运行cv2.imshow,但我的代码运行在jupyter笔记本中。
这是我的配置:
ubuntu 16.4x64
python 3.5版
opencv 3.1.0
我开始做一个笔记本:这是我放在笔记本上的代码:
%pylab notebook
import cv2
cvim2disp = cv2.imread('data/home.jpg')
cv2.imshow('HelloWorld', cvim2disp)
cv2.waitKey() #image will not show until this is called
cv2.destroyWindow('HelloWorld') #make sure window closes cleanly
当我执行这些代码时。图像将显示在一个弹出窗口中,但我无法通过单击右上角的x关闭此窗口,稍后,系统将提示我窗口没有响应,它将给我两个选择:“等待”,“提前退出”。如果我点击wait,那么它稍后会显示相同的提示,如果我点击fore quit,那么jupyter笔记本内核就会死掉,我必须重新开始。
我到处搜索,很多解决方案建议我应该添加这个代码
cv2.startWindowThread()
在imshow
之前,但情况变得更糟,内核将永远挂起!。
任何人都知道发生了什么。
我也遇到了类似的问题,但在Jupyter笔记本中使用
cv2.imshow()
无法找到一个好的解决方案。我跟随this stackoverflow answer,只是使用matplotlib来显示图像。很简单。你需要了解发生了什么。
waitKey(0)
方法无限等待输入。当您看到相应图像的帧时,不要尝试使用右上角的“关闭”关闭图像。而是按一些键。
waitkey
方法将把它作为输入,并返回一个值。此外,您还可以检查按了哪个键来关闭框架。此外,
waitKey(33)
将使帧保持活动状态33毫秒,然后自动关闭它。destroyWindow()
会破坏当前帧。destroyAllWindows()
将销毁当前存在的所有帧。这会解决的。
相关问题 更多 >
编程相关推荐