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中使用enumerate函数遍历元素实例
Jun 16 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
python提取log文件内容并画出图表
Jul 08 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
tensorflow实现在函数中用tf.Print输出中间值
Jan 21 Python
Python实现名片管理系统
Feb 14 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 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
Protoss建筑一览
2020/03/14 星际争霸
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
PHP echo()函数讲解
2019/02/15 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
python 实现归并排序算法
2012/06/05 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
Python多线程下载文件的方法
2015/07/10 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
python实现canny边缘检测
2020/09/14 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
大学四年规划书范文
2013/12/27 职场文书