web-dev-qa-db-fra.com

Échec d'assertion: size.width> 0 && size.height> 0 in function imshow

j'utilise opencv2 et python sur Raspberry Pi. et je suis nouveau avec python et opencv. J'ai essayé de lire une image jpeg et d'afficher une image qui montre l'erreur suivante:

/home/pi/opencv-2.4.9/modules/highgui/src/window.cpp:269: \
  error: (-215) size.width>0 &&  size.height>0 in function imshow.

et le code est:

import cv2
# windows to display image
cv2.namedWindow("Image")
# read image
image = cv2.imread('home/pi/bibek/book/test_set/bbb.jpeg')
# show image
cv2.imshow("Image", image)
# exit at closing of window
cv2.waitKey(0)
cv2.destroyAllWindows()
6
Bibek Ghimire

Le chargement de l'image échoue (probablement parce que vous avez oublié le / dans le chemin). imread renvoie alors Aucun. Si vous passez None à imshow, le système tente de créer une fenêtre de taille 0x0, qui échoue.

La mauvaise gestion des erreurs dans cv doit probablement à sa couche d'encapsulation assez mince sur l'implémentation C++ (où retourner NULL en cas d'erreur est une pratique courante).

5
Krumelur

Lors de l'utilisation de Raspbian dans Rpi 3, j'ai eu le même problème en essayant de lire qrcodes. L'erreur est due au fait que cv2 n'a pas pu lire l'image. Si vous utilisez une image png, installez le module pypng.

Sudo pip install pypng
1