以下是一个简单的 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' 键。

Python OpenCV 人脸库创建教程:一步一步教你使用摄像头识别和保存人脸

原文地址: https://www.cveoy.top/t/topic/mPa4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录