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设置检查点简单实现代码
Jul 01 Python
Python实现备份文件实例
Sep 16 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
django框架自定义用户表操作示例
Aug 07 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
关于python中导入文件到list的问题
Oct 31 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
python字典与json转换的方法总结
Dec 28 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 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
js时间控件只显示年月
2017/01/08 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
params有什么用
2016/03/01 面试题
大专生工程监理求职信
2013/10/04 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
《母鸡》教学反思
2014/02/25 职场文书
2014年党支部学习材料
2014/05/19 职场文书
幼儿园标语大全
2014/06/19 职场文书
食品安全责任书范本
2015/05/09 职场文书
个人收入证明格式
2015/06/24 职场文书
2016情人节宣传语
2015/07/14 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang