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 28 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python配置mysql的教程(推荐)
Oct 13 Python
python3实现公众号每日定时发送日报和图片
Feb 24 Python
浅析python的优势和不足之处
Nov 20 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
python实现引用其他路径包里面的模块
Mar 09 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 Python
OpenCV-Python实现轮廓拟合
Jun 08 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
php源码的使用方法讲解
2019/09/26 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
javascript json 新手入门文档
2009/12/03 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Django中的文件的上传的几种方式
2018/07/23 Python
python中eval与int的区别浅析
2019/08/11 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
通用求职信范文模板分享
2013/12/27 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
班组安全员工作职责
2014/02/01 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
《春酒》教学反思
2016/02/22 职场文书
MySQL分库分表详情
2021/09/25 MySQL
Python 数据可视化之Bokeh详解
2021/11/02 Python