OpenCV中VideoCapture类的使用详解

作者:chenzhen0530 时间:2022-10-26 18:38:15 

主要记录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))

来源:https://www.cnblogs.com/chenzhen0530/p/10746734.html

标签:OpenCV,VideoCapture
0
投稿

猜你喜欢

  • MySQL磁盘碎片整理实例演示

    2024-01-26 15:28:26
  • 手写一个python迭代器过程详解

    2021-06-29 07:45:23
  • 在asp中用集合成批操作数据库

    2008-03-10 17:22:00
  • Python实现http接口自动化测试的示例代码

    2023-05-01 07:14:45
  • TensorFlow神经网络创建多层感知机MNIST数据集

    2022-03-29 20:09:19
  • 47个惊人的CSS3动画演示

    2010-02-07 12:32:00
  • 对比国内门户网站对Flash激活限制的处理

    2007-08-23 11:29:00
  • Python 使用 prettytable 库打印表格美化输出功能

    2021-10-25 08:42:54
  • Utf-8和Gb2312乱码问题的终结

    2008-04-05 14:04:00
  • Python PIL读取的图像发生自动旋转的实现方法

    2022-05-01 20:29:26
  • 微信小程序弹窗禁止页面滚动的实现代码

    2024-02-25 17:28:21
  • vue自定义指令directive的使用方法

    2024-05-09 10:43:39
  • 如何让python程序正确高效地并发

    2021-10-14 20:33:54
  • Vue中$router与 $route的区别详解

    2024-04-30 10:38:42
  • python实现自主查询实时天气

    2021-07-02 22:43:09
  • 高性能PHP框架Symfony2经典入门教程

    2023-11-16 02:39:23
  • 免费手机号码归属地API查询接口和PHP使用实例分享

    2023-10-31 08:06:37
  • 原生JS封装Ajax插件(同域、jsonp跨域)

    2024-04-17 09:45:19
  • MySQL数据库优化之分表分库操作实例详解

    2024-01-20 10:33:53
  • 基于OpenCV和Gradio实现简单的人脸识别详解

    2022-10-21 22:59:11
  • asp之家 网络编程 m.aspxhome.com