python - 在 Windows 10 中使用 OpenCV 2.4.1 和 python 2.7.15 属性错误:'moduleobject 没有属性'createLBPHFaceRecognizer'
问题描述
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()
回溯(最近一次通话最后):
文件“C:\Users\Documents\basic\engine\trainer.py”,第 6 行,在识别器 = cv2.createLBPFaceRecognizer() 中;AttributeError:“模块”对象没有属性“createLBPHFaceRecognizer”
解决方案
如此处所述,您必须获取并构建opencv_contrib 存储库。然后你可以使用子模块“face”。
或使用安装它pip
,
$ pip install opencv-contrib-python
然后你可以使用 as recognizer=cv2.face.LBPHFaceRecognizer_create()
as 看起来他们已经改变了方法的名称。如果您仍然遇到问题,您可以使用进一步调查它
import cv2
print (help(cv2.face))
这揭示了所有可用的方法。我以这种方式找到了更改后的名称。
推荐阅读
- java - 我想在树莓派中运行一个带有 gif 图像背景的 Java 程序
- c# - OnAuthorization 中没有证书(HttpActionContext actionContext)
- excel - 引用另一个数据集的excel上的条件格式
- batch-file - 接受 Setx 值,但没有真正改变
- c++ - libsimdpp 比调试 gcc 慢
- mysql - 为什么这对所有输入都返回 No
- single-sign-on - 使用 uaa.yml 配置 UAA cloudfoundry
- java - 访问原始 MAC 时间
- android - 如何通过命令行接受 Android 模拟器的调试对话框
- wpf - WPF TextBlock.Text StringFormat 不起作用