无法识别人脸检测中的第二张脸-python代码,opencv3.4.0

时间:2018-07-28 07:13:06

标签: python-2.7 opencv face-detection

我是面部检测的新手。我正在尝试识别数据集中的人脸。数据集是我系统中的文件夹,其中包含用户的所有图像。现在,我的问题是我的检测器仅检测到第一个人的脸并显示姓名。同样对于第二人称,它正在检测人脸(在人脸周围得到矩形框),但是再次显示第一人称名字而不是第二人称名字。对于剩下的人,我只得到第一个人的名字。我无法识别我的代码有什么问题。请帮我这个代码。预先谢谢你。

Detector.py

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

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:
        roi_gray=gray[y:y+h,x:x+w]
        roi_color=img[y:y+h,x:x+w]
        cv2.rectangle(img,(x,y),(x+w,y+h),(100,212,255),2)
        id,conf=rec.predict(roi_gray)
        fontface=cv2.FONT_HERSHEY_SIMPLEX
        fontscale=1
        fontcolor=(255,255,255)
        if(id==1):
            id="satya"
        elif(id==2):
            id="charitha"
        elif(id==3):
            id="Rajesh"
        else:
            id="unknown"
        cv2.putText(img,str(id),(x,y+h),fontface,fontscale,fontcolor)
    cv2.imshow("sravanthi",img);
    if cv2.waitKey(1) & 0xFF ==ord('q'):
        break
cam.release()
cv2.destroyAllwindows()

    

我正在使用python 2.7.11和opencv-3.4.0。 对不起,我的英语不好。

0 个答案:

没有答案