Cv2.lbphfacerecognizer does not have attribute 'load' 'pred'

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()

Before an error in rec.load Traceback (last last call):

File "C: \ Users \ DELL PC \ Downloads \ faceDetec_YOUTUBE-20171021T212250Z-001 \ recognize \ detector.py", line 7, in rec.load ("recognizerr \ trainingData.yml") AttributeError: object 'cv2.face_LBPHFaceRecognizer' is not has the attribute 'load'

+4
source share
4 answers

I am using Python 3.6.3 and OpenCv 3.3 and am facing the same problem. In openCV 3.3, load () and save () were removed. load () is replaced by read (), and save () is replaced by write ()

+19
source

use:

rec=cv2.face.LBPHFaceRecognizer_create();
+2
source

OpenCV 3.3

load() read()

save() write()

+1

openCV == 3.x

load() is replaced with read() 
save() is replaced with write()
+1
source

Source: https://habr.com/ru/post/1687977/


All Articles