基于opencv的人脸识别 python 代码
时间: 2023-09-10 20:09:18 浏览: 43
如果你想基于OpenCV进行人脸识别的Python代码,你可以使用以下代码作为一个参考:
```python
import cv2
import numpy as np
# 加载分类器
faceCascade = cv2.CascadeClassifier('path_to_haarcascade_xml')
# 加载人脸图像和标签的函数
def load_images(path):
facesSamples = \[\]
labels = \[\]
imagePaths = \[os.path.join(path, f) for f in os.listdir(path)\]
for imagePath in imagePaths:
# 读取灰度图像
image = cv2.imread(imagePath, cv2.IMREAD_GRAYSCALE)
# 检测人脸
faces = faceCascade.detectMultiScale(image)
for (x, y, w, h) in faces:
# 提取人脸区域并调整大小
face = cv2.resize(image\[y:y+h, x:x+w\], (100, 100))
# 添加到人脸样本列表中
facesSamples.append(face)
# 获取图片的标签(假设文件名为"标签.jpg")
label = int(os.path.basename(imagePath).split(".")\[0\])
labels.append(label)
return facesSamples, labels
# 加载训练数据
path = 'path_to_dataset_folder'
faces, labels = load_images(path)
# 训练人脸识别模型
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(faces, np.array(labels))
# 保存训练好的模型
recognizer.save('path_to_save_model')
```
这段代码使用OpenCV库实现基于Haar特征分类器的人脸检测和识别。首先,你需要将'Harrcascades'文件夹中的所有XML文件复制到你的项目子文件夹中。然后,使用`load_images`函数加载训练数据,并使用`LBPHFaceRecognizer`训练人脸识别模型。最后,你可以将训练好的模型保存到一个文件中。
请注意,你需要将`path_to_haarcascade_xml`替换为你实际的Haar级联分类器XML文件的路径,将`path_to_dataset_folder`替换为包含训练图像的文件夹的路径,将`path_to_save_model`替换为保存训练模型的路径。此外,还需要安装OpenCV和numpy库。
#### 引用[.reference_title]
- *1* [基于OpenCv的人脸识别(Python完整代码)](https://blog.csdn.net/weixin_46291251/article/details/117996591?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168943676616800225588967%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168943676616800225588967&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-117996591-null-null.nonecase&utm_term=%E5%9F%BA%E4%BA%8Eopencv%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%20python%20%E4%BB%A3%E7%A0%81)[target="_blank"] [.reference_item]
- *2* [基于OpenCV-Python实现的人脸识别](https://blog.csdn.net/weixin_52978638/article/details/124287279?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168943676616800225588967%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168943676616800225588967&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-15-124287279-null-null.nonecase&utm_term=%E5%9F%BA%E4%BA%8Eopencv%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%20python%20%E4%BB%A3%E7%A0%81)[target="_blank"] [.reference_item]
- *3* [opencv人脸识别(python)](https://blog.csdn.net/qq_52358027/article/details/126795333?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168943676616800225588967%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168943676616800225588967&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-12-126795333-null-null.nonecase&utm_term=%E5%9F%BA%E4%BA%8Eopencv%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%20python%20%E4%BB%A3%E7%A0%81)[target="_blank"] [.reference_item]
[ .reference_list ]