视频人脸检测——OpenCV版(三)

视频人脸检测是图片人脸检测的高级版本,图片检测详情点击查看我的上一篇《图片人脸检测——OpenCV版(二)》 

实现思路:

调用电脑的摄像头,把摄像的信息逐帧分解成图片,基于图片检测标识出人脸的位置,把处理的图片逐帧绘制给用户,用户看到的效果就是视频的人脸检测。

效果预览:

实现步骤

使用OpenCV调用摄像头并展示

获取摄像头:

cap = cv2.VideoCapture(0)

参数0表示,获取第一个摄像头。

显示摄像头 逐帧显示,代码如下:

while (1): ret, img = cap.read()cv2.imshow("Image", img)if cv2.waitKey(1) & 0xFF == ord('q'):break
cap.release()  # 释放摄像头
cv2.destroyAllWindows()  # 释放窗口资源

cv2.waitKey(1) & 0xFF使用了“&”位元算法,含义是获取用户输入的最后一个字符的ASCII码,如果输入的是“q”,则跳出循环。

视频的人脸识别

这个时候,用到了上一节的《图片人脸检测——OpenCV版(二)》 把人脸识别的代码封装成方法,代码如下:

def discern(img):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cap = cv2.CascadeClassifier("C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml")faceRects = cap.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(50, 50))if len(faceRects):for faceRect in faceRects:x, y, w, h = faceRectcv2.rectangle(img, (x, y), (x + h, y + w), (0, 255, 0), 2)  # 框出人脸cv2.imshow("Image", img)

 再循环摄像头帧图片的时候,调用图片识别方法即可,代码如下:

# 获取摄像头0表示第一个摄像头
cap = cv2.VideoCapture(0)
while (1):  # 逐帧显示ret, img = cap.read()# cv2.imshow("Image", img)discern(img)if cv2.waitKey(1) & 0xFF == ord('q'):break
cap.release()  # 释放摄像头
cv2.destroyAllWindows()  # 释放窗口资源

  

完整的代码如下:

# -*- coding:utf-8 -*-
# OpenCV版本的视频检测
import cv2# 图片识别方法封装
def discern(img):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cap = cv2.CascadeClassifier("C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml")faceRects = cap.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(50, 50))if len(faceRects):for faceRect in faceRects:x, y, w, h = faceRectcv2.rectangle(img, (x, y), (x + h, y + w), (0, 255, 0), 2)  # 框出人脸cv2.imshow("Image", img)# 获取摄像头0表示第一个摄像头
cap = cv2.VideoCapture(0)
while (1):  # 逐帧显示ret, img = cap.read()# cv2.imshow("Image", img)discern(img)if cv2.waitKey(1) & 0xFF == ord('q'):break
cap.release()  # 释放摄像头
cv2.destroyAllWindows()  # 释放窗口资源

 

 


往期目录

视频人脸检测——Dlib版(六)
OpenCV添加中文(五)
图片人脸检测——Dlib版(四)
视频人脸检测——OpenCV版(三)
图片人脸检测——OpenCV版(二)
OpenCV环境搭建(一)
更多更新,欢迎访问我的github:https://github.com/vipstone/faceai

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JENKINS使用DOCKER运行PYTEST并且出ALLURE报告

背景 最近想做一个简单的pytest 测试,用allure出报告,结果发现网上的方法都是在windows上装jenkins,然后用jenkins跑一个本地的运行环境。这种做法明显很不2019年。于是我决定做一个在jenkins上使用docker运行pytest,然后再出allure报告的文…

配置设备作为DHCP 服务器(基于接口地址池)

DHCP 服务器简介: 通常用户希望网络中的每台终端能够动态获取IP地址、DNS服务器的IP地址、路由信 息、网关信息等网络参数,不需要手动配置终端的IP地址等网络参数;另外,针对一 些移动终端(手机、ipad、办公笔记本等)希望能够即插即用,不需要每次修改终端 的IP等网络参数…

zabbix企业应用之low level discovery监控mysql

之前介绍了使用zabbix监控固定3306端口的mysql(文章地址为http://dl528888.blog.51cto.com/2382721/1346590),有个不好的地方是只能监控固定的3306端口,如果是非3306端口的话,需要修改模板,如果主机有多个m…

图片人脸检测——Dlib版(四)

上几篇给大家讲了OpenCV的图片人脸检测,而本文给大家带来的是比OpenCV更加精准的图片人脸检测Dlib库。 往期目录 视频人脸检测——Dlib版(六)OpenCV添加中文(五)图片人脸检测——Dlib版(四)视频…

配置设备作为DHCP 服务器(基于全局地址池)

DHCP 服务器简介: 通常用户希望网络中的每台终端能够动态获取IP地址、DNS服务器的IP地址、路由信 息、网关信息等网络参数,不需要手动配置终端的IP地址等网络参数;另外,针对一 些移动终端(手机、ipad、办公笔记本等)希望能够即插即用,不需要每次修改终端 的IP等网络参数…

kubernetes 实战 使用 nfs 作为动态 storageClass 存储

kubernetes 实战 使用 nfs 作为动态 storageClass 存储 概述 之前有介绍过 Kubernetes 实战 pv and pvc, 相信使用过的pv和pvc的同学或者有过虚拟化经验的人来说肯定会想到很多问题,比如每次申请 pvc 都需要手动添加pv,这岂不是太不方便了。那…

OpenCV环境搭建(一)

OpenCV环境搭建 环境搭建为OpenCV的python(一下简称py)开发环境搭建,建立在py3的环境和语法上实现的。 windows系统搭建 系统环境:windows 10 python 3.6 OpenCV 3.4.1 一、安装python python的安装之前在python自学笔记的项…

判断一组数字中

public class sushu{public static void main (String args []){//定义i数字范围为100-200&#xff1b;for (int i 100 ; i < 200; i){//定义一个变量bboolean b false;//定义j大于等于2&#xff0c;循环取余数&#xff0c;判断如果K等于0则除尽&#xff0c;此数不为素数f…

git+pylint实现python提交代码格式校验

环境&#xff1a;win10(64)&#xff0c;python3.7.1&#xff0c;git2.7.2&#xff0c;pylint-2.3.1&#xff0c;git_pylint_commit_hook-2.5.1 以上为当期搭建所用到的版本&#xff0c;有异常时方便查找问题。 安装pylint&#xff0c;pylint是一个单独可以对python文件进行格…

OpenCV添加中文(五)

OpenCV添加文字的方法putText(…)&#xff0c;添加英文是没有问题的&#xff0c;但如果你要添加中文就会出现“&#xff1f;&#xff1f;&#xff1f;”的乱码&#xff0c;需要特殊处理一下。 下文提供封装好的&#xff08;代码&#xff09;方法&#xff0c;供OpenCV添加中文使…

UpdatePanel的内容中出现自定义多语言运行异常

2019独角兽企业重金招聘Python工程师标准>>> 我们项目有双语要求&#xff0c;采用的是自定义符号控制。在页面加载时进行翻译。 在xml文件中有如下格式的配置 <items> <resource page"~/SalesAppeal/SalesAppealCO.aspx"> <item key"…

ELK开机自启动脚本

elasticsearch服务配置文件 cd /etc/init.dtouch elasticsearchchmod x elasticsearchvi elasticsearch并输入以下内容: #!bin/bash# chkconfig: 2345 21 89 # description: elasticsearch# JAVA_HOME/usr/lib/jvm/jdk1.8.0_91 ES_HOME/usr/local/elasticsearch-6.7.2 case…

QT5获取QPlainTextEdit 某行内容

#include <QTextBlock> #include <QMessageBox>QString str;//获取总行数 str QString::number(ui->plainTextEdit->document()->lineCount()); QMessageBox::information(this, "information", str);//输出某行内容 str ui->plainTextEdi…

pip/pip3更换国内源

pip/pip3更换国内源 用途&#xff1a;pip更换为国内源&#xff0c;可以大大的提高安装成功率和速度。 Windows更换pip/pip3源 打开目录&#xff1a;%appdata%新增pip文件夹&#xff0c;新建pip.ini文件给pip.ini添加内容 [global] timeout 6000 index-url https://pypi.t…

使用Bazel编译报错ERROR: Unrecognized option: --experimental_repo_remote_exec解决方法

ERROR: Unrecognized option: --experimental_repo_remote_exec 一、问题&#xff1a; INFO: Options provided by the client:Inherited common options: --isatty1 --terminal_columns80 INFO: Reading rc options for version from /home/emadboctor/tensorflow/.bazelrc:I…

QT5获取CPU编号和硬盘序列号

windows下执行命令除了用cmd之外&#xff0c;还有个东西叫WMIC&#xff0c;非常强大&#xff0c;可以通过他获取很多信息&#xff0c;包括硬件信息。 #include <QProcess>QString frmMain::getWMIC(const QString &cmd) {//获取cpu名称&#xff1a;wmic cpu get Nam…

视频人脸检测——Dlib版(六)

往期目录 视频人脸检测——Dlib版&#xff08;六&#xff09; OpenCV添加中文&#xff08;五&#xff09; 图片人脸检测——Dlib版&#xff08;四&#xff09; 视频人脸检测——OpenCV版&#xff08;三&#xff09; 图片人脸检测——OpenCV版&#xff08;二&#xff09; …

解决 wamp网站访问慢的问题

最近使用wamp进行调试。 一个简单页面发现wamp的响应达10s。 经过研究发现&#xff0c;是wamp的sql部分拖慢了访问速度&#xff0c;追深后发现是&#xff0c;mysql进行了dns解析而导致反问速度超慢的情况&#xff1b; 所以给mysql 减减压吧&#xff1a; my.ini(Linux下为 my.co…

Ubuntu apt-get和pip源更换

Ubuntu apt-get和pip源更换 更新数据源为国内&#xff0c;是为了加速安装包的增加速度。 更换apt-get数据源 输入&#xff1a;sudo -s切换为root超级管理员&#xff1b;执行命令&#xff1a;vim /etc/apt/sources.list&#xff1b;使用命令&#xff1a;%d 清空所有内容&…

OpenPose+win10安装

openpose在win10上的环境配置和安装&#xff0c;主要参考&#xff1a;OpenPose_1.3.0 vs2017 cuda_9.2.148_win10 cudnn9.2-windows10-x64-v7.2.1.38 windows 配置教程_无情时尚的博客-CSDN博客_openpose vs 另一篇博客后半部分有讲如何使用代码实现相应的功能&#xff1a;…