ich benutze OpenCV2 und Python auf Raspberry Pi. und ich bin neu mit Python und OpenCV. Ich habe versucht, ein JPEG-Bild zu lesen und das Bild anzuzeigen. Es zeigt den folgenden Fehler:
/home/pi/opencv-2.4.9/modules/highgui/src/window.cpp:269: \
error: (-215) size.width>0 && size.height>0 in function imshow.
und der Code ist:
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()
Das Bild kann nicht geladen werden (wahrscheinlich, weil Sie den führenden /
im Pfad vergessen haben). imread
gibt dann None zurück. Wenn Sie None
an imshow
übergeben, wird versucht, ein Fenster mit der Größe 0x0 zu erstellen, was fehlschlägt.
Die schlechte Fehlerbehandlung in cv
ist wahrscheinlich auf die relativ dünne Wrapper-Schicht in der C++ - Implementierung zurückzuführen (wobei das Zurückgeben von NULL im Fehlerfall eine gängige Praxis ist).
es ist der Pfad, der das Problem verursacht. Ich hatte das gleiche Problem, aber als ich den vollständigen Pfad des Bildes angegeben habe, hat es perfekt funktioniert.
Während ich Raspbian in Rpi 3 verwendete, hatte ich das gleiche Problem beim Versuch, qrcodes zu lesen. Der Fehler liegt daran, dass cv2 das Bild nicht lesen konnte. Wenn Sie ein PNG-Image verwenden, installieren Sie das PNG-Modul.
Sudo pip install pypng