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 连连看连接算法
Nov 22 Python
Python操作json数据的一个简单例子
Apr 17 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
python使用Tesseract库识别验证
Mar 21 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
Python如何转换字符串大小写
Jun 04 Python
python实现文件分片上传的接口自动化
Nov 19 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
Python一行代码实现自动发邮件功能
May 30 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初学者头疼十四条问题大总结
2008/11/12 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
实例解析Array和String方法
2016/12/14 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
python的变量与赋值详细分析
2017/11/08 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
四风存在的原因分析
2014/02/11 职场文书
项目经理岗位职责
2015/01/31 职场文书
教师个人年度总结
2015/02/11 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
孙振耀退休感言
2015/08/01 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
求职自我评价参考范文
2019/05/16 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书