一、前言

本文是《人脸识别完整项目实战》系列博文第3部分:程序设计篇(Python版),第1节《Python实时视频采集程序设计》,本章内容系统介绍:基于Python+opencv如何实现实时视频采集。

完整的相关内容已录制成视频课程,点击跳转:人脸识别完整项目实战(附源码)

整个《人脸识别完整项目实战》系统架构结构如下图所示:

项目概述篇:系统介绍人脸识别项目的系统架构设计、项目关键技术说明、项目业务需求分析、项目业务流程设计;

环境部署篇:提供C++和Python两种编程语言的版本,系统介绍项目开发环境概述、DLib框架源码编译、项目工程文件创建、项目开发环境配置、项目性能优化设置;

程序设计篇:从实时视频采集开始,涵盖人脸区域检测、人脸特征点标定、人脸对齐、人脸比对和活体检测等全部技术环节的代码设计、运行演示和执行结果输出;

模型训练篇:基于人脸识别区域检测和人俩识别特征点标定两个应用场景,介绍数据样本采集、算法模型训练和算法模型测试的过程,让大家都人脸识别有一个完整的直观的认识;

算法原理篇:基于人脸识别区域检测和人俩识别特征点标定两个应用场景,人脸区域检测和人脸特征点标定的算法原理和实现机制,让大家对人脸识别与机器学习、深度学习进行有效关联;

学习框架篇:系统介绍主流深度学习框架,重点就本课程用到Dlib深度学习框架进行介绍,通过dlib深度学习实战案例1和dlib深度学习实战案例2,两个完整的案例,让大家对dlib的深度学习框架有一个直观的认识;

二、正文

2.1 程序逻辑

       Python实时视频采集程序主要流程共分为10个步骤,具体如下图所示:

流程描述:

库文件导入:导入程序依赖的python安装包;

摄像头管理对象创建和初始化:是对opencv VideoCapture对象的创建和初始化,通过它打开摄像头设备;

启动循环监控:循环处理每一帧图片;

图像抓拍:利用opencv提供的摄像头管理设备,进行逐帧图像内容的抓取,然后进行处理;

图像窗口显示:利用opencv的窗口对象,进行抓拍内容的显示。

等待用户输入:利用opencv提供的键盘输入监控程序,获取用户指令。

摄像头释放:收到退出指令后,释放摄像头管理设备资源。

2.2 接口说明

python实时视频监控采集功能的实现,主要是采用了opencv开源框架提供的摄像头管理类:VideoCapture。该类的主要方法和属性如下图所示:

opencv的摄像头管理类,我们主要应用了其open(打开摄像头)、read(读取每一帧)、release(释放设备)等函数功能能。

2.3 源码设计

源码的执行,需要导入opencv库文件,直接执行:pip install opencv 即可实现。具体程序代码如下图所示:

# 实时:视频图像采集(opencv)
import cv2
cap = cv2.VideoCapture(0)
# 从视频流循环帧
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("Frame", frame)
# 退出:Q
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 清理窗口
cv2.destroyAllWindows()

2.4 运行效果

三、未完待续

本文是《人脸识别完整项目实战》系列博文第3部分:程序设计篇(Python版)第一节《实时视频采集程序设计(python)》,全文共53个章节,持续更新,敬请关注。人脸识别技术交流QQ群:859860225 。

13行代码实现:Python实时视频采集(附源码)的更多相关文章

  1. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

  2. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

  3. PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)

    说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...

  4. devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显示值、固定列不移动(附源码)

    介绍一些常用的gridcontrol设置. 1.设置隔行变色.首先设置显示隔行变色,步骤:OptionsView-->EnableAppearanceEvenRow-->true和Opti ...

  5. swfupload多文件上传[附源码]

    swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示.这次我们演示利用swfupload多文件上传,项 ...

  6. Android中Canvas绘图基础详解(附源码下载) (转)

    Android中Canvas绘图基础详解(附源码下载) 原文链接  http://blog.csdn.net/iispring/article/details/49770651   AndroidCa ...

  7. 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生

    [转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...

  8. C#进阶系列——一步一步封装自己的HtmlHelper组件:BootstrapHelper(三:附源码)

    前言:之前的两篇封装了一些基础的表单组件,这篇继续来封装几个基于bootstrap的其他组件.和上篇不同的是,这篇的有几个组件需要某些js文件的支持. 本文原创地址:http://www.cnblog ...

  9. C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)

    C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...

随机推荐

  1. jar包是干什么用的

    1.JAR(Java ARchive)是将一系列文件到单个压缩文件里,就象Zip那样.但是,同Java中其他任何东西一样,JAR文件是跨平台的,所以不必关心涉及具体平台的问题.2.jar包就是别人已经 ...

  2. loadrunner的安装与破解

    https://pan.baidu.com/s/1H4Cj0ySTwqPra5OA3nicmw 背景: 由于想做服务器的性能测试,所以最近有意研究一下loadrunner这个工具,下面仅将安装过程做个 ...

  3. Charles抓包遇到的问题

    1.手机设置了代理但是连不上网,无法下载HTTPS证书,关闭电脑防火墙! 2.content乱码解决方案参考https://www.cnblogs.com/puresoul/p/7365761.htm ...

  4. canvas绘制随机验证码

    效果图: 思路: 1, 绘制canvas画布,进行基础设置 2.绘制一个矩形 3.设置验证码的随机数 4.设置验证码随机数的随机颜色 5.绘制随机干扰线 6,绘制随机干扰点 经过以上六个步骤,验证码的 ...

  5. 轻松理解AOP(面向切面编程)

    https://my.oschina.net/yanquan345/blog/203415

  6. 【leetcode】482. License Key Formatting

    problem 482. License Key Formatting solution1: 倒着处理,注意第一个字符为分隔符的情况要进行删除,注意字符的顺序是否正序. class Solution ...

  7. ArcMap图层属性表中添加图片

    一看标题是不是有点懵?懵就对了!刚接触到的时候我也有点懵,属性表不是都是文本啊数字啊之类的格式,怎么还可以存图片,下面就带大家来看看吧! 一.关于图层入库问题 图层进入数据库和图层以shp格式存储时, ...

  8. E-R视图中有关图形的用法

    这里先推荐几款相对好用的画E-R图的软件: 第一款为:  这是一款在线的画流程图软件 第二款为:亿图图示 第三款为:Visio ER图是在设计数据库之前,明白数据之间的相互关系,理清数据之间的逻辑而需 ...

  9. vs2015打开Dialog出现HRESULT:0x8CE0000B

    关闭项目  在工程目录找到.vc.db文件删除

  10. 手机响应式echarts

    // 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));// 使用刚指定的配置项和数据 ...