OpenCV中VideoCapture类的使用详解


Posted in Python onFebruary 14, 2020

主要记录Python-OpenCV中的VideoCapture类的使用;官方文档;

VideoCapture()是用于从视频文件、图片序列、摄像头捕获视频的类;

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# @Time : 19-4-21 上午10:31
# @Author : chen

"""
VideoCapture()的使用
"""
import cv2
import argparse
import os
import pdb

ap = argparse.ArgumentParser()
ap.add_argument("-v", "--videoPath", default="./video_1.mp4", help="path to input video")
ap.add_argument("-o", "--outputPath", default="grabImages", help="path to output frames")

args = vars(ap.parse_args())

# 初始化,并读取第一帧
# rval表示是否成功获取帧
# frame是捕获到的图像
vc = cv2.VideoCapture(args["videoPath"])
rval, frame = vc.read()

# 获取视频fps
fps = vc.get(cv2.CAP_PROP_FPS)
# 获取视频总帧数
frame_all = vc.get(cv2.CAP_PROP_FRAME_COUNT)
print("[INFO] 视频FPS: {}".format(fps))
print("[INFO] 视频总帧数: {}".format(frame_all))
print("[INFO] 视频时长: {}s".format(frame_all/fps))

outputPath = os.path.sep.join([args["outputPath"]])
if os.path.exists(outputPath) is False:
 print("[INFO] 创建文件夹,用于保存提取的帧")
 os.mkdir(outputPath)

# 每隔100帧保存一张图片
frame_interval = 100
# 统计当前帧
frame_count = 1
# 保存图片个数
count = 0
while rval:
 rval, frame = vc.read()
 if frame_count % frame_interval == 0:
  filename = os.path.sep.join([outputPath, "test_{}.jpg".format(count)])
  cv2.imwrite(filename, frame)
  count += 1
  print("保存图片:{}".format(filename))
 frame_count += 1

# 关闭视频文件
vc.release()
print("[INFO] 总共保存:{}张图片".format(count))

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

Python 相关文章推荐
python使用百度翻译进行中翻英示例
Apr 14 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
对于Python中RawString的理解介绍
Jul 07 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
在Python中定义一个常量的方法
Nov 10 Python
python异步编程 使用yield from过程解析
Sep 25 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
Python基于当前时间批量创建文件
May 07 Python
Django中的AutoField字段使用
May 18 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
只用Python就可以制作的简单词云
Jun 07 Python
基于PyQT5制作一个桌面摸鱼工具
Feb 15 Python
Python networkx包的实现
Feb 14 #Python
python常用运维脚本实例小结
Feb 14 #Python
Python如何在DataFrame增加数值
Feb 14 #Python
python turtle工具绘制四叶草的实例分享
Feb 14 #Python
Python阶乘求和的代码详解
Feb 14 #Python
Python pip配置国内源的方法
Feb 14 #Python
Python3基本输入与输出操作实例分析
Feb 14 #Python
You might like
PHP通过COM使用ADODB的简单例子
2006/12/31 PHP
坏狼的PHP学习教程之第1天
2008/06/15 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
js实现分页功能
2017/05/24 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
Python正则表达式使用范例分享
2016/12/04 Python
django中的setting最佳配置小结
2017/11/21 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
中科软测试工程师面试题
2012/06/16 面试题
《再见了,亲人》教学反思
2014/02/26 职场文书
关于保护环境的标语
2014/06/09 职场文书
群教班子对照检查材料
2014/08/26 职场文书
2014年财务科工作总结
2014/11/11 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
python中if和elif的区别介绍
2021/11/07 Python