#yyds干货盘点#Python图像处理,cv2模块,OpenCV实现人脸检测

Posted 逻辑教育

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#Python图像处理,cv2模块,OpenCV实现人脸检测相关的知识,希望对你有一定的参考价值。

前言

利用Python实现OpenCV实现人脸检测,废话不多说~

让我们愉快地开始吧~

开发工具

Python版本: 3.6.4

相关模块:

cv2模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

OpenCV是一个开源、跨平台的计算机视觉库,可以用于各种图像和视频处理操作。

今天就来告诉大家如何通过OpenCV对人脸进行检测

图片检测

看一下图片检测,原图

训练数据是现成的,利用现成的数据,通过训练进而来检测人脸

具体代码如下

import cv2

# 图片名
filename = cxk.png

def detect(filename):
    # cv2级联分类器CascadeClassifier,xml文件为训练数据
    face_cascade = cv2.CascadeClassifier(haarcascade_frontalface_default.xml)
    # 读取图片
    img = cv2.imread(filename)
    # 转灰度图
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 进行人脸检测
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    # 绘制人脸矩形框
    for (x, y, w, h) in faces:
        img = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
    # 命名显示窗口
    cv2.namedWindow(people)
    # 显示图片
    cv2.imshow(people, img)
    # 保存图片
    cv2.imwrite(cxks.png, img)
    # 设置显示时间,0表示一直显示
    cv2.waitKey(0)

detect(filename)

结果展示

检测视频

视频用的抖音的上的视频

这里只截取检测效果比较好的视频段作为例子

毕竟训练数据的质量摆在那里,有的时候会出现一些错误

如想提高检测的精度,便需要一个高质量的人脸数据库

具体代码如下

import cv2

def face_rec():
    # 加载视频
    cameraCapture = cv2.VideoCapture(video.mp4)
    # cv2级联分类器CascadeClassifier,xml文件为训练数据
    face_cascade = cv2.CascadeClassifier(haarcascade_frontalface_default.xml)
    # 读取数据
    success, frame = cameraCapture.read()
    while success and cv2.waitKey(1) == -1:
        # 读取数据
        ret, img = cameraCapture.read()
        # 进行人脸检测
        faces = face_cascade.detectMultiScale(img, 1.3, 5)
        # 绘制矩形框
        for (x, y, w, h) in faces:
            img = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
        # 设置显示窗口
        cv2.namedWindow(camera, 0)
        cv2.resizeWindow(camera, 840, 480)
        # 显示处理后的视频
        cv2.imshow(camera, img)
        # 读取数据
        success, frame = cameraCapture.read()
    # 释放视频
    cameraCapture.release()
    # 释放所有窗口
    cv2.destroyAllWindows()

if __name__ == __main__:
    face_rec()

结果为视频,这里就不展示了大家可以去网上找下视频做测试就会明白~

以上是关于#yyds干货盘点#Python图像处理,cv2模块,OpenCV实现人脸检测的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#Python图像处理,cv2模块,OpenCV实现边缘检测

#yyds干货盘点#Python图像处理,cv2模块,OpenCV实现目标跟踪

#yyds干货盘点#Python实战案例,CV2模块,Python实现抖音字符视频

#yyds干货盘点# Windows下Python-openCV学习-------图像处理基本

#yyds干货盘点#python基础学习系列

#yyds干货盘点# Python Opencv实战之图像阈值和模糊处理,万字实战,收藏起来吧~