AttributeError: module 'cv2.face' has no attribute 'createEigenFaceRecognizer' 解决办法

报错 AttributeError: module 'cv2.face' has no attribute 'createEigenFaceRecognizer'

原因:

1.版本问题,目前使用版本cv2.face中createEigenFaceRecognizer更名或移除

解决:请查看对应版本的说明文档,使用对应版本或属性名。

2.未安装

opencv_contrib,所以

model = cv2.face.createEigenFaceRecognizer() 行找不到face

下载地址

https://github.com/opencv/opencv_contrib

或者windows情况下 

https://www.lfd.uci.edu/~gohlke/pythonlibs/

安装对应版本(包含contrib,但是会变动,python在一些版本会把contrib中的包移除到基本包或修改名称)

例如: python3.6+window+64位机器下载

opencv_python‑3.4.2+contrib‑cp36‑cp36m‑win_amd64.whl

opencv_python-3.4.1+contrib-cp36-cp36m-win_amd64.whl

解决:更换版本 

 详细见 http://blog.csdn.net/wyx100/article/details/73008324

 

参考

https://blog.csdn.net/qq_34798152/article/details/78649670

https://stackoverflow.com/questions/46751105/attributeerror-module-cv2-cv2-has-no-attribute-createfisherfacerecognizer

Chances are you are using OpenCV 3.3 and according to their documentation, this module was moved under face. You can access it with cv2.face.FisherFaceRecognizer_create()

可能你使用的是OpenCV 3.3,根据他们的文档,这个模块被移动到了face里面。你可以用

cv2.face.FisherFaceRecognizer_create()来访问它。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 这个错误通常是由于OpenCV版本过高引起的,createLBPHFaceRecognizer() 函数在OpenCV 3.0之后已经被弃用。相应的解决方法是使用createLBPHFaceRecognizer()的替代函数,即createLBPHFaceRecognizer()或createEigenFaceRecognizer()或createFisherFaceRecognizer(),具体取决于你的应用场景和需求。你可以尝试使用这些函数来替换createLBPHFaceRecognizer()函数,或者降低OpenCV的版本。 ### 回答2: 出现“AttributeError: module 'cv2.face' has no attribute 'createLBPHFaceRecognizer'”错误是因为在最新的OpenCV版本中,'createLBPHFaceRecognizer'方法已被弃用。 在OpenCV 3.0版本之后,人脸识别模块发生了一些变化。替代方法是使用'createLBPHFaceRecognizer'方法的改进版本'createLBPHFaceRecognizer'方法。 要解决此问题,你需要先更新OpenCV版本,然后使用'cv2.face.LBPHFaceRecognizer_create'代替'cv2.face.createLBPHFaceRecognizer'。执行以下步骤: 1. 确保你已正确安装OpenCV库。最好的方式是使用Python的包管理工具pip进行安装,如:`pip install opencv-python` 2. 确保你的OpenCV版本是3.0及以上。 3. 在代码中将'cv2.face.createLBPHFaceRecognizer'更改为'cv2.face.LBPHFaceRecognizer_create'。 例如: ``` import cv2 # 加载训练模型 model = cv2.face.LBPHFaceRecognizer_create() # 进行人脸识别 ... ``` 通过这种方式,你将能够解决'AttributeError: module 'cv2.face' has no attribute 'createLBPHFaceRecognizer''错误,并继续进行人脸识别任务。 ### 回答3: AttributeError: module 'cv2.face' has no attribute 'createLBPHFaceRecognizer' 是一个错误信息,意思是说 'cv2.face' 模块中没有 'createLBPHFaceRecognizer' 这个属性。 在OpenCV的旧版本中,人脸识别的算法是通过 'cv2.face' 模块进行实现的。其中的 createLBPHFaceRecognizer() 是一个方法,用于创建基于局部二值模式直方图(Local Binary Patterns Histograms,LBPH)的人脸识别器。 然而,在最新版本的OpenCV中,人脸识别的算法已经被移动到了不同的模块中,因此 'cv2.face' 模块中不再提供 createLBPHFaceRecognizer() 方法。 为解决这个问题,你可以使用最新版本的OpenCV,并更新你的代码来使用新的人脸识别模块。在最新版本中,人脸识别的算法可以通过 'cv2.face' 模块的 createRecognizer() 方法来创建,然后再通过调用 setReshape() 方法来设置算法的类型,例如: import cv2 recognizer = cv2.face.createRecognizer() recognizer.setReshape(0, 256) # 使用recognizer进行人脸识别的其他操作... 这样,你就可以成功创建一个基于LBPH的人脸识别器,并进行人脸识别的其他操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值