【批量将视频转为图像序列】

news2024/11/24 1:41:58

批量将视频转为图像序列

请添加图片描述

代码如下,代码中带有解释:

# 导入所需要的库
import cv2
import os
import numpy as np

# 多个视频所在的路径
datasets_path = ["/home/y/Code/数据集/1/007f.mp4",
					                "/home/y/Code/数据集/1/05f.mp4",
					                "/home/y/Code/数据集/1/024f.mp4",                
					               ]
# 保存图片的根目录				               
root_image_path = r"/home/y/Code/test/dataset/"
 
# 定义保存图片函数:image:要保存的图片名字;  target_image_path:图片序列地址;  num: int 类型, 相片,名字的后缀。
def save_image(image,target_image_path, num):
    address = target_image_path + str(num) + '.jpg'
    cv2.imwrite(address, image)
# 将一个视频转为图像序列的函数
def get_video_to_img(source_video_path, target_image_path):
    # 读取视频文件 视频文件路径
    videoCapture = cv2.VideoCapture(source_video_path)    
    # 读帧
    success, frame = videoCapture.read()
    i = 0
    timeF = 30
    j = 0
    while success:
        i = i + 1
        if (i % timeF == 0):
            j = j + 1
            save_image(frame, target_image_path, j) #视频截成图片存放的位置
            print('save image:', i)
        success, frame = videoCapture.read()

# 主函数:用于读取多个视频的路径,并将每个视频对应的路径 和 保存图片序列的路径 传递给get_video_to_img()函数,实现视频转化。
def run_video_to_image():
    for source_video_path in datasets_path:
       #创建 保存图片序列所需的目录
        target_image_path = root_image_path + "/" + source_video_path.split("/")[-1].split(".")[-2]+"/"
        if not os.path.exists(target_image_path):
            os.makedirs(target_image_path)
        #调用视频转图片序列的函数
        get_video_to_img(source_video_path, target_image_path)


run_video_to_image()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/749575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 打印文件执行路径和行号

文章目录 前言代码部分演示意外惊喜,文件位置跳转 前言 我最近在学Python,但是我感觉动态语言如果不打印文件路径和行号,到时候如果出问题Debug,除非你对业务特别熟悉,不然找不到问题的位置。 反正打印了也不亏 代码…

合宙Air001开发板系列教程—01环境搭建与点灯(基于Keil-MDK的开发)

近日合宙出品了一款: TSSOP20封装、ARMCortex-M0内核,内置32K Flash4K RAM、集成多路USART、IIC、SPI等通讯外设,5个16bit定时器以及1路12bit ADC和2路比较器的国产MCU10块钱一个开发板10个芯片,性价比还是很高的,加其…

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升技术

空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化:地图符号与注记 2.4 研究区…

ndk编译jni错误LOCAL_MAKEFILE is not defined,分析解决

概述 我们用ndk编译jni的时候,通常会写一个Android.mk脚本文件。但是有些情况,我们脚本文件名字不叫Android.mk,比如我的分别改成AndroidSo.mk,AndroidA.mk 这时候就会报错:LOCAL_MAKEFILE is not defined 软件环境 …

单片机数码管

LED数码管(LED Segment Displays)是由8个发光二极管构成,并按照一定的图形及排列封转在一起的显示器件。其中7个LED构成7笔字形,1个LED构成小数点(固有时成为八段数码管)。 LED数码管有两大类&#xff0c…

从新手到高阶,企业培训直播玩法全攻略

首先,把握培训直播的整体规划。 管理端:直播内容管理纳入企业内部学习资源的建设,让企业内部的知识积累、沉淀形成体系。学员端:方便学员精准、快速定位到课程资源,方便快捷检索内容,学习体验简单易用。 其…

CP AUTOSAR中的EThTrcv

环境 EthTrcv驱动实际上是要实现EthIf指出的接口,包括如下API函数,描述在一个结构体里面 /** \brief type used in EthIf_EthTrcvDrvApi */ typedef struct sEthIf_EthTrcvDrvApiType { EthIf_EthTrcvCheckWakeupFctPtrType CheckWakeupOfEthTrcvDrvApi; /**< Et…

2023 JAVA 面试太难, 吃透这份 JAVA 架构面试笔记后, 成功涨到 30K

前阵子跟一位高级架构师的前辈聊天时&#xff0c;聊到今年的面试。有两个感受&#xff0c;一个是今年面邀的次数比往年要低不少&#xff0c;再一个就是很多面试者准备明显不足。不少候选人能力其实不差&#xff0c;进入团队干活后达到期望不难&#xff0c;但由于没准备或不会表…

Python从入门到精通:一步步掌握Python编程

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言Python入门条件和循…

使用Django数据库模型中的ForeignKey()形成数据表记录的父子层次结构

可以把ForeignKey()的第1个参数设置为值 “self” 实际形成数据表记录的父子层次结构。 下面是一个简单的实例&#xff1a; 在文件 E:\Python_project\P_001\myshop-test\myshop\app1\models.py 中写入下面的代码&#xff1a; from django.db import models# Create your mod…

如何保证消息的可靠性+延迟队列(TTL+死信队列+延迟队列)

目录 1.如何保证消息的可靠性 1.1.消息的可靠投递 confirm机制 return机制 1.2.如何保证消息在队列中不丢失 1.3.确保消息能可靠的被消费掉 2.延迟队列 2.1.TTL 2.2.死信队列 2.3.延迟队列 3.如何防止消费者重复消费消息 1.如何保证消息的可靠性 1.1.消息的可靠投递…

element-ui 使用 el-descriptions

<el-descriptions :column"2" border size"mini" style"margin-top: 10px;" :labelStyle"{width: 123px}" :contentStyle"{width:42%}"><el-descriptions-item label"选择项目"><el-select size&…

花了整整一周,用新工具制作的进销存管理系统,比买来的好用

进销存简单点说就是进货、库存、出货的管理&#xff01;复杂一点还会牵扯日常交易。一般情况下&#xff0c;中小型企业或者涉及仓库的商贸、电商、制造、批发、零售等相关行业都会用到。 看似很简单&#xff0c;但涉及的领域却很广泛。 那么如何有效的管理企业的进销存数据&am…

UWB定位算法对比:TDOA算法和TWR算法对比,两种算法优缺点分析

UWB定位是基于时间飞行的算法&#xff08;飞行时间&#xff0c;TOF&#xff09;。测量一个UWB定位标签和多个UWB定位基站之间的光传播时间。至少需要三个定位基站才能使用三边法精确定位标签的位置。UWB定位基站和定位标签之间也必须保持直线和可视无遮挡。在UWB定位中&#xf…

Python源码剖析:深度探索Cpython对象-达观数据

CPython 是 Python 社区的标准&#xff0c;其他版本的 Python&#xff0c;比如 pypy&#xff0c;都会遵行 CPython 的标准 API 实现。想要更深入的认识 Python&#xff0c;就需要了解 CPython 的源码实现。本文将从 CPython 的对象构造器开始入手&#xff0c;带大家揭开 CPytho…

工作有感:莫名的IT培训班生涯

欢迎关注博主 六月暴雪飞梨花 或加入【六月暴雪飞梨花】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术…

什么是『知识管理系统』?为什么企业需要搭建知识管理系统?

你的企业或团队在知识迁移的过程中有遇到过以下问题吗&#xff1f; 1、花费过长时间的员工培训&#xff1a;当新员工入职时&#xff0c;传统的培训方法可能需要大量时间和资源。而且&#xff0c;由于知识可能分散在各种文档、手册和资源中&#xff0c;培训过程变得更加复杂。这…

Go Frame 2.3驱动全栈前后端分离管理系统的创新突破

基于新的Go Frame 2.3框架开发的全栈前后端分离的管理系统——GFast-V3&#xff0c;正以其创新性和突破性的特点引起了广泛关注。该系统通过将前端与后端解耦&#xff0c;实现了更高效、可扩展的开发模式&#xff0c;为企业和开发者带来了新的开发体验。 GFast-V3系统介绍 gfa…

重磅预告!Apache DolphinScheduler 3.2.0 新功能“剧透”

近期&#xff0c;Apache DolphinScheduler 将迎来 3.2.0 版本的到来。本次发版为大版本发布&#xff0c;将会带来众多大家期待已久的新功能和新改进。为了让用户提前感知到新版本的变化&#xff0c;社区特意提前“剧透”新版本的重要 feature&#xff0c;并制作了视频进行介绍。…

unity的CommandBuffer介绍

大家好&#xff0c;我是阿赵。   之前介绍过使用PostProcessing来做屏幕后处理效果。我们不一定要用PostProcessing来做后处理效果。   PostProcessing功能强大&#xff0c;比如不同的layer控制不同的屏幕效果&#xff0c;比如可以使用PostProcessVolume的非全局效果达到某…