我是靠谱客的博主 矮小高山,最近开发中收集的这篇文章主要介绍Python-OpenCV中VideoCapture类的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录


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

最后

以上就是矮小高山为你收集整理的Python-OpenCV中VideoCapture类的使用的全部内容,希望文章能够帮你解决Python-OpenCV中VideoCapture类的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部