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 相关文章推荐
Python解析json文件相关知识学习
Mar 01 Python
Python编程实现的简单Web服务器示例
Jun 22 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
Python之批量创建文件的实例讲解
May 10 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Python sublime安装及配置过程详解
Jun 29 Python
python json.dumps() json.dump()的区别详解
Jul 14 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 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
用Php实现链结人气统计
2006/10/09 PHP
我的论坛源代码(八)
2006/10/09 PHP
mysql总结之explain
2012/02/27 PHP
php加密解密字符串示例
2016/10/13 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
mac系统安装Python3初体验
2018/01/02 Python
python生成九宫格图片
2018/11/19 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
python 修改本地网络配置的方法
2019/08/14 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
Python对wav文件的重采样实例
2020/02/25 Python
pycharm永久激活超详细教程
2020/10/29 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
Python爬虫开发与项目实战
2020/12/16 Python
新锐科技Java程序员面试题
2016/07/25 面试题
Java基础面试题
2012/11/02 面试题
校班主任推荐信范文
2013/12/03 职场文书
暑期社会实践方案
2014/02/05 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis