'cv2.face_LBPHFaceRecognizer' object has no attribute 'compute'
时间: 2023-07-31 22:04:20 浏览: 176
在新版的 OpenCV(4.0及以上版本)中,`cv2.face.LBPHFaceRecognizer` 没有 `compute` 方法。相反,它提供了一个名为 `predict` 的方法来对输入图像进行人脸识别。以下是一个相应的代码示例:
```python
import cv2
import numpy as np
# 进行人脸识别
def recognize_faces(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 创建 LBPH 人脸识别器
recognizer = cv2.face.LBPHFaceRecognizer_create()
# 加载训练好的人脸识别模型
recognizer.read('face_model.yml')
# 进行人脸识别
label, confidence = recognizer.predict(gray)
return label, confidence
# 示例用法
image = cv2.imread('image.jpg') # 读取图像
label, confidence = recognize_faces(image)
print("Label:", label)
print("Confidence:", confidence)
```
在这个代码示例中,我们使用了新版的 OpenCV(4.0及以上版本)来进行人脸识别。
`recognize_faces` 函数将彩色图像转换为灰度图像,并使用 `cv2.face.LBPHFaceRecognizer_create` 创建了一个 LBPH 人脸识别器。
然后,我们使用 `read` 方法加载训练好的人脸识别模型。
最后,我们使用 `predict` 方法对输入图像进行人脸识别,并将识别结果的标签和置信度存储在 `label` 和 `confidence` 变量中。
请注意,人脸识别模型需要预先训练好,并保存在文件中(在示例中为 'face_model.yml')。确保你已经训练好了人脸识别模型,并将文件路径正确指定。
阅读全文