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 实现插入排序算法
Jun 05 Python
python任务调度实例分析
May 19 Python
Python批量重命名同一文件夹下文件的方法
May 25 Python
python实现用户登陆邮件通知的方法
Jul 09 Python
Python中基本的日期时间处理的学习教程
Oct 16 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
python删除某个字符
Mar 19 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
如何一键升级Python所有包
Nov 05 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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
学习php开源项目的源码指南
2014/12/21 PHP
php单例模式实现方法分析
2015/03/14 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
自制PHP框架之设计模式
2017/05/07 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
php5与php7的区别点总结
2019/10/11 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
javascript实现可键盘控制的抽奖系统
2016/03/10 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
用pycharm开发django项目示例代码
2018/10/24 Python
python assert的用处示例详解
2019/04/01 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
python with语句的原理与用法详解
2020/03/30 Python
应届生煤化工求职信
2013/10/21 职场文书
入党转正介绍人意见
2015/06/03 职场文书
mysql的单列多值存储实例详解
2022/04/05 MySQL
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
python如何为list实现find方法
2022/05/30 Python