使用OpenCV 2.4.1&;Windows10中的python 2.7.15属性错误:';moduleobject没有属性';createLBPHFaceRecognizer';

使用OpenCV 2.4.1&;Windows10中的python 2.7.15属性错误:';moduleobject没有属性';createLBPHFaceRecognizer';,python,python-2.7,opencv,Python,Python 2.7,Opencv,回溯(最近一次呼叫最后一次): 文件“C:\Users\Documents\basic\engine\trainer.py”,第6行,在 recognizer=cv2.createLBPHFaceRecognizer();AttributeError:“模块”对象没有属性“CreateLBPHFaceRecognitizer” 如前所述,你必须获得并建立回购协议。然后可以使用子模块“face” 或者使用pip安装它 import os import cv2 import numpy as np

回溯(最近一次呼叫最后一次):

文件“C:\Users\Documents\basic\engine\trainer.py”,第6行,在 recognizer=cv2.createLBPHFaceRecognizer();AttributeError:“模块”对象没有属性“CreateLBPHFaceRecognitizer”

如前所述,你必须获得并建立回购协议。然后可以使用子模块“face”

或者使用
pip
安装它

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

recognizer=cv2.createLBPHFaceRecognizer();
path='dataSet'

def getImagesWithID(path):
    imagePaths=[os.path.join(path,f) for f in os.listdir(path)]
    faces=[]
    IDs=[]
    for imagePath in imagePaths:
        faceImg=Image.open(imagePath).convert('L');
        faceNp=np.array(faceImg,'uint8')
        ID=int(os.path.split(imagePath)[-1].split('.')[1])
        faces.append(faceNp)
        print ID
        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/trainingData.yml')
cv2.destroyAllWindows()
然后您可以使用as
recognizer=cv2.face.LBPHFaceRecognizer\u create()
,因为看起来他们已经更改了方法的名称。如果您仍然有问题,您可以使用

$ pip install opencv-contrib-python

它揭示了所有可用的方法。我通过这种方式找到了更改后的名称。

我使用的是open cv2,因此,所有代码都符合2.1.43文档的要求。如果您需要查看我的github代码,请发表评论。我错了。有一件奇怪的事情是方法名被更改了。我编辑了答案。希望它能解决您的问题可能的副本
import cv2
print (help(cv2.face))