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

 更新时间:2018年05月25日 10:24:24   作者:艾克思工作室  
这篇文章主要为大家详细介绍了python3.6.3+opencv3.3.0实现动态人脸捕获,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本文实例为大家分享了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()

运行后如下:

这里写图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。

相关文章

  • Python实现PDF文字识别提取并写入CSV文件

    Python实现PDF文字识别提取并写入CSV文件

    这篇文章主要是和大家分享一个Python实现PDF文字识别与提取并写入?CSV文件的脚本。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-03-03
  • pandas的qcut()方法详解

    pandas的qcut()方法详解

    这篇文章主要介绍了pandas的qcut()方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • PyQt5每天必学之布局管理

    PyQt5每天必学之布局管理

    这篇文章主要为大家详细介绍了PyQt5每天必学之布局管理的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 教你如何使用Python下载B站视频的详细教程

    教你如何使用Python下载B站视频的详细教程

    这篇文章主要介绍了教你如何使用Python下载B站视频的详细教程,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Python中def()函数的实战练习题

    Python中def()函数的实战练习题

    def是define的缩写,用来自定义函数,下面这篇文章主要给大家介绍了关于Python中def()函数的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Python异常信息的不同展现方法总结

    Python异常信息的不同展现方法总结

    在日常开发的过程中,当代码报错时,我们通常要不断打印、阅读traceback提示信息,来调试代码,这篇文章介绍了如何实现一个Exception?Hooks,使得traceback模块的提示信息更加精确;同时还介绍了一些第三方库,这些库也提供了Exception?Hooks的功能
    2022-11-11
  • 详解Python发送邮件实例

    详解Python发送邮件实例

    这篇文章主要介绍了Python发送邮件实例,Python发送邮件需要smtplib和email两个模块,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 使用OpenCV实现仿射变换—平移功能

    使用OpenCV实现仿射变换—平移功能

    这篇文章主要介绍了使用OpenCV实现仿射变换—平移功能,需要的朋友可以参考下
    2019-08-08
  • 用Python绘制漫步图实例讲解

    用Python绘制漫步图实例讲解

    在本篇文章里小编给大家整理的是一篇关于用Python绘制漫步图实例讲解内容,需要的朋友们可以学习下。
    2020-02-02
  • PyCharm的设置方法和第一个Python程序的建立

    PyCharm的设置方法和第一个Python程序的建立

    今天小编就为大家分享一篇PyCharm的设置方法和第一个Python程序的建立,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论

?


http://www.vxiaotou.com