我正试图用cv2库在我的木星笔记本中用cv2.imshow(img)
显示图像,它显示得如期而至,但我不能使用或不知道如何使用cv2.waitKey(0)
,因此单元格将不会停止执行。
cv2.waitKey(0)
在脚本中工作,但在笔记本中不起作用。
这里有一个片段:
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
如何在不重新启动整个内核的情况下停止执行单元格?
发布于 2015-09-30 08:52:44
因此,感谢@Micka,以下是解决方案:
你必须先写cv2.startWindowThread()
,这里解释道。
发布于 2021-05-17 13:05:25
我发现primoz
的答案非常有用。下面是一个函数的代码,它从指定的路径读取图像,绘制图像,等待任何输入关闭窗口并返回图像对象。
import cv2
def cv2_imshow(path, title):
"""
function:
- reads image from `path`,
- shows image in a separate window,
- waits for any key to close the window.
return: image object
"""
img = cv2.imread(path)
cv2.startWindowThread()
cv2.imshow(title, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
return img
使用图像路径和标题调用函数:
img_raw = cv2_imshow(path = r'img\example\test.png', title = "raw image")
发布于 2022-07-18 10:30:29
我刚刚开发了一个库,以方便在木星中的opencv功能。我在jupyter中使用按钮来模拟waitKey,它在jupyer中显示了图像。文档
安装
pip install opencv_jupyter_ui
用法
只需将cv2更改为jcv2即可。
import opencv_jupyter_ui as jcv2
...
jcv2.imshow(img,title)
if jcv2.waitKey(1000)==ord('q'):
break
jcv2.destroyAllWindows()
https://stackoverflow.com/questions/32861410
复制相似问题