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正则表达式的使用范例详解
Aug 08 Python
Python多进程编程技术实例分析
Sep 16 Python
python中__call__方法示例分析
Oct 11 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
详解Python进程间通信之命名管道
Aug 28 Python
python安装模块如何通过setup.py安装(超简单)
May 05 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 Python
基于Python中random.sample()的替代方案
May 23 Python
Python3读写ini配置文件的示例
Nov 06 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 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
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
pycharm永久激活超详细教程
2020/10/29 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
经济学博士求职自荐信范文
2013/11/23 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
走群众路线剖析材料
2014/10/09 职场文书
2014年检验员工作总结
2014/11/19 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
python删除csv文件的行列
2021/04/06 Python
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android