Python人脸识别图像采集代码实战:基于OpenCV实现人脸检测与保存

本文将详细介绍使用Python和OpenCV库进行人脸图像采集的代码示例。代码演示了如何使用人脸检测器识别图像中的人脸,并提供了一个简单的界面,允许用户手动保存检测到的人脸图像。

代码示例

import cv2

cap = cv2.VideoCapture(0)
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')  # 加载检测器
color = (0, 255, 0)

num = 0
stop = False
while not stop:
    success, img = cap.read()
    gray = None
    faces = face_cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30),flags=cv2.CASCADE_SCALE_IMAGE)
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x-10, y-10), (x + w + 10, y + w + 10), (0, 255, 0), 2)
    print('Detected', len(faces), "face")
    label = 'Result: Detected ' + str(len(faces)) + " faces!"
    cv2.putText(img, label, (10, 20), cv2.FONT_HERSHEY_COMPLEX, 0.8, (0, 0, 0), 1)
    cv2.imshow('img', img)

    k = cv2.waitKey(10)  # 每0.1秒读一次键盘
    if k == ord("z") or k == ord("Z"):
        for (x, y, w, h) in faces:
            num += 1
            sub = img[y: y + h, x: x + w]
            img_name = "8_%d.jpg" % num
            image = cv2.resize(sub, (300, 400))
            cv2.imwrite(img_name, image, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

    elif k & 0xFF == ord('q'):  # 按下q程序结束
        stop = True
        cv2.destroyAllWindows()  # 释放窗口

代码流程

  1. 导入OpenCV库和必要的模块。
  2. 创建一个视频捕获对象并加载人脸检测器。
  3. 在一个循环中,从视频流中读取帧,并检测其中的人脸。
  4. 如果检测到人脸,则在图像上绘制矩形框并显示检测到的人脸数量。
  5. 如果按下“z”键,则将人脸图像保存到本地。
  6. 如果按下“q”键,则退出程序并释放窗口。

代码说明

  • cv2.VideoCapture(0):创建视频捕获对象,从默认摄像头获取视频流。
  • cv2.CascadeClassifier('haarcascade_frontalface_default.xml'):加载预训练的人脸检测器模型。
  • face_cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30),flags=cv2.CASCADE_SCALE_IMAGE):使用人脸检测器检测图像中的人脸。
  • cv2.rectangle(img, (x-10, y-10), (x + w + 10, y + w + 10), (0, 255, 0), 2):在检测到的人脸区域绘制矩形框。
  • cv2.imwrite(img_name, image, [int(cv2.IMWRITE_PNG_COMPRESSION), 9]):将检测到的人脸图像保存到本地。

总结

本文提供了一个简单的Python代码示例,演示了如何使用OpenCV进行人脸图像采集。该代码可以作为基础,用于开发更复杂的应用程序,例如人脸识别系统。

**注意:**为了运行代码,您需要安装OpenCV库。可以使用pip install opencv-python命令进行安装。

Python人脸识别图像采集代码实战:基于OpenCV实现人脸检测与保存

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

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