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下Fabric的简单部署方法
Jul 14 Python
分享python数据统计的一些小技巧
Jul 21 Python
利用python批量修改word文件名的方法示例
Oct 17 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
Python(PyS60)实现简单语音整点报时
Nov 18 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
关于python的缩进规则的知识点详解
Jun 22 Python
Python打印不合法的文件名
Jul 31 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输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
python多进程中的内存复制(实例讲解)
2018/01/05 Python
python后端接收前端回传的文件方法
2019/01/02 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
社区庆中秋节活动方案
2014/02/07 职场文书
倡议书的写法
2014/08/30 职场文书
办护照工作证明
2014/10/01 职场文书
学习十八大标语
2014/10/09 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
小学中队长竞选稿
2015/11/20 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
对Golang中的FORM相关字段理解
2021/05/02 Golang
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript