当前位置:   article > 正文

【附源码】Python :人脸实时检测与抓捕_python抓去人脸识别信息

python抓去人脸识别信息

系列文章目录

Python 检测学习:人脸检测与抓捕



前言

使用Python和OpenCV检测人脸是一个常见的计算机视觉任务。


一、项目需求

python opencv检测人脸代码,要求:使用计算机自带的摄像头进行实时抓捕与检测,并且框出人脸范围

二、使用步骤

1.源代码

代码如下(示例):

import cv2

# 加载Haar级联人脸检测器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 启动摄像头
cap = cv2.VideoCapture(0)  # 参数0通常表示默认的摄像头

if not cap.isOpened():
    print("无法打开摄像头")
    exit()

while True:
    # 读取摄像头的帧
    ret, frame = cap.read()

    if not ret:
        print("无法读取帧")
        break

    # 转换为灰度图像
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 检测人脸
    faces = face_cascade.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), (255, 0, 0), 2)

    # 显示结果
    cv2.imshow('Real-time Face Detection', frame)

    # 按'q'退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放摄像头
cap.release()
# 关闭所有OpenCV窗口
cv2.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

2.代码分析

分析如下:

  1. 加载Haar级联分类器:
    使用CascadeClassifier加载OpenCV自带的Haar级联人脸检测器。

  2. 启动摄像头:
    使用cv2.VideoCapture(0)启动默认摄像头。参数0表示第一个摄像头设备。

  3. 读取和处理帧:
    在循环中,使用cap.read()从摄像头读取每一帧。然后使用cv2.cvtColor将帧转换为灰度图像,因为人脸检测通常在灰度图像上进行。

  4. 检测人脸:
    使用detectMultiScale方法在灰度帧中检测人脸。

  5. 绘制矩形框:
    对检测到的每个人脸,使用cv2.rectangle在帧上绘制矩形框。

  6. 显示和退出:
    使用cv2.imshow显示带有人脸矩形框的帧。循环将持续进行,直到用户按下’q’键。使用cv2.waitKey(1)设置窗口响应按键的时间间隔为1毫秒。

  7. 释放资源:
    循环结束后,使用cap.release()释放摄像头资源,使用cv2.destroyAllWindows()关闭所有OpenCV创建的窗口。


总结

以上就是今天要讲的内容,本文代码将打开你的摄像头,并在窗口中显示实时视频流,同时在检测到的人脸上绘制矩形框。按’q’键可以退出程序。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号