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 23 Python
python实现的登录和操作开心网脚本分享
Jul 09 Python
Python根据区号生成手机号码的方法
Jul 08 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
详解python中的json的基本使用方法
Dec 21 Python
深入理解Python中变量赋值的问题
Jan 12 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
Python Matplotlib绘制条形图的全过程
Oct 24 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跨时区(UTC时间)应用解决方案
2013/01/11 PHP
php获取操作系统语言代码
2013/11/04 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
婚礼新郎父母答谢词
2014/01/16 职场文书
广播体操口号
2014/06/18 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
市场部经理岗位职责
2015/02/02 职场文书
《雷雨》教学反思
2016/02/20 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
Java对文件的读写操作方法
2022/04/29 Java/Android