写一个训练recognizer = cv2.face.LBPHFaceRecognizer_create()的代码
时间: 2024-03-16 12:43:14 浏览: 74
下面是一个简单的示例代码,演示如何使用 LBPH 人脸识别器进行训练:
```python
import cv2
import os
# 加载训练数据
data_path = 'data'
image_paths = [os.path.join(data_path, f) for f in os.listdir(data_path)]
faces = []
labels = []
for image_path in image_paths:
# 读取图像并将其转换为灰度图像
image = cv2.imread(image_path)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 将图像添加到人脸列表中
faces.append(gray)
# 解析标签
label = int(os.path.split(image_path)[-1].split('.')[0])
labels.append(label)
# 训练人脸识别器
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(faces, np.array(labels))
# 保存训练好的模型
recognizer.save('model.yml')
```
这段代码假设训练数据存储在 `data` 文件夹中,每个人的图像都保存在一个单独的文件中,并以其标签命名。例如,第一个人的图像可能被保存为 `1.jpg`。
在这个例子中,我们首先加载训练数据,将每个人的图像转换为灰度图像,并解析其标签。然后,我们使用 `cv2.face.LBPHFaceRecognizer_create()` 函数创建一个 LBPH 人脸识别器对象,并使用 `train` 函数训练它。最后,我们使用 `save` 函数将训练好的模型保存到文件中。
阅读全文