File "face_detection.py", line 11, in <module>
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
cv2.error: /home/arthurckl/Desktop/opencv-3.0.0-rc1/modules/objdetect/src/cascadedetect.cpp:1595: error: (-215) !empty() in function detectMultiScale
Ich habe versucht, die Antwort hier zu suchen, aber das Beste, was ich finden konnte, ist, dass ich die face_cascade falsch laden muss … Irgendwelche Hilfe?
Ihre XML-Datei wurde nicht gefunden. versuchen Sie es mit einem absoluten Pfad wie “/my/files/bla/cacade.xml”
– Berak
28. Mai 2015 um 14:09 Uhr
@berak Ich habe den ursprünglichen Pfad durch den von Ihnen vorgeschlagenen ersetzt, aber der Code gibt denselben Fehler zurück
– arthurckl
28. Mai 2015 um 14:14 Uhr
Können Sie überprüfen, ob Ihr Bild nicht leer ist (z. B. wenn es nicht richtig geladen wurde), indem Sie einen Test hinzufügen oder ein Bild anzeigen?
– Micha
28. Mai 2015 um 14:53 Uhr
Oh, ich verstehe, ich habe den Fila-Pfad falsch geschrieben. Danke für die Hilfe !
– arthurckl
29. Mai 2015 um 11:48 Uhr
Ich habe das gleiche Problem und egal wie sehr ich es versucht habe, ich konnte es nicht lösen. Kannst du uns sagen, wie du es gelöst hast? @arthurckl
– aysebilgegunduz
24. Juli 2017 um 8:25 Uhr
Mandelbrot
Ich hatte das gleiche Problem.
Ich musste nichts anderes herunterladen, um das zu lösen. CV2 hatte alles, was ich brauchte.
Anstatt herauszufinden, wo die .xml Dateien sind und die Werte fest codiert sind, habe ich eine von cv2 gegebene Eigenschaft verwendet.
Ich habe den gleichen Code ausgeführt. Hier sind zwei Dinge zu beachten. 1. Geben Sie den vollständigen Pfad der .xml-Dateien an. 2. Geben Sie am Ende eine Tastendruck-Ereignisanweisung.
Fügen Sie diesen Codeblock am Ende hinzu und führen Sie Ihre Datei aus, hat bei mir funktioniert:
k = cv2.waitKey(0)
if k == 27: # wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
cv2.imwrite('messigray.png',img)
cv2.destroyAllWindows()
Zum Beispiel sah mein Code so aus
import numpy as np
import cv2
face_cascade = cv2.CascadeClassifier('C:\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('C:\\opencv\\build\\etc\\haarcascades\\haarcascade_eye.xml')
img = cv2.imread('lena.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
#faces = face_cascade.detectMultiScale(gray)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('img',img)
k = cv2.waitKey(0)
if k == 27: # wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
cv2.imwrite('messigray.png',img)
cv2.destroyAllWindows()
Meine Ausgabe sah so aus:
Der absolute Pfad für mich war falsch, musste CWD (C: Drive/projectdirectory/) enthalten, dh ‘C:/Flask/venv/Lib/site-packages/cv2/data/’
– ThomasLYIT
23. August 2020 um 14:32 Uhr
Die XML-Datei fehlt, Sie können die Datei aus dem GitHub-Repository abrufen und im selben Verzeichnis wie Ihr Projekt ablegen. Link zum Ordner auf GitHub ist Hier. Laden Sie einfach die Datei mit dem Namen herunter haarcascade_frontalface_default.xml. Tatsächlich existiert die Datei auf Ihrem System. Gehen Sie einfach auf die Site-Pakete Ordner Ihres Python-Installationsordners und suchen Sie im Ordner cv2/data nach der Datei
Verwenden Sie den vollständigen Dateipfad und verwenden Sie “\\” anstelle von “\” im XML-Dateipfad.
Sie müssen nur den richtigen Pfad der hinzufügen haarcascade_frontalface_default.xml Datei dh Sie müssen nur das Präfix hinzufügen (cv2.data.haarcascades)
Ihre XML-Datei wurde nicht gefunden. versuchen Sie es mit einem absoluten Pfad wie “/my/files/bla/cacade.xml”
– Berak
28. Mai 2015 um 14:09 Uhr
@berak Ich habe den ursprünglichen Pfad durch den von Ihnen vorgeschlagenen ersetzt, aber der Code gibt denselben Fehler zurück
– arthurckl
28. Mai 2015 um 14:14 Uhr
Können Sie überprüfen, ob Ihr Bild nicht leer ist (z. B. wenn es nicht richtig geladen wurde), indem Sie einen Test hinzufügen oder ein Bild anzeigen?
– Micha
28. Mai 2015 um 14:53 Uhr
Oh, ich verstehe, ich habe den Fila-Pfad falsch geschrieben. Danke für die Hilfe !
– arthurckl
29. Mai 2015 um 11:48 Uhr
Ich habe das gleiche Problem und egal wie sehr ich es versucht habe, ich konnte es nicht lösen. Kannst du uns sagen, wie du es gelöst hast? @arthurckl
– aysebilgegunduz
24. Juli 2017 um 8:25 Uhr