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奔溃的更多相关文章
- address2line 定位 Android c++奔溃位置
Android调用c++出现奔溃,崩溃信息为如下: 10-11 15:15:13.541 D/AudioMTKStreamOut( 139): write(), buffer = 0x42bd9390 ...
- Android jni c/c++线程通过CallVoidMethod调用java函数出现奔溃问题
最近在移植网络摄像机里的p2p库到android平台,需要用到jni,最近在c线程了调用java函数的时候 出现一个问题,假如在同一个线程调用java函数是没问题的,但在一个c线程了调用java函数就 ...
- 优秀开源项目之四:CrashRptProbe,查询程序奔溃的利器
1.背景: 在开发人员进行项目开发和调试代码时,有一个非常困扰的问题,就是程序在调试运行过程中会莫名其妙地异常退出.由于导致异常退出的问题非常多,因此在面对这种无任何提示的异常退出时,开发人员会非常无 ...
- MySQL · 引擎特性 · InnoDB奔溃恢复
前言 数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的奔溃恢复机制来保证.本 ...
- Java之JVM调优案例分析与实战(5) - 服务器JVM进程奔溃
环境:一个基于B/S的MIS系统,硬件为2个CPU.8GB内存的HP系统,服务器是WebLogic9.2(就是第二个案例中的那个系统).正常运行一段时间后,最近发现在运行期间频繁出现集群节点的虚拟机进 ...
- 在Google Colab中导入一个本地模块或.py文件
模块与单个.py文件的区别,模块中含有__init__.py文件,其中函数调用使用的是相对路径,如果使用导入.py文件的方法在Google Colab中导入模块 会报错:Attempted relat ...
- Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()
为什么使用Python-OpenCV? 虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是弱小很多.跟很多开源软件一样OpenCV 也提供了完善的pytho ...
- Google Colab的一些注意事项
1.执行命令行前面加! 当我们使用python解释器时,我们需要不停地在命令行和IDE 之间切换,当我们需要使用命令行工具时.不过,Jupyter Notebook给了我们在notebook中运行sh ...
- Google Colab——用谷歌免费GPU跑你的深度学习代码
Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究.这款工具现在可以免费使用,但是不是永久免费暂时还不确定.Google Col ...
随机推荐
- python数据分析笔记中panda(2)
1 将手机号码分开为运营商,地区和号码段 from pandas import read_csv; df = read_csv("H:\\pythonCode\\4.6\\data.csv& ...
- Number()、parseInt()、parseFloat()的区别:
Number().parseInt().parseFloat()的区别: Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是 ...
- HDU - 2612 Find a way 双起点bfs(路径可重叠:两个队列分别跑)
Find a way Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- sql server 2008 删除某数据库所有表
/* ------sqlserver 2008 删除某数据库所有表-------- */ declare @tname varchar(8000) set @tname='' select @tnam ...
- 一种Unity2D多分辨率屏幕适配方案
http://www.cnblogs.com/flyFreeZn/p/4073655.html 此文将阐述一种简单有效的Unity2D多分辨率屏幕适配方案,该方案适用于基于原生开发的Unity2D游戏 ...
- jzoj5986. 【WC2019模拟2019.1.4】立体几何题 (权值线段树)
传送门 题面 题解 不难看出每个点的大小为行列限制中较小的那一个(因为数据保证有解) 对于行的每个限制,能取到的个数是列里限制大于等于它的数的个数,同理,对于列是行里大于它的个数(这里没有等于,为了避 ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie的优缺点
Cookie技术存储的数据类型只能是字符串,且不支持中文 ● 保存的数据大小有限,4kb ● 太依赖用户浏览器的设置,用户可以禁用Cookie! ● 数据存储在客户端的文本文件中,不安全,不建议 ...
- 使用JRegex抽取网页信息
当网络爬虫将网页下载到磁盘上以后,需要对这些网页中的内容进行抽取,为索引做准备.一个网页中的数据大部分是HTML标签,索引肯定不会去索引这些标签.也就是说,这种信息是没有用处的信息,需要在抽取过程中过 ...
- JMETER通过java代码通过代码/ JMETER API实现示例进行负载测试
本教程试图解释Jmeter的基本设计,功能和用法,Jmeter是用于在应用程序上执行负载测试的优秀工具.通过使用jmeter GUI,我们可以根据我们的要求为请求创建测试样本并执行具有多个用户负载的样 ...
- HDU-1029-Ignatius aned the Princess IV
链接:https://vjudge.net/problem/HDU-1029#author=0 题意: 给你n个数字,请你找出出现至少(n+1)/2次的数字. 思路: dp,hash超时了,不知道是不 ...