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

6
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\recognize\detector.py"的第7行出现错误 rec.load("recognizerr\trainingData.yml")。 AttributeError: 'cv2.face_LBPHFaceRecognizer'对象没有属性'load'


该错误可能是由于使用了一个不存在的方法或属性导致的。请检查代码是否正确,并确保正在调用正确的方法。此外,您还可以尝试查看相关文档,以获取更多关于特定方法或属性的信息。
4个回答

18

我正在使用 Python 3.6.3 和 OpenCV 3.3,并且遇到了相同的问题。在 OpenCV 3.3 中,load() 和 save() 方法已被移除。现在可以使用 read() 替代 load() ,并使用 write() 替代 save()。


1
在OpenCV 3.3中,load()被替换为read(),save()被替换为write()。

1

use:

rec=cv2.face.LBPHFaceRecognizer_create();

1
在openCV==3.x中
load() is replaced with read() 
save() is replaced with write()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接