2017-05-01 1 views
0

les occours problèmes suivants: J'essaie de détecter les visages et appeler une fonction avec l'indice spécifique des valeursindex de tuple sur objet plage/int n'est pas itérables

faces = face_cascade.detectMultiScale(gray, 1.3, 5) 
      facesCopy = faces 
      print("faces at 0") 
      print(faces) 
      if(len(faces) >= 1): 
      for (i) in range(len(faces)): 
        #call function with values of faces at specific index(i) 
        detectFace(self, faces[i]) 

fait face à des retours ceci: [[247 101 237 237]] facesCopie la même chose, mais les faces [i] renvoie [247 101 237 237]

comment puis-je obtenir la matrice interne? faces [0] renvoie truple hors de portée ou toute variation de visages [0] [0] ou [0] [0] [0] [0] retourne dans un pour objet boucle int est pas iterable:

for (x,y,w,h) in faces[0]:#do stuff 

Qu'est-ce qui me manque ou que je ne vois pas? Je suppose que cela a quelque chose à voir avec le tableau compressé? Les valeurs sont la position x et y et la largeur et la hauteur de la face. Nous vous remercions de votre aide ou de vos suggestions

+0

Avez-vous obtenu la réponse à votre question? – Grimmy

Répondre

0

detectMultiScale renvoie une liste de rectangles.

[[247 101 237 237]] serait un seul, comme dans un tableau avec un rectangle/tableau.

for face in faces: 
    print(face) 

Sorties:

[247, 101, 237, 237] 

Si vous voulez décompresser le tableau en variables:

x, y, w, h = face 

Je ne suis pas sûr de ce que les arguments detectFace exige la pensée.

Si vous voulez que le premier rectangle, seulement l'accès par index:

faces[0] 
+0

désolé, pour la réponse tardive! mais oui, cela m'a beaucoup aidé! Je vous remercie –