iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用python opencv库玩转视频帧率
  • 405
分享到

如何使用python opencv库玩转视频帧率

2023-06-30 10:06:25 405人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇“如何使用python OpenCV库玩转视频帧率”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Pyt

这篇“如何使用python OpenCV库玩转视频帧率”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python opencv库玩转视频帧率”文章吧。

    需求背景

    在很多时候我们需要抽取视频的某一帧做一些分析或修改等;比如笔者需求就是判断一个人在该视频中出现的频率,以判断他是否是这段视频的主角;

    关于opencv

    OpenCV 是 Intel 开源计算机视觉库 (Computer Version) 。它由一系列 C 函数和少量 c++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法

    OpenCV 拥有包括 300 多个 C 函数的跨平台的中、高层 api 。它不依赖于其它的外部库 —— 尽管也可以使用某些外部库。 OpenCV 对非商业应用和商业应用都是免费 的

    。同时 OpenCV 提供了对硬件的访问,可以直接访问摄像头,并且 opencv 还提供了一个简单的 GUI(graphics user interface) 系统 :highgui 。 我们就通过 OpenCV 提供的一些方法来构造出这个人脸检测 ( face detection ) 程序来。

    安装opencv

    pip install opencv-python

    用opencv按一定间隔截取视频帧,并保存为图片。

    这个例子使用python编程

    代码:

    # -*- coding:utf8 -*-import cv2import osimport shutildef VideoExtract(filename, count=600):    '''    :param filename: 视频文件路径    :param count: 保存图片的帧率间隔    :return:    '''    # 保存图片的路径    savedpath = filename.split('.')[0] + '/'    isExists = os.path.exists(savedpath)    if not isExists:        os.makedirs(savedpath)        print('path of %s is build' % (savedpath))    else:        shutil.rmtree(savedpath)        os.makedirs(savedpath)        print('path of %s already exist and rebuild' % (savedpath))    # 开始读视频    videoCapture = cv2.VideoCapture(filename)    i = 0    j = 0    while True:        success, frame = videoCapture.read()        i += 1        if (i % count == 0):            # 保存图片            j += 1            savedname = filename.split('.')[0] + '_' + str(j) + '_' + str(i) + '.jpg'            cv2.imwrite(savedpath + savedname, frame)            print('image of %s is saved' % (savedname))        if not success:            break

    运行完成后在生成的图片文件夹中会写入很多图片,也就是我们刚刚每个count帧抽出的画面

    根据这个抽帧情况来看该视频主角应该就是TRUMP了;

    抽帧之前当然要做一些视频属性的判断,如视频时长、视频大小等

    cap = cv2.VideoCapture(video_name)# 帧率fps = int(round(cap.get(cv2.CAP_PROP_FPS)))# 分辨率-宽度width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))# 分辨率-高度height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 总帧数frame_counter = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))cap.release()cv2.destroyAllwindows()# 时长,单位sduration = frame_counter / fps

    opencv-python获取视频相关信息

    以下是opencv-python可以获取视频的相关信息,可以通过从0开始的序号获取

    CV_CAP_PROP_POS_MSEC 视频文件的当前位置(以毫秒为单位)或视频捕获时间戳。

    CV_CAP_PROP_POS_FRAMES 接下来要解码/捕获的帧的基于0的索引

    CV_CAP_PROP_POS_AVI_RATIO 视频文件的相对位置:0 - 电影的开始,1 - 电影的结尾。

    CV_CAP_PROP_FRAME_WIDTH 视频流中帧的宽度。

    CV_CAP_PROP_FRAME_HEIGHT 视频流中帧的高度。

    CV_CAP_PROP_FPS 帧速率。

    CV_CAP_PROP_FOURCC 编解码器的4字符代码。

    CV_CAP_PROP_FRAME_COUNT 视频文件中的帧数。

    CV_CAP_PROP_FORMAT 返回的Mat对象的格式 retrieve() 。

    CV_CAP_PROP_MODE 指示当前捕获模式的特定于后端的值。

    CV_CAP_PROP_BRIGHTNESS 图像的亮度(仅适用于相机)。

    CV_CAP_PROP_CONTRAST 图像对比度(仅适用于相机)。

    CV_CAP_PROP_SATURATION 图像的饱和度(仅适用于相机)。

    CV_CAP_PROP_HUE 图像的色调(仅适用于相机)。

    CV_CAP_PROP_GaiN 图像的增益(仅适用于相机)。

    CV_CAP_PROP_EXPOSURE 曝光(仅适用于相机)。

    CV_CAP_PROP_CONVERT_RGB 布尔标志,指示是否应将图像转换为RGB。

    CV_CAP_PROP_WHITE_BALANCE_U 白平衡设置的U值(注意:目前仅支持DC1394 v 2.x后端)

    CV_CAP_PROP_WHITE_BALANCE_V 白平衡设置的V值(注意:目前仅支持DC1394 v 2.x后端)

    CV_CAP_PROP_RECTIFICATION 立体摄像机的整流标志(注意:目前仅支持DC1394 v 2.x后端)

    CV_CAP_PROP_ISO_SPEED摄像机 的ISO速度(注意:目前仅支持DC1394 v 2.x后端)

    CV_CAP_PROP_BUFFERSIZE 存储在内部缓冲存储器中的帧数(注意:目前仅支持DC1394 v 2.x后端)

    以上就是关于“如何使用python opencv库玩转视频帧率”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

    --结束END--

    本文标题: 如何使用python opencv库玩转视频帧率

    本文链接: https://www.lsjlt.com/news/328107.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 如何使用python opencv库玩转视频帧率
      这篇“如何使用python opencv库玩转视频帧率”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用pyt...
      99+
      2023-06-30
    • 巧妙使用python opencv库玩转视频帧率
      目录需求背景关于opencv安装opencvopencv-python获取视频相关信息需求背景 在很多时候我们需要抽取视频的某一帧做一些分析或修改等;比如笔者需求就是判断一个人在该视...
      99+
      2024-04-02
    • 怎么在python中使用opencv实现视频抽帧
      怎么在python中使用opencv实现视频抽帧,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、数据集简述:    &...
      99+
      2023-06-15
    • Python如何实现视频分帧
      这篇文章主要介绍“Python如何实现视频分帧”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现视频分帧”文章能帮助大家解决问题。下载依赖pip install ...
      99+
      2023-07-05
    • 如何使用Python的OpenCV库处理图像和视频
      目录介绍计算机视觉OpenCV应用:安装使用 OpenCV 处理图像1. 从文件中读取图像2. 调整图像大小:3. 旋转图像4. 翻转图像:5. 重写图像6. 裁剪图像7. 绘制形状...
      99+
      2024-04-02
    • 如何使用使用python+opencv解析视频并处理视频中的水印
      本篇内容主要讲解“如何使用使用python+opencv解析视频并处理视频中的水印”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用使用python+opencv解析视频并处理视频中的水印”...
      99+
      2023-06-02
    • 基于Python如何实现视频分辨率转换
      这篇文章主要为大家展示了“基于Python如何实现视频分辨率转换”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于Python如何实现视频分辨率转换”这篇文章吧。环境依赖ffmpeg环境安装,可...
      99+
      2023-06-22
    • Python 如何实现批量转换视频音频的采样率
      目录前言环境依赖代码验证一下前言 本文主要分享一个python代码,可以将多个视频中的音频转化为相同采样率的视频。对视频格式的校验没有做,也不是很关键。 环境依赖 ffmpeg环境安...
      99+
      2024-04-02
    • 如何用python反转图片,视频
      目录利用python反转图片/视频安装库反转效果实现代码项目地址利用python反转图片/视频 准备:一张图片/一段视频 python库:Pillow,moviep...
      99+
      2024-04-02
    • Python使用PyAV提取视频关键帧的实践
      目录1.软件环境⚙️2.问题描述...
      99+
      2024-04-02
    • 如何使用opencv分类白天与夜景视频
      本篇文章和大家了解一下如何使用opencv分类白天与夜景视频。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。简诉最近有个数据需要分类处理,是一批含有白天跟夜晚的视频数据,需要进行区分开来,单个视频严格是只有一个场景的,比如...
      99+
      2023-06-15
    • python使用mediapiple+opencv识别视频人脸的实现
      目录1、安装2、代码实现3、更新 mediapiple+threadpool+opencv实现图片人脸采集效率高于dlib1、安装 pip install mediapipe 2、代...
      99+
      2024-04-02
    • C++ ffmpeg如何实现将视频帧转换成jpg或png等图片
      本篇内容介绍了“C++ ffmpeg如何实现将视频帧转换成jpg或png等图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、如...
      99+
      2023-07-05
    • Python如何将视频转换为图片
      Python如何将视频转换为图片,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言代码让人头秃,可是我喜欢上了代码的逻辑感和代码解决问题的力量。(我要对这个专题的图片进行修...
      99+
      2023-06-22
    • OpenCV如何使用BSM统计视频中移动的对象
      本文小编为大家详细介绍“OpenCV如何使用BSM统计视频中移动的对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“OpenCV如何使用BSM统计视频中移动的对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1...
      99+
      2023-07-05
    • 怎么使用python反转图片和视频
      这篇文章将为大家详细讲解有关怎么使用python反转图片和视频,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long...
      99+
      2023-06-14
    • python使用socket高效传输视频数据帧(连续发送图片)
      目录遇到的问题代码问题记录(需要代码的可以直接文末)代码客户端clien.py服务端server.py遇到的问题 网上找了一些代码,都是只能建立一次socket传输一张图片,然后断开...
      99+
      2024-04-02
    • php如何利用ffmpeg获取视频第一帧为缩略图
      目录phpffmpeg获取视频缩略图1.环境2.centos7安装ffmpeg3.项目安装ffmpeg包4.php代码附Fmpeg读取视频信息总结php ffmpeg获取视频缩略图 ...
      99+
      2024-04-02
    • python如何使用youtube-dl下载YouTube视频
      这篇文章给大家分享的是有关python如何使用youtube-dl下载YouTube视频的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用youtube-dl下载YouTube视频你可以使用Python中的you...
      99+
      2023-06-27
    • Python如何实现视频转换为字符画
      这篇文章给大家分享的是有关Python如何实现视频转换为字符画的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先读取视频,并转为字符。视频是从B站下载的,地址《激战江南》穿山甲名场面。由于B站直接下载的视频为fl...
      99+
      2023-06-22
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作