cv2.face'没有属性'LBPHFaceRecognizer

时间:2018-03-21 18:28:09

标签: opencv python-3.6 face-recognition

我正在使用Python创建一个人脸识别系统并在这些版本上空闲:Python 3.6.1 :: Anaconda custom(64位),Anaconda 4.4,空闲

当我尝试训练脸部识别器时,我收到的错误如下:

AttributeError:module'cv2.face'没有属性'LBPHFaceRecognizer'

这里我附上了代码

import cv2
import os
import numpy as np
from PIL import Image

# Path for face image database
path = 'dataset'
recognizer = cv2.face.LBPHFaceRecognizer()


def getImagesWithID(path):
     imagePaths=[os.path.join(path,f) for f in os.listdir(path)]
     faceSamples=[]
     Ids=[]
     for imagePath in imagePaths:
         faceImg=Image.open(imagePath).convert('L')
         faceNp=np.array(faceImg,'unit8')
         ID=int(os.path.split(imagePath)[-1].split('.')[1])
         faces.append(faceNP)
         IDs.append(ID)
         cv2.imshow("training",faceNp)
         cv2.waitKey(10)
     return np.array(IDs), faces

Ids,faces=getImagesWithID(path)
recognizer.train(faces,Ids)
recognizer.save('recognizer/trainningData.yml')
cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:0)

这是OpenCV的旧版本,他们甚至没有Python文档。

现在离开他们的C++ documentation,我会说Python等价物是cv2.createLBPHFaceRecognizer()。到那时它还没有移到face

我强烈建议您至少更新至OpenCV 3.X,否则您将继续遇到这些问题。