Сбой ядра Jupyter при попытке отобразить изображение с помощью OpenCV

Я пытаюсь запустить пример из здесь

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-сервер 18.04
  • Лаборатория Юпитера 1.1.3
  • opencv-питон 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 включена.

Я попытался открыть соединение SSH с флагами -Y и -C (через этот вопрос ), но это не исправляет.

Есть идеи, в чем может быть проблема?


person user3605780    schedule 25.09.2019    source источник


Ответы (3)


Проблема с IPython на Github

Что я понимаю из обсуждения, так это то, что это ошибка связывания или времени выполнения C-уровня из-за запуска кода openCV. Я столкнулся с той же проблемой, которую решил с помощью matplotlib

person Aakash Gupta    schedule 24.01.2020

image=cv2.imread(файл)
cv2.imshow(тестовый файл, изображение)
cv2.waitKey(0)
cv2.destroyAllWindows()

person code-freeze    schedule 21.07.2020

Я столкнулся с подобной проблемой при загрузке больших файлов TIFF. Тот же код работает для небольших файлов TIFF. Вы можете просмотреть этот пост, чтобы сжать изображение и отобразить его.

person Chloe    schedule 23.07.2021