python使用opencv按一定间隔截取视频帧


Posted in Python onMarch 06, 2018

关于opencv

OpenCV 是 Intel 开源计算机视觉库 (Computer Version) 。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV 拥有包括 300 多个 C 函数的跨平台的中、高层 API 。它不依赖于其它的外部库 —— 尽管也可以使用某些外部库。 OpenCV 对非商业应用和商业应用都是免费 的。同时 OpenCV 提供了对硬件的访问,可以直接访问摄像头,并且 opencv 还提供了一个简单的 GUI(graphics user interface) 系统 :highgui 。 我们就通过 OpenCV 提供的一些方法来构造出这个人脸检测 ( face detection ) 程序来。

opencv的python包装

OpenCV 本身是有 C/C++ 编写的,如果要在其他语言中使用,我们可以通过对其动态链接库文件进行包装即可,幸运的是, Python 下有很多个这样的包装,本文中使用的是 Cvtypes 。

事实上,在 Python 中很多的包都是来自第三方的,比如 PIL(Python Image Library) 即为 C 语言实现的一个图形处理包,被包装到了 Python 中,这些包装可以让你像使用 Python 的内建函数一样的使用这些 API 。

这个例子使用python编程:用opencv按一定间隔截取视频帧,并保存为图片。

import cv2 
 
     
vc = cv2.VideoCapture('Test.avi') #读入视频文件 
c=1 
 
if vc.isOpened(): #判断是否正常打开 
  rval , frame = vc.read() 
else: 
  rval = False 
 
timeF = 1000 #视频帧计数间隔频率 
 
while rval:  #循环读取视频帧 
  rval, frame = vc.read() 
  if(c%timeF == 0): #每隔timeF帧进行存储操作 
    cv2.imwrite('image/'+str(c) + '.jpg',frame) #存储为图像 
  c = c + 1 
  cv2.waitKey(1) 
vc.release()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python2.x版本中cmp()方法的使用教程
May 14 Python
Python 序列的方法总结
Oct 18 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
启动Atom并运行python文件的步骤
Nov 09 Python
Python脚本按照当前日期创建多级目录
Mar 01 Python
python 字典的打印实现
Sep 26 Python
Django自带的加密算法及加密模块详解
Dec 03 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
如何学习Python time模块
Jun 03 Python
详解python中GPU版本的opencv常用方法介绍
Jul 24 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
python+ffmpeg视频并发直播压力测试
Mar 06 #Python
小白如何入门Python? 制作一个网站为例
Mar 06 #Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 #Python
Python从零开始创建区块链
Mar 06 #Python
Django 实现下载文件功能的示例
Mar 06 #Python
python入门前的第一课 python怎样入门
Mar 06 #Python
详解Python判定IP地址合法性的三种方法
Mar 06 #Python
You might like
怎样在php中使用PDF文档功能
2006/10/09 PHP
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
javascript 全等号运算符使用说明
2010/05/31 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Python聚类算法之基本K均值实例详解
2015/11/20 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
python根据时间获取周数代码实例
2019/09/30 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
运动会方队口号
2014/06/07 职场文书
环保口号大全
2014/06/12 职场文书
高一军训决心书
2015/02/05 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
docker 制作mysql镜像并自动安装
2022/05/20 Servers