распознавание лиц opencv получил ошибку типа tuple - PullRequest
0 голосов
/ 04 апреля 2019

cv2.putText (IMG, ул (ID), (х, у + ч), шрифт, 255);Ошибка типа: требуется целое число (получено кортеж типа) с использованием Python 3.7

import cv2
import numpy as np

faceDetect=cv2.CascadeClassifier('haarcascade_frontalface_default.xml');
cam=cv2.VideoCapture(0);
rec=cv2.face.LBPHFaceRecognizer_create();
rec.read("recognizer\\trainingData.yml")
id=0
font= cv2.FONT_HERSHEY_COMPLEX_SMALL,5,1,0,4
while(True):
  ret,img=cam.read();
  gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
  faces=faceDetect.detectMultiScale(gray,1.3,5);
  for(x,y,w,h) in faces:
    cv2.rectangle(img,(x,y), (x+w,y+h),(0,0,255),2)
    id,conf=rec.predict(gray[y:y+h,x:x+w])
    if(id==1):
        id="x"
    cv2.putText(img,str(id),(x,y+h),font,255);
cv2.imshow("Face",img);
if(cv2.waitKey(1)==ord('q')):
   break;
cam.release()
cv2.destroy.AllWindows()

1 Ответ

1 голос
/ 04 апреля 2019

Ошибка показывает строку, откуда она идет

cv2.putText(img,str(id),(x,y+h),font,255)

Ожидается, что четвертый параметр будет объектом шрифта, но вы инициализировали его здесь как кортеж:

font= cv2.FONT_HERSHEY_COMPLEX_SMALL,5,1,0,4

Я считаю, что шрифт должен быть только

font = cv2.FONT_HERSHEY_COMPLEX_SMALL

Посмотрите на документы здесь .

Кстати, вам не нужны точки с запятой в python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...