python3.8动态人脸识别的实现示例


Posted in Python onSeptember 21, 2020

一、准备依赖库

pip install dlib
pip python-opencv

二、代码实现 

#coding: utf-8
"""
从视屏中识别人脸,并实时标出面部特征点
"""
import dlib           #人脸识别的库dlib

import cv2           #图像处理的库OpenCv

# 使用特征提取器get_frontal_face_detector
detector = dlib.get_frontal_face_detector()
# 读入视频文件
# cap = cv2.VideoCapture("row.MP4")
#建cv2摄像头对象,这里使用电脑自带摄像头,如果接了外部摄像头,则自动切换到外部摄像头
cap = cv2.VideoCapture(0)

# 设置视频参数,propId设置的视频参数,value设置的参数值
cap.set(3, 480)
# 截图screenshoot的计数器
cnt = 0
# cap.isOpened() 返回true/false 检查初始化是否成功
while(cap.isOpened()):

  # cap.read()
  # 返回两个值:
  #  一个布尔值true/false,用来判断读取视频是否成功/是否到视频末尾
  #  图像对象,图像的三维矩阵
  flag, im_rd = cap.read()

  # 每帧数据延时1ms,延时为0读取的是静态帧
  k = cv2.waitKey(1)

  # 取灰度
  img_gray = cv2.cvtColor(im_rd, cv2.COLOR_RGB2GRAY)

  # 使用人脸检测器检测每一帧图像中的人脸。并返回人脸数rects
  faces = detector(img_gray, 0)

  # 待会要显示在屏幕上的字体
  font = cv2.FONT_HERSHEY_SIMPLEX

  # 如果检测到人脸
  if(len(faces)!=0):

    # 对每个人脸都画出框框
    for i in range(len(faces)):
      # enumerate方法同时返回数据对象的索引和数据,k为索引,d为faces中的对象
      for k, d in enumerate(faces):
        # 用红色矩形框出人脸
        cv2.rectangle(im_rd, (d.left(), d.top()), (d.right(), d.bottom()), (0, 255, 0),2)
        # 计算人脸热别框边长
        face_width = d.right() - d.left()
        #在上方显示文字
        cv2.putText(im_rd, str(face_width) , (d.left(), d.top()-20), font, 0.5, (255, 0, 0), 1)
    # 标出人脸数
    cv2.putText(im_rd, "Faces: "+str(len(faces)), (20,50), font, 1, (0, 0, 255), 1, cv2.LINE_AA)
  else:
    # 没有检测到人脸
    cv2.putText(im_rd, "No Face", (20, 50), font, 1, (0, 0, 255), 1, cv2.LINE_AA)

  # 添加说明
  im_rd = cv2.putText(im_rd, "S: screenshot", (20, 400), font, 0.8, (0, 0, 255), 1, cv2.LINE_AA)
  im_rd = cv2.putText(im_rd, "Q: quit", (20, 450), font, 0.8, (0, 0, 255), 1, cv2.LINE_AA)


  #检测按键
  k = cv2.waitKey(1)
  # 按下s键截图保存
  if (k == ord('s')):
    cnt+=1
    cv2.imwrite("screenshoot"+str(cnt)+".jpg", im_rd)
  # 按下q键退出
  if(k == ord('q')):
    break

  # 窗口显示
  cv2.imshow("camera", im_rd)

# 释放摄像头
cap.release()
# 删除建立的窗口
cv2.destroyAllWindows()

三、实验结果

python3.8动态人脸识别的实现示例

到此这篇关于python3.8动态人脸识别的实现示例的文章就介绍到这了,更多相关python3.8动态人脸识别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python从ftp下载数据保存实例
Nov 20 Python
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
Python os模块学习笔记
Jun 21 Python
Python3 循环语句(for、while、break、range等)
Nov 20 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 Python
对python特殊函数 __call__()的使用详解
Jul 02 Python
Django框架反向解析操作详解
Nov 28 Python
python 字典套字典或列表的示例
Dec 16 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
python生成word合同的实例方法
Jan 12 Python
深度学习详解之初试机器学习
Apr 14 Python
如何在Anaconda中打开python自带idle
Sep 21 #Python
Python 实现国产SM3加密算法的示例代码
Sep 21 #Python
python如何实现DES加密
Sep 21 #Python
如何从csv文件构建Tensorflow的数据集
Sep 21 #Python
python打包多类型文件的操作方法
Sep 21 #Python
python 星号(*)的多种用途
Sep 21 #Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 #Python
You might like
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
cookie的secure属性详解
2015/04/08 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python小程序实现刷票功能详解
2019/07/17 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
信息管理专业推荐信
2013/10/29 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
学生干部培训方案
2014/06/12 职场文书
学校欢迎标语
2014/06/18 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
安全目标责任书
2014/07/22 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python