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实现数通设备tftp备份配置文件示例
Apr 02 Python
Python获取服务器信息的最简单实现方法
Mar 05 Python
python图片验证码生成代码
Jul 02 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
浅谈django model的get和filter方法的区别(必看篇)
May 23 Python
Python程序退出方式小结
Dec 09 Python
python3爬取数据至mysql的方法
Jun 26 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
python  创建一个保留重复值的列表的补码
Oct 15 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
python 使用while循环输出*组成的菱形实例
Apr 12 Python
深入理解python协程
Jun 15 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
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
JavaScript函数定义方法实例详解
2019/03/05 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
python动态网页批量爬取
2016/02/14 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
为什么group by 和order by会使查询变慢
2014/05/16 面试题
我的网上商城创业计划书
2013/12/26 职场文书
高中教师考核方案
2014/05/18 职场文书
师德师风学习材料
2014/12/19 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL