代码报错AttributeError: module 'cv2.face' has no attribute 'LBPHFaceRecognizer_create'
时间: 2023-11-24 19:52:17 浏览: 820
根据你提供的引用内容,报错"AttributeError: module 'cv2.face' has no attribute 'LBPHFaceRecognizer_create'"是因为cv2模块中没有名为'face'的子模块,也没有名为'LBPHFaceRecognizer_create'的属性。这可能是因为你使用的是较新版本的OpenCV,而该版本中的函数名已经发生了变化。
要解决这个问题,你可以尝试以下两种方法:
1. 查看当前版本使用的函数名:你可以使用以下代码来查看当前版本中可用的函数名:
```python
import cv2
print(cv2.__version__)
```
这将打印出当前安装的OpenCV版本。然后,你可以在OpenCV的官方文档中查找相应版本的函数名。
2. 使用适用于你的版本的函数名:根据你提供的引用,你已经成功安装了opencv-contrib-python。在较新版本的OpenCV中,'LBPHFaceRecognizer_create'函数的名称可能已经发生了变化。你可以尝试使用以下代码来创建一个人脸识别器:
```python
import cv2
# 创建人脸识别器
recognizer = cv2.face.LBPHFaceRecognizer_create()
```
请注意,根据你的OpenCV版本,函数名可能会有所不同。因此,建议你查看当前版本的函数名或参考OpenCV的官方文档以获取准确的函数名。
相关问题
File "3.py", line 12, in <module> recognizer = cv2.face.LBPHFaceRecognizer_create() AttributeError: 'module' object has no attribute 'LBPHFaceRecognizer_create'
这个错误通常是由于OpenCV版本问题导致的。在OpenCV 4.0及以上版本中,LBPHFaceRecognizer的创建方法已经改变了,应该使用`cv2.face.LBPHFaceRecognizer_create()`。而在OpenCV 3.x版本中,可以使用`cv2.face.createLBPHFaceRecognizer()`。
你可以通过以下代码检查OpenCV版本:
```
import cv2
print(cv2.__version__)
```
如果输出的版本号是4.0及以上,那么你应该使用`cv2.face.LBPHFaceRecognizer_create()`创建对象。如果输出的版本号是3.x,那么你应该使用`cv2.face.createLBPHFaceRecognizer()`创建对象。
AttributeError: module 'cv2.cv2' has no attribute 'face_LBPHFaceRecognizer'
### 解决OpenCV `cv2` 模块中没有 `face_LBPHFaceRecognizer` 属性的 `AttributeError`
当遇到 `AttributeError: module 'cv2' has no attribute 'face'` 或者 `module 'cv2.face' has no attribute 'LBPHFaceRecognizer_create'` 错误时,这通常是由于缺少必要的 OpenCV 贡献模块所致。
#### 安装缺失的贡献模块
为了使 `cv2.face.LBPHFaceRecognizer_create()` 正常工作,需要安装 `opencv-contrib-python` 库。这个库包含了额外的功能模块,其中包括人脸检测所需的算法[^3]。
```bash
pip uninstall opencv-python
pip install opencv-contrib-python
```
上述命令首先卸载现有的基础 OpenCV 包,然后重新安装带有附加组件的支持包。这样做可以确保不会发生版本冲突并能正常使用扩展特性。
#### 验证安装成功与否
可以通过尝试导入特定功能来验证是否已经正确设置了环境:
```python
import cv2
print(cv2.__version__)
help(cv2.face) # 查看帮助文档确认是否有 face 模块及其方法
```
如果一切正常,则应该能够看到有关 `cv2.face` 的详细信息以及其中的方法列表,包括 `LBPHFaceRecognizer_create` 函数。
#### 使用 LBPH Face Recognizer 进行人脸识别
一旦解决了依赖关系问题,就可以按照常规方式创建和训练模型来进行人脸识别了:
```python
import cv2
# 创建LBPH面部识别器实例
recognizer = cv2.face.LBPHFaceRecognizer_create()
# 加载数据集进行训练...
# recognizer.train(faces, labels)
# 保存训练好的模型到文件 (可选)
# recognizer.save('trainer.yml')
```
阅读全文
相关推荐

















