J'exécute OpenCV via Jupyter Notebooks et chaque fois que j'essaie d'exécuter cv2.imshow (), le noyau se bloque, aucun message d'erreur ni indice utile - simplement
The Kernel appears to have died. It will restart automatically.
Voici le code que je lance ...
import cv2
input = cv2.imread('images/input.jpg')
cv2.imshow('Hello World', input)
cv2.waitKey(0)
cv2.destroyAllWindows()
Le code fonctionne (bien que différemment) lorsque je lance le programme ci-dessous ...
%matplotlib inline
from matplotlib import pyplot as plt
import cv2
image = cv2.imread('images/input.jpg')
plt.imshow(image)
plt.show()
Pour info, j'utilise une copie de BitFusion totalement inchangée sur AWS.
https://aws.Amazon.com/marketplace/pp/B01EYKBEQ0?ref=cns_srchrow
Une idée de ce qui pourrait aller de travers?
Pour afficher des images avec cv2.imshow
sur AWS, vous devez activer le transfert X11 afin que les graphiques puissent être exécutés sur le serveur et affichés localement. Cela peut être fait en utilisant ssh-ing avec l'option -Y
:
ssh -Y username@hostname
Si les images sont plus grandes, vous devrez également compresser les données à l'aide de -C
:
ssh -Y -C username@hostname
Le terminal utilisé pour ssh dans AWS devra rester ouvert tant que vous affichez des images du bloc-notes.
Je ne peux pas expliquer le comportement de votre code pour l'instant, mais vous pouvez utiliser le code ci-dessous pour obtenir le comportement ci-dessus.
%matplotlib inline
from matplotlib import pyplot as plt
import cv2
image = cv2.imread('images/input.jpg')
plt.imshow(image)
plt.show()