Я пытаюсь запустить пример из здесь
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, похоже, умерло.Он перезапустится автоматически.
I, когда я закомментирую следующие строки:
#cv2.namedWindow('Display', cv2.WINDOW_NORMAL)
#cv2.imshow('Display', image)
ядро запускается и выводит «test», и я не получаю ошибку.
Я использую:
- Ubuntu-сервер 18.04
- Jupyter lab 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 включена.
Я попытался открыть соединение SSH с помощью -Y и -Флаг C ( через этот вопрос ), но это не исправляет его.
Есть идеи, в чем может быть проблема?