代码报错AttributeError: module 'cv2.face' has no attribute 'LBPHFaceRecognizer_create'
时间: 2023-11-24 08:52:17 浏览: 651
根据你提供的引用内容,报错"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的官方文档以获取准确的函数名。
相关问题
树莓派AttributeError: module 'cv2.face' has no attribute 'LBPHFaceRecognizer_create'
在使用树莓派进行人脸识别或相关项目时,如果你遇到了错误信息 "AttributeError: module 'cv2.face' has no attribute 'LBPHFaceRecognizer_create'",这通常意味着你尝试调用的OpenCV的`face`模块中不存在`LBPHFaceRecognizer_create`这个函数。
这个错误可能由以下几个原因造成:
1. OpenCV的版本过低:你可能安装的是一个不包含`LBPHFaceRecognizer`或`face`模块的旧版本的OpenCV。在OpenCV 3.x版本之后,`face`模块被引入,提供了一系列的人脸检测与识别功能。
2. 模块导入错误:可能是因为错误地导入了`cv2.face`模块,而`LBPHFaceRecognizer_create`实际上位于`cv2.face.LBPHFaceRecognizer_create`。
3. 没有正确安装`face`模块:`face`模块是OpenCV的扩展模块,并不是所有安装方法都会包含它。
为了解决这个问题,你可以尝试以下几个步骤:
1. 确认你的OpenCV版本。可以通过运行以下Python代码来获取当前安装的OpenCV版本信息:
```python
import cv2
print(cv2.__version__)
```
然后根据版本信息,检查是否包含`face`模块。如果没有,考虑升级OpenCV到一个较新的版本,通常是通过更新pip源然后重新安装:
```bash
pip install --upgrade pip
pip install opencv-python
```
2. 检查导入语句是否正确。如果你使用的是较新版本的OpenCV并且已经包含了`face`模块,确保你的导入语句如下所示:
```python
import cv2
recognizer = cv2.face.LBPHFaceRecognizer_create()
```
3. 如果以上步骤无法解决问题,考虑查看官方文档或搜索相关社区、论坛,看是否有人遇到了类似的问题,并找到了解决方案。
AttributeError: module 'cv2.face' has no attribute 'LBPHFaceRecognizer_create'
这个错误是因为在你的代码中,使用了`cv2.face`模块中的`LBPHFaceRecognizer_create()`方法,但是`cv2.face`模块并不包含这个方法。 解决这个问题的方法是使用`cv2.face.LBPHFaceRecognizer_create()`的替代方法。你可以尝试使用`cv2.face.createLBPHFaceRecognizer()`来创建LBPH人脸识别器。这个方法在较新版本的OpenCV中被引入,并且可以替代原来的方法。 这样你就可以解决这个错误了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [解决cv2没有face模块](https://blog.csdn.net/GorGor__/article/details/125243863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文