Fehlerbehebung: „Fehler: (-215) !empty() in Funktion discoverMultiScale“ in der Gesichtserkennung von OpenCV
In OpenCV, wann Beim Versuch, eine Gesichtserkennung mit der Methode cv2.CascadeClassifier.detectMultiScale() durchzuführen, kommt es nicht selten vor, dass eine Fehlermeldung wie „Fehler: (-215) !empty() in Funktion discoverMultiScale“ angezeigt wird. Dieser Fehler weist typischerweise auf ein Problem mit der Art und Weise hin, wie die XML-Dateien des Gesichtskaskadenklassifizierers geladen oder referenziert werden.
Um dieses Problem zu beheben, muss unbedingt sichergestellt werden, dass der Pfad zu den XML-Dateien korrekt angegeben ist. Im bereitgestellten Originalcode:
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
Der spezifische Speicherort der XML-Dateien im OpenCV-Verzeichnis ist nicht explizit definiert. Daher kann es für OpenCV schwierig sein, diese Dateien zu finden und zu laden.
Eine empfohlene Lösung für dieses Problem besteht darin, die Eigenschaft cv2.data.haarcascades zu verwenden, um die erforderlichen XML-Dateien automatisch zu finden und zu laden. Indem Sie den Code wie folgt aktualisieren:
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')
OpenCV ruft die XML-Dateien automatisch von ihrem Standardspeicherort im Haarcascades-Ordner ab. Dieser Ansatz stellt sicher, dass die richtigen Dateien geladen werden, ohne dass bestimmte Pfade fest codiert werden müssen, wodurch das Problem behoben und eine erfolgreiche Gesichtserkennung ermöglicht wird.
Das obige ist der detaillierte Inhalt von## Warum erhalte ich beim Erkennen von Gesichtern in OpenCV den Fehler „error: (-215) !empty() in function discoverMultiScale'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!