-1
Mein OpenCV (Python) Code zur Erkennung Objekt:Nameerror: name 'x1' definiert ist, nicht in OpenCV Python
import ...
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap1 = cv2.VideoCapture(1)
while True:
ret1, img1 = cap1.read()
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x1, y1, w1, h1) in faces:
if x1 >0:
detect_face1 = x1
print 'face distance Camera 1: ', detect_face1
else:
pass
Debugger zeigt, dass faces
type tuple:()
ist, wahrscheinlich als Folge if x1 >0: NameError: name 'x1' is not defined
zeigt. Denn wenn Gesicht in der Kamera erkannt wird, dann ist faces
ein Array, das einen x1-Wert> 0 hat. Ich weiß, dass es eine ziemlich einfache Lösung sein kann, aber jede Hilfe wird geschätzt.
Wenn 'faces' ein Tupel ist, dann ist es merkwürdig, über es hinweg zu iterieren. Damit diese Schleife funktionieren kann, müssen 'Gesichter' ** eine Liste von ** Tupeln sein. – deceze
Am Anfang, wenn kein Face erkannt wird, hat 'faces' keinen Wert für' x1, y1, w1, h1', daher vermute ich, dass dieser Fehler auftritt. wenn Face erkannt wird, dann 'faces = [10,20,30,40]' (sagen wir), und meine Schleife funktioniert. Aber wenn es leer ist, bekomme ich diesen Fehler. Wie kann ich das überwinden? @deceze – sayem48