使用 imshow() 时图像未在 Google Colab 中显示
Posted
技术标签:
【中文标题】使用 imshow() 时图像未在 Google Colab 中显示【英文标题】:Image is not displaying in Google Colab while using imshow() 【发布时间】:2019-08-12 19:02:39 【问题描述】:我正在开发一个需要 OpenCV 函数来绘制图像的项目。 我正在尝试在 Google Colab 中使用以下代码显示图像。但是输出中没有显示任何内容。有人可以帮我解决这个问题吗?
%pylab notebook
import cv2
testim = imread('butterfly.jpg')
figure()
imshow(testim)
plt.show()
截图:
Link to my Colab Notebook
【问题讨论】:
找到一种解决方法。我们可以在代码中使用%matplotlib inline
来使用imshow。在 In[28] 中用作示例 - Colab notebook git
【参考方案1】:
从 google.colab.patches 导入 cv2_imshow
image = cv2.imread("image.png")
# “image.png”是图片路径。
cv2_imshow(图像)
https://i.stack.imgur.com/53YPm.png
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 另外,您发布的图片与原始问题无关。【参考方案2】:cv2.imshow()
在colab中不好用,可以用matplotlib
来显示。
import matplotlib.image as mpimg
from matplotlib.pyplot import imshow
%matplotlib inline
testim = mpimg.imread('butterfly.jpg')
imshow(testim)
或者你可以做colab自己的cv2_imshow
版本
from google.colab.patches import cv2_imshow
cv2_imshow('butterfly.jpg')
【讨论】:
【参考方案3】:如果您尝试使用 cv2.imshow()
显示图像而不是导入 from google.colab.patches import cv2_imshow
并使用 cv2_imshow(<image>)
显示图像,Google colab 会崩溃
【讨论】:
像魅力一样工作。它只需要一个参数,文件本身。【参考方案4】:不要使用cv2.imshow()
试试这个:
-
将导入更改为
from google.colab.patches import cv2_imshow
将cv2.imshow()
替换为cv2_imshow()
我试过了,它对我有用。
【讨论】:
【参考方案5】:opencv-python 包中的 cv2.imshow() 和 cv.imshow() 函数与 Jupyter notebook 不兼容;见https://github.com/jupyter/notebook/issues/3935。
作为替代,您可以使用以下功能:
from google.colab.patches import cv2_imshow
例如,我们在这里下载并显示 Colab 徽标的 PNG 图像:
!curl -o logo.png https://colab.research.google.com/img/colab_favicon_256px.png
import cv2
img = cv2.imread('logo.png', cv2.IMREAD_UNCHANGED)
cv2_imshow(img)
致谢:Google Colab 中的代码片段
【讨论】:
【参考方案6】:找到一种解决方法。我们可以在代码中使用%matplotlib inline
来使用imshow。在 In[28] 中用作示例 - link
【讨论】:
这是 matplotlib 的 imshow,而不是 opencv 【参考方案7】:imshow
需要 X 服务器,这在 Web 浏览器中不可用。
改为使用IPython.display.Image
库。这是一个例子:
https://colab.research.google.com/drive/1jWHKR6rhhyZtUulttBD6Pxd_AJhgtVaV
【讨论】:
嗨 Bob,我需要使用imshow()
来绘制具有不同 OpenCV 函数的图像。有什么解决方法可以在 Colab 中使用它吗?
我建议提出一个明确的问题,描述需要imshow
的精确场景。启动 X 服务器并从其渲染的输出中通过管道传输快照将是一件非常痛苦的事情,但它是可行的。我怀疑值得考虑替代方案。
找到一种解决方法。我们可以在代码中使用%matplotlib inline
来使用imshow。在 In[28] 中用作示例 - link以上是关于使用 imshow() 时图像未在 Google Colab 中显示的主要内容,如果未能解决你的问题,请参考以下文章