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'
答案 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()