13行代码实现:Python实时视频采集(附源码)
13行代码实现:Python实时视频采集(附源码)
一、前言
本文是《人脸识别完整项目实战》系列博文第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 。
作者:张子良
出处:http://www.cnblogs.com/hadoopdev
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【干货分享】云服务平台的架构及优势(上)
来源商业新知网,原标题:【干货分享】云服务平台的架构及优势(上)前言 我们通常所说的云服务或云平台广义上是一个概念,但其实内部是两个部分。 1.支撑云服务运行的硬件和软件系统环境(云架构平台,简称云平台); 2.实现业务逻辑,支持客户应用,对外提供服务的应用服务平台(云服务平台,简称云服务)。 本期我们为您解读“云平台”的业界概况和优势。 云平台——选择 经过数年的爆发式技术发展和几年的市场沉淀,云平台在2017年终于实现了天下一统,来自Google云平台的开源容器集群管理系Kubernetes(通常称为k8s)成为业界事实标准,世界各大知名云服务商和企业为更好促进云平台云服务的发展,以Kubernetes为核心共同发起了一个组织称之为 云计算基金会 (CNCF,Cloud NativeComputing Foundation)。 该组织的目标有两个: · 与开源社区和合作伙伴一起共同把控Kubernetes未来的发展; · 开发新的软件以让整个容器工具集更加健壮。 加入及通过CNCF兼容性认证的部分厂商 可以看到包括: · 国外Google、Amazon、IBM、Microsoft、...
- 下一篇
动力节点2019最新Java架构师学习路线图
一个Java程序员不想要成为一个Java “old”程序员,唯一的出路就是学习Java技术的脚步永不停滞,让自己成为一个Java架构师,成为一个公司真正的技术大咖,平时上班泡泡茶、喝喝咖啡,度过了愉快潇洒的一天,每当所有技术都遇到困难都束手无措的时候,你淡定的把问 题解决掉,这就是Java架构师。 动力节点Java学院十年磨一剑,十年Java教学历程,倾心打造Java架构师学习路线图,废话不多说为大家分享一下: Java架构师学习路线图一工程协作专题 专题简介:磨刀不误砍柴工,做为程序员也应该选择更为“锋利”的工具,进而提升开发效率和团队协助能力,让自己有更多思考的时间。 专题特色:跟进当下企业需求,横扫当代流行开发必备工具,每期迭代; 面向人群:有工作经验,希望快速和系统地提升自我的人群; 学习收获:掌握当下最为流行的开发工具,提高开发效率和协助效率 Java架构师学习路线图一源码分析专题 专题简介:编程人员技术提升最快的方式是阅读和理解优秀的代码,领悟大师级思想,让思想顿悟,目击不一样的风景,提高核心竞争力; 专题特色:俯下身子、抽丝剥茧、层层深入、领悟开源作者的设计思维; 面...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装