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实现简单的可逆加密程序实例
Mar 05 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
用Python实现KNN分类算法
Dec 22 Python
python距离测量的方法
Mar 06 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
对json字符串与python字符串的不同之处详解
Dec 19 Python
PyCharm刷新项目(文件)目录的实现
Feb 14 Python
python实现信号时域统计特征提取代码
Feb 26 Python
PyQt QMainWindow的使用示例
Mar 24 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 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的5个安全措施小结
2012/07/17 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
python 字典套字典或列表的示例
2019/12/16 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
教师旷工检讨书
2014/01/18 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
无毒社区工作方案
2014/05/23 职场文书
销售提升方案
2014/06/07 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js