我检查了google或堆栈溢出的其他问题,他们说的是在脚本中运行cv2.imshow,但是我的代码运行在jupyter笔记本上。
这是我的配置:
我启动了一个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来关闭此窗口,稍后,系统会提示我窗口没有响应,它将给我两个选择:“等待”,“前退出”。如果我点击等待,那么它将显示相同的提示稍后,如果我点击‘前退出’,那么jupyter笔记本内核死亡,我必须重新开始。
我到处搜索,许多解决方案建议我应该添加这段代码。
cv2.startWindowThread()
在imshow
之前,但是情况变得更糟了,内核永远挂起!任何人都知道发生了什么事。
这是我错误的照片:
发布于 2022-04-22 13:09:20
我刚刚开发了一个与cv2.imshow
完全类似的库,它可以在Jupyter
和colab
中使用。它可以更新窗口。因此,你可以很容易地看到里面的视频。它使用HTML画布并对浏览器友好:)
安装:
pip install opencv_jupyter_ui
用法:
这是cv2.imshow
的替代木星。您只需将cv2.imshow
替换为jcv2.imshow
即可。它会在木星上工作。
第一:
请导入图书馆
import opencv_jupyter_ui as jcv2
然后:
变更cv2.imshow
->jcv2.imshow
它还支持jcv2.waitKey(100)
和jcv2.destroyAllWindows()
。在没有木星的情况下,它会倒退到原来的cv2功能。为了更改默认键,可以使用jcv2.setKeys(['a','b','esc'])
。请按文档查询更多信息
https://stackoverflow.com/questions/46236180
复制相似问题