【发布时间】:2019-03-06 23:35:35
【问题描述】:
我正在尝试为人脸识别项目或程序设置我的检测器,但我不断收到此错误:
TypeError: an integer is required (got type tuple)
我也尝试过改变:
cv2.putText(img, str(id), (x, y + h), font, 255)
到
cv2.putText(img, name, (x, y + h), font, 2, (0, 255, 0), 2)
这是我的代码:
import cv2
import numpy as np
faceDetect=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cam=cv2.VideoCapture(0)
rec = cv2.face.LBPHFaceRecognizer_create()
rec.read("trainer/training_data.yml")
id=0
font=(cv2.FONT_HERSHEY_SIMPLEX,1,1,0,1)
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,255,0),2)
id,conf=rec.predict(gray[y:y+h,x:x+w])
cv2.putText(img,str(id),(x,y+h),font,255)
cv2.imshow("FACEDETECTIONPT1",img)
if(cv2.waitKey(1)==ord('q')):
break
cam.release()
cv2.destroyAllWindows
【问题讨论】:
-
cv2.putText(img, name, (x, y + h), cv2.FONT_HERSHEY_COMPLEX, 0.5, (0, 255, 0), 2) -
@AmanRelan,如果我的回答有帮助,请采纳。否则请添加评论,以便我们了解如何更好地解决您的问题。
-
@SunnyPatel 先生,我试过你的东西,但它仍然显示相同的错误,但后来我从字体中删除了参数并将我的 putText 编辑为
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2),这似乎对我有用。 . 但即便如此,还是非常感谢您先生 :)
标签: opencv python-3.7