视频人脸检测——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
视频人脸检测——OpenCV版(三)相关推荐
- 视频人脸检测——Dlib版(六)
往期目录 视频人脸检测--Dlib版(六) OpenCV添加中文(五) 图片人脸检测--Dlib版(四) 视频人脸检测--OpenCV版(三) 图片人脸检测--OpenCV版(二) OpenCV环境搭 ...
- 图片人脸检测——OpenCV版(二)
图片人脸检测 人脸检测使用到的技术是OpenCV,上一节已经介绍了OpenCV的环境安装,点击查看. 功能展示 识别一种图上的所有人的脸,并且标出人脸的位置,画出人眼以及嘴的位置,展示效果图如下: 多 ...
- python读取视频流做人脸识别_python实现图片,视频人脸识别(opencv版)
图片人脸识别 import cv2 filepath = "img/xingye-1.png" img = cv2.imread(filepath) # 读取图片 gray = c ...
- 视频人脸检测 opencv简单应用
简介 数据流图 环境安装 1. 安装opencv 2. 安装vlc 3. 安装ffmpeg 测试Camera拉流 测试openCV人脸检测功能 搭建ffmpeg码流转发服务 1. 启动 ffserve ...
- 图片人脸检测——Dlib版(四)
上几篇给大家讲了OpenCV的图片人脸检测,而本文给大家带来的是比OpenCV更加精准的图片人脸检测Dlib库. 往期目录 视频人脸检测--Dlib版(六) OpenCV添加中文(五) 图片人脸检测- ...
- opencv 人脸识别_人工智能-OpenCV+Python实现人脸识别(视频人脸检测)
上期文章我们分享了opencv识别图片中的人脸,OpenCV图片人脸检测,本期我们分享一下如何从视频中检测到人脸 视频人脸检测 OpenCV打开摄像头特别简单,只需要如下一句代码 capture = ...
- 人工智能-OpenCV+Python实现人脸识别(视频人脸检测)
上期文章我们分享了opencv识别图片中的人脸,OpenCV图片人脸检测,本期我们分享一下如何从视频中检测到人脸 视频人脸检测 OpenCV打开摄像头特别简单,只需要如下一句代码 capture = ...
- 【使用OpenCV进行视频人脸检测】------机器学习(附完整代码和数据集)
上篇文章介绍了OpenCV进行照片人脸检测,今天学习的是OpenCV进行视频人脸检测,所有的参考博文.文献.视频.代码都会在文末附上链接或文件压缩包. 本文的目录如下: 内容目录 一.Opencv 进 ...
- OpenCV实现视频人脸检测
利用OpenCV实现视频人脸检测,包含眼部检测.首先,将人脸检测和眼部检测需要的模型文件haarcascade_eye.xml和haarcascade_frontalface_default.xml放 ...
最新文章
- 记录Android Studio项目提交到github上的出错处理
- 随着加密货币市场稳定 比特币价格不可避免的会下降
- IDEA+selenium+TestNG+java+git+maven+jenkins实现Web UI自动化集成
- 写出程序删除链表中的所有接点
- CVPR2015:An Improved Deep Learning Architecture for Person Re-Identificaton
- 【转载】Callable、FutureTask中阻塞超时返回的坑点
- 威斯康星大学麦迪逊分校计算机专业排名,威斯康星大学麦迪逊分校的计算机专业如何?...
- Swift - 26 - 函数的基础写法
- 学C/C++语言,32个必备修养!
- navicat 怎么调试存储过程_Mysql调试存储过程最简单的方法
- PHP聚微商货源网源码
- MacOS系统自带截图快捷键
- 导入csv未响应_IOS免费P12企业证书分享!支持导入Gbox和闪电签!Windows和Mac通用!...
- computational science education project
- 比较两个文本中数据不同的行
- 网管工具之cacti
- 2021年度中国商业地产100强揭晓,排名前十位变化不大
- 微信公众号从测试号迁移到正式号
- ABB 120 六轴机械手臂编程调试(四) 三菱plc控制器配套程序
- 实现对文件夹进行加密
热门文章
- java将date类型转成yyyymmdd_java中的Date怎么转换成YYYYMMDD形式?
- 2021 最新 IDEA集成Gitee、Gitee迁移GitHub【图文讲解】
- Pytorch离线安装 matlibplot
- Pycharm远程连接服务器,操作代码
- 使用validate验证数据库
- Git基础知识教程整理(Git基本操作)
- Windows2003如何安装IIS和ftp
- virtualbox安装android6.0并设置分辨率为1920x1080x32
- 微软披露了Spartan中所使用的渲染引擎的细节
- Exchange Server2010部署完后的配置:CA、Outlook Anywhere、OWA域名简写