Python OpenCV 人脸库创建教程:一步一步教你使用摄像头识别和保存人脸
以下是一个简单的 Python 程序,用于使用 OpenCV 创建人脸库。此程序将从摄像头捕获图像,并检测和识别人脸,然后将这些人脸添加到人脸库中。
import cv2
import os
# 创建人脸识别器
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 初始化摄像头
video_capture = cv2.VideoCapture(0)
# 创建人脸库目录
if not os.path.exists('face_database'):
os.makedirs('face_database')
# 设置人脸编号
face_id = input('
请输入人脸编号,按Enter键确认: ')
# 计数器
count = 0
# 开始捕获图像
while True:
# 读取一帧视频
ret, frame = video_capture.read()
# 转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
# 识别人脸
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
count += 1
# 保存人脸图像
cv2.imwrite('face_database/User.' + str(face_id) + '.' + str(count) + '.jpg', gray[y:y+h,x:x+w])
cv2.imshow('Video', frame)
# 按q键退出程序
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 捕获10张人脸后退出程序
if count >= 10:
break
# 释放摄像头资源
video_capture.release()
cv2.destroyAllWindows()
这个程序将从摄像头中捕获图像,并使用 OpenCV 的人脸识别器检测和识别人脸。每当检测到一个新的人脸时,它将把它保存到一个名为'face_database' 的目录中,并为每个人脸图像分配一个唯一的编号。程序将一直运行,直到捕获 10 张人脸图像。要退出程序,请按'q' 键。
原文地址: https://www.cveoy.top/t/topic/mPa4 著作权归作者所有。请勿转载和采集!