【附源码】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()

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’键可以退出程序。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃饭团的饭桶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值