请写一个人脸识别opencv代码,并用训练集和测试集。
时间: 2024-05-01 20:17:04 浏览: 22
由于人脸识别涉及到大量的数据和复杂的算法,因此编写一个完整的人脸识别代码需要涉及到很多的细节和技术细节。以下是一个简单的人脸识别代码示例,仅作为参考:
```
import cv2
import numpy as np
# 加载训练数据
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read('trainer.yml')
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取图片
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 遍历每个人脸
for (x,y,w,h) in faces:
# 绘制矩形框
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# 识别人脸
roi_gray = gray[y:y+h, x:x+w]
id, confidence = recognizer.predict(roi_gray)
# 显示标签和置信度
if confidence < 100:
name = "person " + str(id)
confidence = " {0}%".format(round(100 - confidence))
else:
name = "unknown"
confidence = " {0}%".format(round(100 - confidence))
cv2.putText(img, name, (x+5,y-5), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255), 2)
cv2.putText(img, str(confidence), (x+5,y+h-5), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,0), 1)
# 显示图片
cv2.imshow('camera',img)
# 退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 关闭摄像头
cap.release()
cv2.destroyAllWindows()
```
该代码使用OpenCV库来进行人脸识别,首先加载了训练数据(使用了经典的Haar分类器来进行人脸检测,以及LBPH算法来进行人脸识别),然后打开摄像头读取图片,并使用Haar分类器检测人脸。对于每个检测到的人脸,使用LBPH算法来识别人脸,并显示标签和置信度。最后,使用OpenCV库来显示图片,并实现了按下“q”键退出的功能。
需要注意的是,该代码仅用作演示和参考,实际使用中需要更加细致和复杂的人脸检测和识别算法,并且需要使用更大的训练集和测试集来提高识别的准确率和鲁棒性。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)