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实现list反转实例汇总
Nov 11 Python
Python中文件操作简明介绍
Apr 13 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
Python3模拟curl发送post请求操作示例
May 03 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
opencv设置采集视频分辨率方式
Dec 10 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
Python如何转换字符串大小写
Jun 04 Python
python glom模块的使用简介
Apr 13 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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中数字、字符与对象判断函数用法实例
2014/11/26 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
jquery常用操作小结
2014/07/21 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
python实现感知器
2017/12/19 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
Django forms组件的使用教程
2018/10/08 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
Python类及获取对象属性方法解析
2020/06/15 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
公益活动邀请函
2014/02/05 职场文书
九寨沟导游词
2015/02/02 职场文书
教师个人成长总结
2015/02/11 职场文书
给学校的建议书400字
2015/09/14 职场文书
高三生物教学反思
2016/02/22 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
Python中zipfile压缩包模块的使用
2021/05/14 Python
详解JAVA的控制语句
2021/11/11 Java/Android