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之eval()函数危险性浅析
Jul 03 Python
在Django中创建第一个静态视图
Jul 15 Python
浅谈Python反射 & 单例模式
Mar 21 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
Python爬虫使用代理IP的实现
Oct 27 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
详解python对象之间的交互
Sep 29 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
scrapy-splash简单使用详解
Feb 21 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
Pytorch 如何实现常用正则化
May 27 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
thinkphp缓存技术详解
2014/12/09 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
django初始化数据库的实例
2018/05/27 Python
详解python3中的真值测试
2018/08/13 Python
python logging添加filter教程
2019/12/24 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
优秀毕业生求职信范文
2014/01/02 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏