Ich habe den folgenden Code geschrieben, um "Präsenz eines Gesichts/Gesichter" in Python unter OpenCV zu erkennen.FaceDetection in Python mit OpenCV
import cv2
import sys
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)
if vc.isOpened(): # try to get the first frame
rval, frame = vc.read()
else:
rval = False
while rval:
rval, frame = vc.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
frame = cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
# Display the resulting frame
cv2.imshow('Preview', frame)
key = cv2.waitKey(20)
if key == 27: # exit on ESC
break
cv2.destroyWindow("preview")
cv2.destroyAllWindows()
Ich erhalte den folgenden Fehler:
/usr/bin/python3.4 /home/yas/PycharmProjects/Ch10_OpenCV/Example.py
init done
opengl support available
OpenCV Error: Assertion failed (!empty()) in detectMultiScale, file /home/yas/opencv-3.0.0/modules/objdetect/src/cascadedetect.cpp, line 1634
Traceback (most recent call last):
File "/home/yas/PycharmProjects/Ch10_OpenCV/Example.py", line 32, in <module>
faces = faceCascade.detectMultiScale(gray, 1.3, 5)
cv2.error: /home/yas/opencv- 3.0.0/modules/objdetect/src/cascadedetect.cpp:1634: error: (-215) !empty() in function detectMultiScale
Process finished with exit code 1
Als Ergebnis wird die Webcam-Fenster nicht öffnen und sicher kein Gesicht erkannt wird. Ich arbeite unter Linux-Ubtunu und arbeite mit dem Python-Interpreter 3.4.3.
Was bedeutet dieser Fehler? Wie kann es gelöst werden? Danke für das Teilen Ihrer Meinungen
Kann die ' 'haarcascade_frontalface_default.xml''-Datei ist nicht der vollständige Pfad – ZdaR
Dank gefunden, zur Verfügung stellen. Das Problem war wie du erwähnt! Ich lade die XML-Datei manuell von https://raw.githubusercontent.com/shantnu/Webcam-Face-Detect/master/haarcascade_frontalface_default.xml herunter und füge sie dem aktuellen Arbeitsverzeichnis hinzu. Das Programm erkennt Gesichter jetzt sehr gut. Könnten wir jedoch überprüfen, ob diese XML-Datei eine der Python-Standardverteilungen ist? Bei der Überprüfung konnte ich das nicht bestätigen. – YAS
Im Zweifelsfall können Sie die Kaskadendateien von https://github.com/opencv/opencv/tree/master/data/haarcascades herunterladen – ZdaR