Ipython notebook (jupyter)、opencv (cv2) 和绘图?

新手上路,请多包涵

有没有办法在 ipython 笔记本上使用 opencv2 并进行绘图?

我对 python 图像分析还很陌生。我决定使用 notebook 工作流程,在我处理的过程中做出很好的记录,并且使用 matplotlib/pylab 来绘制东西效果很好。

我最初遇到的障碍是如何在笔记本中绘制内容。简单,只需使用魔法:

 %matplotlib inline

后来,我想用交互式绘图执行操作,但在专用窗口中绘图总是会冻结。好吧,我又知道你需要使用魔法了。而不是仅仅导入模块:

 %pylab

现在我已经开始使用 opencv。我现在又回到了同样的问题,我要么想内联绘图,要么根据手头的任务使用专用的交互式窗口。有没有类似的魔法可以使用?还有另一种方法可以使事情正常进行吗?还是我卡住了,只需要返回到从 IDLE 运行程序?

作为旁注:我知道 opencv 已正确安装。首先,因为我在安装或导入 cv2 模块时没有遇到任何错误。其次,因为我可以用 cv2 读取图像,然后用其他东西绘制它们。

原文由 Fire 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 489
2 个回答

这是我的空模板:

 import cv2
import matplotlib.pyplot as plt
import numpy as np
import sys
%matplotlib inline

im = cv2.imread('IMG_FILENAME',0)
h,w = im.shape[:2]
print(im.shape)
plt.imshow(im,cmap='gray')
plt.show()

查看在线示例

原文由 themadmax 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于在 Python 3.5 上运行的 Jupyter notebook,我必须将其修改为:

 import io
import cv2
import numpy as np
from IPython.display import clear_output, Image, display
import PIL.Image

def showarray(a, fmt='jpeg'):
    a = np.uint8(np.clip(a, 0, 255))
    f = io.BytesIO()
    PIL.Image.fromarray(a).save(f, fmt)
    display(Image(data=f.getvalue()))

原文由 Darren Gallagher 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题