python-opencv使用摄像头实时人脸检测

16.python-opencv使用摄像头实时人脸检测

第一章 python-opencv-图片导入和显示
第二章 python-opencv图像简单处理
第三章 python-opencv图像mask掩膜处理
第四章 python-opencv图像马赛克
第五章 python-opencv人脸马赛克
第六章 python-opencv人脸检测
第七章 python-opencv图像张贴
第八章 python-opencv轮廓绘制
第九章 python-opencv边缘检测
第十章 python-opencvpython-opencv边缘检测与人脸检测应用
第十一章 python-opencv直方图绘制与直方图均衡
第十二章 python-opencv图像傅里叶变换
第十三章 python-opencv图像的高通滤波和低通滤波
第十四章 python-opencv视频中的人脸检测
第十五章 python-opencv视频人脸检测和保存


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文主要介绍如何调用摄像头进行实时人脸检测,使用python-opencv和人脸检测器。


完整代码

import cv2

if __name__ == '__main__':

    # 打开摄像头
    cap = cv2.VideoCapture(0)
    # 加载人脸检测器
    faca_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt.xml')

    # 读取每一帧图像
    while True:
        flag, frame = cap.read()  # flag是否读取了图片
        if not flag:
            break

        # 将图像转化为灰度图像
        gray = cv2.cvtColor(frame, code = cv2.COLOR_BGR2GRAY)
        # 对每一帧灰度图像进行人脸检测
        faces = faca_detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=10)
        # 对每一个检测到的人脸区域绘制检测方框
        for x,y,w,h in faces:
            cv2.rectangle(frame,
                          pt1 = (x,y),
                          pt2 = (x+w,y+h),
                          color=[0,0,255],
                          thickness=2)

        # 显示检测到的结果
        cv2.imshow('face', frame)
        # 设置显示时长
        key = cv2.waitKey(1000//24)  # 注意要用整除//,因为毫秒为整数
        # 按q键退出
        if key == ord('q'):
            break

    # 销毁内存
    cv2.destroyAllWindows()
    cap.release()

其实本文的代码和上一篇博客《python-opencv视频人脸检测和保存》中的代码大致相同,不同的只是将加载视频的代码换成调用摄像头,

加载视频代码:

在这里插入图片描述

加载摄像头代码:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45848575/article/details/125420018