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的__builtin__模块中的一些要点知识
May 02 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
python正则中最短匹配实现代码
Jan 16 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
Django csrf 验证问题的实现
Oct 09 Python
对python中大文件的导入与导出方法详解
Dec 28 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
Python-opencv 双线性插值实例
Jan 17 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
Django 实现jwt认证的示例
Apr 30 Python
python 提取html文本的方法
May 20 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多维数组去掉重复值示例分享
2014/03/02 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
实践Vim配置python开发环境
2018/07/02 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
python 字符串常用函数详解
2019/09/11 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
什么是岗位职责
2013/11/12 职场文书
数据员岗位职责
2013/11/19 职场文书
人事文员岗位职责
2014/02/16 职场文书
大学军训感言400字
2014/03/11 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
个人欠条范本
2015/07/03 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL