采集人脸并识别对象python+opencv的代码
时间: 2024-09-15 16:06:24 浏览: 26
在Python中,结合OpenCV库可以方便地处理图像和视频数据,包括人脸识别。以下是使用OpenCV和dlib库(一个高级的人脸检测库)进行基本的人脸识别示例:
```python
# 导入所需库
import cv2
from imutils import face_utils
import dlib
# 加载预训练的人脸检测模型和人脸识别模型
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
# 初始化摄像头
cap = cv2.VideoCapture(0) # 如果需要从文件读取,替换为video_path
while True:
# 读取一帧
ret, frame = cap.read()
# 转为灰度图
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 使用dlib进行人脸检测
faces = detector(gray)
for face in faces:
# 获取人脸区域
x, y, w, h = face.left(), face.top(), face.width(), face.height()
face_roi = gray[y:y+h, x:x+w]
# 提取面部特征点
landmarks = predictor(gray, face)
landmarks = face_utils.shape_to_np(landmarks)
# 可选:绘制面部关键点
for (x, y) in landmarks:
cv2.circle(frame, (x, y), 1, (0, 0, 255), -1)
# 显示结果
cv2.imshow('Face Detection', frame)
# 按q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```