Google Colab调用cv2.imshow奔溃

Posted lfri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Colab调用cv2.imshow奔溃相关的知识,希望对你有一定的参考价值。

当我在Google Colab运行如下代码

import cv2
import numpy as np
image = cv2.imread(a.jpg)
cv2.imshow(original_image, image)

竟然会使会话奔溃,然后内核重启,系统日志如下:

技术图片

警告信息是“cannot connect to X server”,那什么是X server呢?

X server是Linux系统上提供图形用户界面的服务程序。当客户端主机Client访问服务器Server上的图形程序时,需要Server对该Client赋能访问图形程序的权限。

 

这下就明白了,由于OpenCV采用highgui,而命令行下无法产生图形界面。

这个问题对于命令行下的Linux同样存在。

一个简单的方法就是避开cv2.imshow函数不用。但有时候很想把图片打出来,可以用matplotlib代替

import cv2
from matplotlib import pyplot as plt
import numpy as np

original_image = a.jpg
image = cv2.imread(original_image)
show_img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.imshow(show_img)
plt.show()

这样打印的图片像表格,勉强吧!

 

发现更好的方法!!

可以使用Pillow,Pillow也是Python里的图像处理库(PIL:Python Image Library)

from PIL import Image
import cv2                
import matplotlib.pyplot as plt                        
%matplotlib inline

img_path = a.jpg
img = Image.open(img_path)  
print(img.mode) 
#RGB  
img

完美以图片展示。

 

参考链接:

1、https://www.jianshu.com/p/74b902950c4b

2、http://www.th7.cn/Program/Python/201707/1206424.shtml

3、https://zhuanlan.zhihu.com/p/43268790

 

以上是关于Google Colab调用cv2.imshow奔溃的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Jupyter 笔记本中调用 cv2.imshow() 时出现无响应窗口

plt.show 和 cv2.imshow 的区别?

Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

为啥我用pycharm的cv2.imshow会报错,一直没有解决,要自闭了?

plt.imshow与cv2.imshow显示颜色问题

cv2.imshow() 在 Mac 上崩溃