有没有办法使用opencv2和ipython笔记本进行绘图?
我是python图像分析的新手.我决定使用笔记本的工作流程来制作漂亮的记录,因为我正在处理它并且使用matplotlib/pylab绘制的东西很好.
我遇到的最初障碍是如何在笔记本中绘制内容.简单,只需使用魔法:
%matplotlib inline
后来,我想用交互式绘图进行操作,但在专用窗口中绘图总是会冻结.好吧,我再次了解到你需要使用魔法.而不是只导入模块:
%pylab
现在我已经开始使用opencv了.我现在回到同样的问题,我要么根据手头的任务绘制内联或使用专用的交互式窗口.是否有类似的魔法使用?还有另一种让事情发挥作用的方法吗?或者我卡住了,需要回到IDLE运行程序?
作为旁注:我知道opencv已正确安装.首先,因为我没有安装或导入cv2模块的错误.其次,因为我可以用cv2读取图像,然后用其他东西绘制它们.
这是我的空模板:
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()
见在线样本
对于在Python 3.5上运行的Jupyter笔记本,我必须将其修改为:
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()))