zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    学习进度14
    学习进度13
    学习进度12
    2020.12.01 表单元素
    2020.12.02 表单属性
    2020.12.04
    2020.12.06
    2020.12.07
    2020.12.08 URL
    2020.12.09
  • 原文地址:https://www.cnblogs.com/lfri/p/10498876.html
Copyright © 2011-2022 走看看