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 相关文章推荐
Django URL传递参数的方法总结
Aug 28 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
python机器人行走步数问题的解决
Jan 29 Python
django的登录注册系统的示例代码
May 14 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
使用Python画股票的K线图的方法步骤
Jun 28 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
Python selenium爬取微博数据代码实例
May 22 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 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读取30天之内的根据算法排序的代码
2008/04/06 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
PHP 编写大型网站问题集
2010/05/07 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
Vue头像处理方案小结
2018/07/26 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
Python生成随机验证码的两种方法
2015/12/22 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python调用staf自动化框架的方法
2018/12/26 Python
Django实现文件上传下载功能
2019/10/06 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
django model通过字典更新数据实例
2020/04/01 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
30年同学聚会感言
2014/01/30 职场文书
质量标语大全
2014/06/12 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书