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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
5种Python单例模式的实现方式
Jan 14 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
python如何对实例属性进行类型检查
Mar 20 Python
python tkinter基本属性详解
Sep 16 Python
python带参数打包exe及调用方式
Dec 21 Python
keras 读取多标签图像数据方式
Jun 12 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
PHP编程与应用
2006/10/09 PHP
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
js单例模式详解实例
2013/11/21 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
js实现随机8位验证码
2020/07/24 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
实习期自我鉴定
2013/10/11 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
小学推普周活动总结
2015/05/07 职场文书
法定代表人身份证明书
2015/06/18 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA