0

python 版本 3.6.1
numpy 版本 1.13.1
cv2 版本 3.3.0

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

recognizer = cv2.createLBPHFaceRecognizer()
path = 'dataset'

def getImageWithID(path):
imagesPaths = [os.path.join(path,f) for f in os.listdir(path)]
faces = []
IDs = []
for imagePath in imagePaths:
    faceImg = Image.open(imagePath)
    faceNp = np.array(faceImg, 'uint8')
    ID = int(os.path.split(imagePath)[-1].split(".")[1])
    faces.append(faceNp)
    IDs.append(ID)
    cv2.imshow("training the data ", facesNp)
    cv2.waitKey(10)
return IDs, faces

Ids, faces = getImageWithID(path)       
recognizer.train(faces, Ids)
recognizer.save("recognizer/trainingData.yml")
cv2.destroyAllWindows()

AttributeError:模块“cv2.face”没有属性“createLBPHFaceRecognizer”

4

1 回答 1

0

您的问题是您使用的是 Opencv 3.x。尝试cv2.face.LBPHFaceRecognizer_create()解决上述问题。

但如果仍然存在兼容性问题,则将 opencv_contrib 模块添加到现有的 opencv 3.x 版本或将 opencv 更改为旧版本。

于 2017-09-30T20:05:24.250 回答