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

批量将视频转为图像序列

请添加图片描述

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

# 导入所需要的库
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 = 0timeF = 30j = 0while success:i = i + 1if (i % timeF == 0):j = j + 1save_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.hqwc.cn/news/23100.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Java代码与JNI交互 JNI方法Java类字段 (六)

🔥 Android Studio 版本 🔥 🔥 Java 基础类型数据对应 Native层的字母 🔥 通过 jni 查找java某个类中相应字段对应的数据类型 , 需要使用到 jni 中的 GetFieldID() 函数 jfieldID GetFieldID(jclass clazz, const char* name, const char* sig){ return functions-…

可使用Linux 测试IP和端口是否能访问,查看返回状态码

一、 使用wget判断 wget是linux下的下载工具,需要先安装. 用法: wget ip:port wget ip:port连接存在的端口 二、使用telnet判断 telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet. 用法: telnet ip port…

CNN从搭建到部署实战(pytorch+libtorch)

模型搭建 下面的代码搭建了CNN的开山之作LeNet的网络结构。 import torchclass LeNet(torch.nn.Module):def __init__(self):super(LeNet, self).__init__()self.conv torch.nn.Sequential(torch.nn.Conv2d(1, 6, 5), # in_channels, out_channels, kernel_sizetorch.nn.Sig…

windows搭建git服务器 无法识别 ‘git‘ 命令:exec: “git“: executable file not found in %PATH%

无法识别 git 命令:exec: "git": executable file not found in %PATH% 确保已经安装git,如下图配置环境变量即可。

Mysql查询

Mysql查询 一.DQL基础查询1.语法2.特点3.查询结果处理 二.单行函数(1)字符函数(2)逻辑处理(3)数学函数(4)日期函数 三.分组函数四.条件查询五.比较六.模糊查询七.UNION和UNION ALL(1)UNION(2)UNION ALL 八.排序九.数量限制十.分组查询 一.DQL基础查询 DQL(Data Que…

奇葩功能实现:级联选择框组件el-cascader实现同一级的二级只能单选,但是一级可以多选

前言: 其实也不能说这个功能奇葩,做项目碰到这种需求也算合理正常,只是确实没有能直接实现这一需求的现成组件。 el-cascader作为级联选择组件,并不能同时支持一级多选,二级单选的功能,只能要么是单选或者…

SpringBoot 配置文件:什么是配置文件?配置文件是干什么?

文章目录 🎇前言1.配置文件的格式2. properties配置文件说明2.1 properties基本语法2.2 读取配置文件 3. yml 配置文件说明3.1 yml 基本语法 4.properties与yml 对比 🎇前言 学习一个东西,我们先要知道它有什么用处。整个项目中所有重要的数…

java单元测试(调试)

文章目录 测试分类JUnit单元测试介绍引入本地JUnit.jar编写和运行Test单元测试方法设置执行JUnit用例时支持控制台输入10.6.6 定义test测试方法模板 测试分类 **黑盒测试:**不需要写代码,给输入值,看程序是否能够输出期望的值。 **白盒测试…

【解决】Android Studio打包出现not found for signing config ‘externalOverride‘

问题出现场景 之前我的这个项目在另一台电脑上开发,现在迁移到这台计算机上,出现了key报错的问题,网络上有些说需要在XML中进行配置signature相关的内容,这个感觉比较复杂,本文主要介绍一个简单的解决方法,…

VectorCAST单元测试参数配置

一、打开 VectorCAST 通常情况下,技术人员会配置一个脚本文件(.bat、.cmd),用户可以通过这个脚本文件来启动 VectorCAST。使用脚本文件启动 VectorCAST,可以在启动时设置好编译器相关的环境变量,方便 Vecto…

el-ment ui 表格组件table实现列的动态插入功能

在实际需求中我们经常遇到各种奇葩的需求,不足为奇。每个项目的需求各不相同,实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种, 1. 插入的位置如果是已知的,我知道在哪个标题的…

redis -速成

目录 (一)认识 Redis 1.1数据库分类 1.2 什么是Redis 1.2.1 redis简介 1.2.2 谁在用Redis 1.2.3 怎么学redis 1.2.4 Redis的安装 2 数据类型 2.1 概况 2.2 String类型 2.2.1 常用的命令 2.2.2 非常用命令 2.2.3 举例 2.2.4应用场景&#xf…