【问题标题】:Jupyter kernel crashes when trying to display image with OpenCV尝试使用 OpenCV 显示图像时,Jupyter 内核崩溃
【发布时间】:2020-01-25 18:08:13
【问题描述】:

我正在尝试从here 运行示例

import cv2

def viewImage(image):
    cv2.namedWindow('Display', cv2.WINDOW_NORMAL)
    cv2.imshow('Display', image)
    print('test')
    cv2.waitKey(0)
    cv2.destroyAllWindows()
def grayscale_17_levels (image):
    high = 255
    while(1):  
        low = high - 15
        col_to_be_changed_low = np.array([low])
        col_to_be_changed_high = np.array([high])
        curr_mask = cv2.inRange(gray, col_to_be_changed_low,col_to_be_changed_high)
        gray[curr_mask > 0] = (high)
        high -= 15
        if(low == 0 ):
            break

image = cv2.imread('ombre_circle.png')
viewImage(image)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
grayscale_17_levels(gray)
viewImage(gray)

每当我运行代码时,我都会收到错误:

内核重启
main.ipynb 的内核似乎已经死了。它会自动重启。

当我注释掉这些行时:

#cv2.namedWindow('Display', cv2.WINDOW_NORMAL)
#cv2.imshow('Display', image)

核心运行并打印出“测试”,我没有收到错误。

我正在使用:

  • Ubuntu-server 18.04
  • Jupyter 实验室 1.1.3
  • opencv-python 4.1.1.26

我在不在本地环境中的服务器上运行它

我通过使用 Matplotlib 显示这个问题找到了解决方法:

def viewImage(image):
    plt.subplot(122)
    plt.title("RGB")
    plt.imshow(image)
    plt.show()

image = cv2.imread('img/ombre_circle.png')
viewImage(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
grayscale_17_levels(gray)
viewImage3(cv2.cvtColor(gray, cv2.COLOR_GRAY2RGB))

但是这并不能解决问题并且需要额外的转换/代码,所以我想找到一个解决方案来用 opencv 显示。

X11 转发已启用。

我尝试使用 -Y 和 -C 标志 (via this question) 打开 SSH 连接,但这并不能解决问题。

任何想法可能是什么问题?

【问题讨论】:

    标签: python opencv jupyter-notebook jupyter-lab


    【解决方案1】:

    IPython Github Issue

    我从讨论中了解到,这是来自正在运行的 openCV 代码的 C 级链接或运行时错误。 我遇到了同样的问题,使用 matplotlib SO jupyternb crash解决了

    【讨论】:

      【解决方案2】:

      image=cv2.imread("文件")
      cv2.imshow("测试文件", 图片)
      cv2.waitKey(0)
      cv2.destroyAllWindows()

      【讨论】:

        【解决方案3】:

        我在加载大型 tiff 文件时遇到了类似的问题。相同的代码适用于小型 tiff 文件。您可以查看this 的帖子以压缩您的图像然后显示。

        【讨论】:

          【解决方案4】:

          cv2.imshow() 会导致 Jupyter 会话 崩溃:this post of the issue

          作为替代,请考虑使用 from google.colab.patches import cv2_imshow 在 Google Colab 上。

          【讨论】:

            猜你喜欢
            • 2019-08-13
            • 2018-06-16
            • 2016-01-17
            • 2017-09-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-14
            • 2016-02-24
            相关资源
            最近更新 更多