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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM