目标人脸检测与识别实验代码
时间: 2023-09-30 19:04:09 浏览: 46
以下是目标人脸检测与识别的实验代码示例:
```python
import cv2
import numpy as np
# 加载人脸识别模型
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 加载人脸识别模型
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read("trainer.yml")
# 设定字体样式
font = cv2.FONT_HERSHEY_SIMPLEX
# 捕获摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取摄像头中的图像
ret, img = cap.read()
# 将图像转化为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
# 遍历每一个人脸
for (x, y, w, h) in faces:
# 画出矩形框
cv2.rectangle(img, (x, y), (x+w, y+h), (0,255,0), 2)
# 识别人脸
id_, conf = recognizer.predict(gray[y:y+h, x:x+w])
# 根据识别结果输出姓名
if conf>=45 and conf<=85:
if id_ == 1:
id_ = "person1"
elif id_ == 2:
id_ = "person2"
# ... 其他人名
else:
id_ = "unknown"
# 在矩形框内输出姓名
cv2.putText(img, str(id_), (x+5,y+h-5), font, 1, (255,255,255), 2, cv2.LINE_AA)
# 显示图像
cv2.imshow('img',img)
# 等待按下 'q' 键退出程序
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源
cap.release()
# 关闭所有窗口
cv2.destroyAllWindows()
```
这段代码使用了 OpenCV 中的 Haar 特征分类器进行人脸检测,并使用了 LBPH 算法进行人脸识别。在识别到人脸后,根据保存的人脸数据集中的标签值输出人物姓名。