Python学习笔记之视频人脸检测识别实例教程


Posted in Python onMarch 06, 2019

前言

上一篇博文与大家分享了简单的图片人脸识别技术,其实在实际应用中,很多是通过视频流的方式进行识别,比如人脸识别通道门禁考勤系统、人脸动态跟踪识别系统等等。

下面话不多说了,来一起看看详细的介绍吧

案例

这里我们还是使用 opencv 中自带了 haar人脸特征分类器,通过读取一段视频来识别其中的人脸。

代码实现:

# -*- coding: utf-8 -*-
__author__ = "小柒"
__blog__ = "https://blog.52itstyle.vip/"
import cv2
import os


# 保存好的视频检测人脸并截图
def CatchPICFromVideo(window_name, camera_idx, catch_pic_num, path_name):
 cv2.namedWindow(window_name)

 # 视频来源
 cap = cv2.VideoCapture(camera_idx)

 # 告诉OpenCV使用人脸识别分类器
 classfier = cv2.CascadeClassifier(os.getcwd()+"\\haarcascade\\haarcascade_frontalface_alt.xml")

 # 识别出人脸后要画的边框的颜色,RGB格式, color是一个不可增删的数组
 color = (0, 255, 0)

 num = 0
 while cap.isOpened():
 ok, frame = cap.read() # 读取一帧数据
 if not ok:
  break

 grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 将当前桢图像转换成灰度图像

 # 人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
 faceRects = classfier.detectMultiScale(grey, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
 if len(faceRects) > 0: # 大于0则检测到人脸
  for faceRect in faceRects: # 单独框出每一张人脸
  x, y, w, h = faceRect

  # 将当前帧保存为图片
  img_name = "%s/%d.jpg" % (path_name, num)
  # print(img_name)
  image = frame[y - 10: y + h + 10, x - 10: x + w + 10]
  cv2.imwrite(img_name, image, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

  num += 1
  if num > (catch_pic_num): # 如果超过指定最大保存数量退出循环
   break

  # 画出矩形框
  cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)

  # 显示当前捕捉到了多少人脸图片了,这样站在那里被拍摄时心里有个数,不用两眼一抹黑傻等着
  font = cv2.FONT_HERSHEY_SIMPLEX
  cv2.putText(frame, 'num:%d/100' % (num), (x + 30, y + 30), font, 1, (255, 0, 255), 4)

  # 超过指定最大保存数量结束程序
 if num > (catch_pic_num): break

 # 显示图像
 cv2.imshow(window_name, frame)
 c = cv2.waitKey(10)
 if c & 0xFF == ord('q'):
  break

  # 释放摄像头并销毁所有窗口
 cap.release()
 cv2.destroyAllWindows()


if __name__ == '__main__':
 # 连续截100张图像
 CatchPICFromVideo("get face", os.getcwd()+"\\video\\kelake.mp4", 100, "E:\\VideoCapture")

动图有点花,讲究着看吧:

Python学习笔记之视频人脸检测识别实例教程

如果是捕捉摄像头,只需要改变以下代码即可:

# 如果获取摄像头,参数修改为 0 即可
cap = cv2.VideoCapture(0)

源码

https://gitee.com/52itstyle/Python/tree/master/Day09(本地下载)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中zfill()方法的使用教程
May 20 Python
Windows下Python的Django框架环境部署及应用编写入门
Mar 10 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
PyQt QCombobox设置行高的方法
Jun 20 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
Django 返回json数据的实现示例
Mar 05 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Jul 14 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 #Python
详解django2中关于时间处理策略
Mar 06 #Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 #Python
Django+Xadmin构建项目的方法步骤
Mar 06 #Python
Python中最大递归深度值的探讨
Mar 05 #Python
Python小进度条显示代码
Mar 05 #Python
Python嵌套式数据结构实例浅析
Mar 05 #Python
You might like
用PHP实现文件上传二法
2006/10/09 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
javascript cookies操作集合
2010/04/12 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
Node.js 的模块知识汇总
2017/08/16 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
巴西手表购物网站:eclock
2019/03/19 全球购物
园林技术个人的自我评价
2014/01/08 职场文书
法人授权委托书格式
2014/04/08 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
公司踏青活动方案
2014/08/16 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
公司委托书格式范文
2014/10/09 职场文书
临时用工协议书范本
2014/10/29 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫