cv2.lbphfacerecognizer没有属性'load''predict'

时间:2017-10-22 11:51:49

标签: python load predict

import cv2
import numpy as np
faceDetect=cv2.CascadeClassifier('haarcascade_frontalface_default.xml');
cam=cv2.VideoCapture(0);
rec=cv2.face.LBPHFaceRecognizer_create();
rec.load("recognizerr\\trainingData.yml")

id=0

fontface=cv2.FONT_HERSHEY_SIMPLEX

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])
        if(id==1):
            id="Name"
        else:
            id="Unknown"    
        cv2.putText(img,str(id),(x,y+h),fontface,2,(255,0,0),3);
    cv2.imshow("Face",img);
    if(cv2.waitKey(1)==ord('q')):
        break;
cam.release()
cv2.destroyAllWindows()

面对rec.load中的错误 回溯(最近一次调用最后一次):

  

文件“C:\ Users \ DELL PC \ Downloads \ faceDetec_YOUTUBE-20171021T212250Z-001 \ recognition \ detector.py”,第7行,在       rec.load( “recognizerr \ trainingData.yml”)   AttributeError:'cv2.face_LBPHFaceRecognizer'对象没有属性'load'

4 个答案:

答案 0 :(得分:18)

我正在使用python 3.6.3和openCv 3.3并面临同样的问题。在openCV 3.3中移动了load()和save()。 load()替换为read(),save()替换为write()

答案 1 :(得分:2)

使用:

rec=cv2.face.LBPHFaceRecognizer_create();

答案 2 :(得分:1)

在openCV == 3.x

load() is replaced with read() 
save() is replaced with write()

答案 3 :(得分:0)

在OpenCV 3.3中

load()替换为read()

save()替换为write()