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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
Python深入学习之上下文管理器
Aug 31 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Django中更新多个对象数据与删除对象的方法
Jul 17 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
Python tkinter事件高级用法实例
Jan 31 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
python中温度单位转换的实例方法
Dec 27 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读取javascript设置的cookies的代码
2010/04/12 PHP
PHP加密扩展库Mcrypt安装和实例
2013/11/10 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
js获取内联样式的方法
2015/01/27 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
python实现apahce网站日志分析示例
2014/04/02 Python
从零学python系列之从文件读取和保存数据
2014/05/23 Python
python自定义异常实例详解
2017/07/11 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
Python编程中类与类的关系详解
2019/08/08 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python