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计算N天之后日期的方法
Mar 31 Python
Python实现从脚本里运行scrapy的方法
Apr 07 Python
Python实现小数转化为百分数的格式化输出方法示例
Sep 20 Python
Python使用getpass库读取密码的示例
Oct 10 Python
Python+Django搭建自己的blog网站
Mar 13 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
浅谈python 中类属性共享的问题
Jul 02 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
Python手动或自动协程操作方法解析
Jun 22 Python
Python读取xlsx数据生成图标代码实例
Aug 12 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抓即时股票信息
2006/10/09 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
Python实现多进程的四种方式
2019/02/22 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
浅析使用Python搭建http服务器
2019/10/27 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
python中Django文件上传方法详解
2020/08/05 Python
Python编写万花尺图案实例
2021/01/03 Python
python中remove函数的踩坑记录
2021/01/04 Python
土木工程专业推荐信
2014/02/19 职场文书
法律进机关实施方案
2014/03/12 职场文书
贷款委托书
2014/08/01 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL