python3.6.3+opencv3.3.0实现动态人脸捕获


Posted in Python onMay 25, 2018

本文实例为大家分享了python实现动态人脸捕获的具体代码,供大家参考,具体内容如下

步骤

  1. 载入cv2
  2. 捕获摄像头
  3. 获取第一帧图像
  4. 定义人脸识别信息
  5. 开始循环
  6. 对第一帧图像进行识别
  7. 标示脸部特征和方框
  8. 显示帧
  9. 如果一切正常则读入下一帧
  10. 循环直至捕获失败
  11. 如果键入‘q'退出循环
  12. 循环结束清零

程序

import cv2
import numpy as np

cv2.namedWindow("Face_Detect") #定义一个窗口
cap=cv2.VideoCapture(0) #捕获摄像头图像
success,frame=cap.read() #读入第一帧

classifier=cv2.CascadeClassifier("C:/opencv-3.3.0/data/haarcascades/haarcascade_frontalface_alt.xml")
**#定义人脸识别的分类数据集,需要自己查找,在opencv的目录下,参考上面我的路径**

while success:#如果读入帧正常
 size=frame.shape[:2]
 image=np.zeros(size,dtype=np.float16)
 image=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
 cv2.equalizeHist(image,image)
 divisor=8
 h,w=size
 minSize=(int(w/divisor),int(h/divisor)) #像素一定是整数,或者用w//divisor

 faceRects=classifier.detectMultiScale(image,1.2,2,cv2.CASCADE_SCALE_IMAGE,minSize)
 #人脸识别

 if len(faceRects)> 0:
  for faceRect in faceRects:
   x,y,w,h=faceRect
   cv2.circle(frame,(x+w//2,y+h//2),min(w//2,h//2),(255,0,0),2) #圆形轮廓
   cv2.circle(frame,(x+w//4,y+2*h//5),min(w//8,h//8),(0,255,0),2) #左眼轮廓
   cv2.circle(frame,(x+3*w//4,y+2*h//5),min(w//8,h//8),(0,255,0),2)#右眼轮廓
   cv2.circle(frame,(x+w//2,y+2*h//3),min(w//8,h//8),(0,255,0),2) #鼻子轮廓
   cv2.rectangle(frame, (x, y), (x+w, y+h), (0,0,255),2)   #矩形轮廓

 cv2.imshow("Face_Detect",frame)
 #显示轮廓
 success,frame=cap.read()#如正常则读入下一帧

 c=chr(key&255)
 if c in ['q','Q',chr(27)]:#如果键入‘q'退出循环
  print('exit'\n)
  break#退出循环

 #循环结束则清零
cap.release()
cv2.destroyAllWindows()

运行后如下:

python3.6.3+opencv3.3.0实现动态人脸捕获

python3.6.3+opencv3.3.0实现动态人脸捕获

python3.6.3+opencv3.3.0实现动态人脸捕获

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
windows下安装Python的XlsxWriter模块方法
May 03 Python
详解Django中间件执行顺序
Jul 16 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
破解安装Pycharm的方法
Oct 19 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
Pytorch之parameters的使用
Dec 31 Python
pyspark 随机森林的实现
Apr 24 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
Python 日期与时间转换的方法
Aug 01 Python
Python如何操作docker redis过程解析
Aug 10 Python
Python面向对象实现方法总结
Aug 12 Python
Python -m参数原理及使用方法解析
Aug 21 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 #Python
python matplotlib 在指定的两个点之间连线方法
May 25 #Python
基于python OpenCV实现动态人脸检测
May 25 #Python
使用matplotlib画散点图的方法
May 25 #Python
python调用OpenCV实现人脸识别功能
May 25 #Python
matplotlib subplots 设置总图的标题方法
May 25 #Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 #Python
You might like
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
PHP 实现重载
2021/03/09 PHP
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
Python循环语句之break与continue的用法
2015/10/14 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
基于django传递数据到后端的例子
2019/08/16 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
七年级上册语文教学计划
2015/01/22 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
运动会致辞稿
2015/07/29 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
python垃圾回收机制原理分析
2022/04/13 Python