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

所以接下来会分享一些关于OpenCV有趣的小案例,毕竟要让学习变得有趣。

本次就来了解一下,如何通过OpenCV对人脸进行检测。

其中OpenCV有C++和Python两种,这里当然选用Python啦。

环境什么的,就靠大伙自己去百度了。

/ 01 / 图片检测

先来看一下图片检测,原图如下。

是谁我就不说了。律师函,不存在的。

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

代码如下。

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)

最终结果如下。

图片好了,那么接下来就来看视频。

/ 02 / 视频检测

视频用的抖音的上的视频。

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

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

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

由于资源有限,我就直接偷懒了。

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()

最终视频结果如下。

https://v.qq.com/x/page/r087969or1q.html

小姐姐的脸全被圈起来了!

/ 03 / 总结

相关数据已上传网盘:

链接:https://pan.baidu.com/s/17xhfZXi1wL0UFZXFSZEl8Q 提取码:o222

需要给图像打标签,生成人脸识别数据。

然后通过OpenCV的Eigenfaces算法进行人脸识别。

OpenCV:人脸检测相关推荐

  1. OpenCV与图像处理学习十七——OpenCV人脸检测(含代码)

    OpenCV与图像处理学习十七--OpenCV人脸检测(含代码) 一.人脸识别概要 1.1 人脸检测 1.2 人脸对齐(Face Alignment) 1.3 人脸特征提取(Face Feature ...

  2. OpenCV-Python实战(21)——OpenCV人脸检测项目在Web端的部署

    OpenCV-Python实战(21)--OpenCV人脸检测项目在Web端的部署 0. 前言 1. OpenCV 人脸检测项目在 Web 端的部署 1.1 解析请求并构建响应 1.2 构建请求进行测 ...

  3. keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)

    人脸识别热门,表情识别更加.但是表情识别很难,因为人脸的微表情很多,本节介绍一种比较粗线条的表情分类与识别的办法. Keras系列: 1.keras系列︱Sequential与Model模型.kera ...

  4. .NetCore——基于OpenCV人脸检测

    .NetCore--基于OpenCV人脸检测 一.介绍 在.NetCore中,基于OpenCV实现对静态图片的人脸识别,检测人脸是否存在,且存在的数量.注: 不能自动学习人脸特征. 二.使用 首先引入 ...

  5. 人脸识别系统——OpenCV人脸检测

    EduCoder:人脸识别系统--OpenCV人脸检测 第1关:图片基本操作 编程要求: 请在右侧编辑器中的BEGIN-END之间编写代码,完成如下要求: 导入openCV库(cv2): 读取路径 s ...

  6. 基于Haar分类器的OpenCV人脸检测实例

    一.人脸的Haar特征分类器是什么 人脸的Haar特征分类器就是一个XML文件,该文件中会描述人脸的Haar特征值.当然Haar特征的用途可不止可以用来描述人脸这一种,用来描述眼睛,嘴唇或是其它物体也 ...

  7. 【EduCoder答案】人脸识别系统——OpenCV人脸检测

    简介 答案查询的入口网页版 其他各类实训答案的目录见这里 答案获取的方法简介见这里 并不是所有的关卡都有答案,有些只有部分关卡有 不要直接复制答案哦 人脸识别系统 -- OpenCV人脸检测 > ...

  8. opencv人脸检测总结

    主要参考了很多大神的总结,做了自己的整理,还没有完成,,后续不断完善补充 opencv人脸检测总结 一.人脸检测介绍 1. 人脸检测分类 基于知识方法主要利用先验知识将人脸看作器官特征的组合,根据眼睛 ...

  9. C++:opencv 人脸检测

    C++:opencv 人脸检测 问题描述: 要求 输入一张图片:输出圈出人脸的图片: vs2015: opencv3.4.6: 效果 输入: 输出: 代码实现: #include "open ...

  10. C# OpenCV人脸检测(三) DNN加载FaceDetectorYN模型做人脸检测

    点击下方卡片,关注"OpenCV与AI深度学习"公众号 视觉/图像重磅干货,第一时间送达 本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍C# OpenCV人 ...

最新文章

  1. 《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程5
  2. CURL模拟请求(get/post)
  3. 未来,你或许会“咬牙切齿”地操纵手机
  4. Spring Boot 启动加载数据 CommandLineRunner
  5. JAVA实现可视化的xpath_Java学习之XPath
  6. Winfrom窗体间传值
  7. Redhat7 Dell服务器驱动安装(Bin格式)
  8. 一步一步写算法(之线性队列)
  9. 发现新世界:神级浏览器插件TamperMonkey(暴力猴)
  10. 最全CTF Web题思路总结(更新ing)
  11. 直流电机脉宽调制调速
  12. gateway请求就是404 nacos+gateway 搭建网关gateway
  13. 解决“你没有权限访问,请与网络管理员联系”
  14. 《五朵金花》电影影评
  15. 虾米音乐穷X事件程序员怎么样呢?
  16. 力扣的组合总和解法 (Python)
  17. 视觉注意力的循环神经网络模型
  18. 后BT时代,我们该怎么办?
  19. 数据结构之线性表(手绘版)
  20. 2019CCPC网络赛部分题解

热门文章

  1. oracle 突然报12505错误,ORACLE数据库 ORA-12505报错处理方法
  2. 百度前端必会手写面试题整理
  3. Python实现简易停车场系统
  4. 解决git下载很慢的问题
  5. DOCTYPE作用及含义
  6. git连接远程仓库(github)
  7. 安装webpack,webpack-cli,webpack-dev-server(版本一定要兼容!)
  8. JS练习 -- 动态加载JS
  9. python中闭包函数_Python的闭包问题(关于内嵌函数引用闭包函数的变量问题)
  10. java反射的原理_java反射机制的实现原理