我检查其他问题在谷歌或stackoverflow,他们正在谈论脚本中运行cv2.imshow,但我的代码运行在jupyter笔记本。opencv.imshow会导致jupyter笔记本崩溃
这里是我的配置:
Ubuntu的16.4x64
蟒蛇3.5
的OpenCV 3.1.0
我开始jupyter笔记本:这里是我把它放在笔记本上的代码:
%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关闭此窗口,稍后,系统会提示我该窗口没有响应,它会给我2个选择:“等待“,”退出“。如果我碰到等待,那么稍后它会显示相同的提示,如果我点击“退出”,那么jupyter笔记本内核就会死机,我必须重新开始。
我Google的中心,许多解决方案建议我应该加入这样的代码
cv2.startWindowThread()
imshow
过,但情况变得更糟,内核永远挂!任何人都有一些想法是怎么回事。
'cv.imshow'并没有真正意义的客户机/服务器环境下,如Jupyter。你需要一些东西来显示图像作为笔记本的一部分(在客户端),而不是在服务器端运行GUI窗口 - 当客户端和服务器在同一台机器上时,这可能会“起作用”,但就是这样。 |你已经使用matplotlib中的'imshow'函数(不像你似乎认为的那样numpy),所以坚持这一点(记住它使用RGB而不是颜色平面的BGR顺序)。 –