python用opencv将跟踪图片数据集生成视频

1. AIR-MOT数据集

github地址:https://github.com/HeQibin/TGraM
AIR-MOT数据集是一个基于图的多任务建模进行卫星视频中的多目标跟踪、(Multi-Object Tracking, MOT)任务的数据集。在图像领域,多目标跟踪是一个至关重要的任务,它涉及到在动态环境中实时地检测和跟踪多个目标(如车辆、行人等)。

AIR-MOT数据集可能包含了大量的标注视频帧或图像序列,其中每个目标都被精确地标注出来,并提供了目标的类别、位置、尺寸以及可能的轨迹信息。这些数据可以用于训练和评估多目标跟踪算法的性能。

使用AIR-MOT数据集,研究人员可以开发更先进的多目标跟踪算法,以应对卫星视频中的复杂挑战,如目标遮挡、目标之间的交互、动态环境的变化等。通过不断优化算法,可以提高跟踪的准确性和鲁棒性,从而提高卫星视频中可靠目标的跟踪能力。

2. 整体流程

python用opencv将图片数据集生成视频步骤如下:

  1. 导入必要的库:

    • cv2:用于处理图片和视频。
    • os:用于处理文件路径。
    • tqdm:用于显示进度条。
  2. 设置图片文件夹路径和输出视频文件夹路径:

    image_folder = 'path/to/your/image/folder'
    output_folder = 'path/to/your/output/folder'
    

    这里你需要将 'path/to/your/image/folder' 替换为包含图片文件的文件夹路径,将 'path/to/your/output/folder' 替换为你想要保存输出视频的文件夹路径。

  3. 获取图片文件夹中的所有图片文件名,并按文件名排序:

    images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
    images.sort()
    

    这行代码获取指定文件夹中以 .jpg 结尾的所有图片文件,并按文件名排序。如果是别的格式的,请自己替换。

  4. 初始化视频写入对象:

    video = None
    

    这里初始化了一个视频写入对象 video,用于写入生成的视频。

  5. 遍历图片并生成视频:

    for image in tqdm(images, desc="Converting images to videos"):
    

    这是一个循环,遍历所有图片文件。

  6. 根据图片的数字前缀创建新的视频文件:

    prefix = image.split('_')[0]
    

    这行代码提取了图片文件名中的数字前缀。这里的前缀是以_来划分,不同的数据集可以换成相关规则。

  7. 如果当前视频名称与前缀不一致,创建新的视频写入对象:

    if prefix != current_video_name:
    

    如果当前图片的数字前缀与上一个图片的数字前缀不一致,则表示需要创建新的视频文件。

  8. 获取第一张图片的宽度和高度,用于设置视频的尺寸:

    frame = cv2.imread(os.path.join(image_folder, image))
    height, width, layers = frame.shape
    

    这行代码读取第一张图片,并获取其宽度和高度。

  9. 将当前图片写入当前视频:

    video.write(cv2.imread(os.path.join(image_folder, image)))
    

    这行代码将当前图片写入当前视频。

  10. 完成后释放最后一个视频对象:

    if video is not None:
        video.release()
    

    如果存在视频对象,则释放该对象。

  11. 显示完成信息:

    print("所有视频生成完成!")
    

    这行代码打印输出所有视频生成完成的消息。

3. 总体代码

import cv2
import os
from tqdm import tqdm

# 图片文件夹路径和保存视频的路径
image_folder = 'path/to/your/image/folder'
output_folder = 'path/to/your/output/folder'

# 获取图片文件夹中的所有图片文件名,并按文件名排序
images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
images.sort()

# 生成视频的编解码器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')

# 初始化一个视频写入对象
video = None
current_video_name = None

# 使用 tqdm 显示进度条
for image in tqdm(images, desc="Converting images to videos"):
    # 根据文件名获取当前图片的数字前缀
    prefix = image.split('_')[0]

    # 如果当前视频名称与前缀不一致,创建新的视频写入对象
    if prefix != current_video_name:
        if video is not None:
            # 完成当前视频的写入并释放对象
            video.release()
        # 创建新的视频文件名
        current_video_name = prefix
        output_video_name = os.path.join(output_folder, f"output_video_{current_video_name}.mp4")
        # 获取第一张图片的宽度和高度,用于设置视频的尺寸
        frame = cv2.imread(os.path.join(image_folder, image))
        height, width, layers = frame.shape
        video = cv2.VideoWriter(output_video_name, fourcc, 10, (width, height))

    # 将当前图片写入当前视频
    video.write(cv2.imread(os.path.join(image_folder, image)))

# 完成后释放最后一个视频对象
if video is not None:
    video.release()

print("所有视频生成完成!")

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【网络】HTTP协议

文章目录 一. 认识 URL1. URL 初识2. URL 的组成① 协议名称② 域名③ 端口号④ 文件路径⑤ 查询参数 3. URL中的字符3.1 合法字符3.2 保留字符3.3 其他字符3.4 URL中的字符总结 二. HTTP 协议1. HTTP 介绍2. 请求报文2.1 请求报文的格式2.2 请求方法介绍2.3 请求报文中常见的 …

【LeetCode:1103. 分糖果 II + 模拟】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

CUDA架构介绍与设计模式解析

文章目录 **CUDA**架构介绍与设计模式解析**1** CUDA 介绍CUDA发展历程CUDA主要特性CUDA系统架构CUDA应用场景编程语言支持CUDA计算过程线程层次存储层次 **2** CUDA 系统架构分层架构并行计算模式生产-消费者模式工作池模式异步编程模式 **3** CUDA 中的设计模式工厂模式策略模…

电脑技巧:推荐一款非常好用的媒体播放器PotPlayer

目录 一、 软件简介 二、功能介绍 2.1 格式兼容性强 2.2 高清播放与硬件加速 2.3 自定义皮肤与界面布局 2.4 多音轨切换与音效增强 2.5 字幕支持与编辑 2.6 视频截图与录像 2.7 网络流媒体播放 三、软件特色 四、使用技巧 五、总结 一、 软件简介 PotPlayer播放器 …

【MATLAB源码-第201期】基于matlab的黏菌群优化算法(SMA)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境: MATLAB 2022a 1、算法描述 黏菌优化算法(Slime Mould Algorithm, SMA)是一种新颖的启发式优化方法,其灵感来源于自然界中的真菌——黏菌。这种算法模拟了黏菌在寻找食物时的行为和网络形成策略。在本文中&#xff0c…

【Linux】yum、vim

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html 目录 Linux 软件包管理器 yum 什么是软件包 查看软件包 如何安装软件 如何卸载软…

网络安全的重要性及人才需求

安全现在是大趋势,说是铁饭碗也不为过,就业前景好,方向多比传统计算机行业就业舒服点。但是大厂依然是985,211的天下,是双非能进大厂的,只是凤毛麟角。前提是你的能力可以让公司忽略你的学历。 以2023年为…

【华为】VRRP的实验配置

【华为】VRRP的实验配置 实验需求拓扑LSW 3LSW 1基础配置VRRPDHCPOSPF默认路由 LSW 2基本配置VRRPDHCPOSPF默认路由 R1ISPPC1PC2 测试上网VRRP实验需求监视端口 配置文档 实验需求 ① 该公司有市场部和技术部,分别划在VLAN 10 和 VLAN 20里面 ② 此时为了网络的稳…

万兆以太网MAC设计(12)万兆UDP协议栈上板与主机网卡通信

文章目录 一、设置IP以及MAC二、上板效果2.1、板卡与主机数据回环测试2.2、板卡满带宽发送数据 一、设置IP以及MAC 顶层模块设置源MAC地址 module XC7Z100_Top#(parameter P_SRC_MAC 48h01_02_03_04_05_06,parameter P_DST_MAC 48hff_ff_ff_ff_ff_ff )(input …

双目深度估计原理立体视觉

双目深度估计原理&立体视觉 0. 写在前面1. 双目估计的大致步骤2. 理想双目系统的深度估计公式推导3. 双目标定公式推导4. 极线校正理论推导 0. 写在前面 双目深度估计是通过两个相机的对同一个点的视差来得到给该点的深度。 标准系统的双目深度估计的公式推导需要满足:1)两…

ASR语音转录Prompt优化

ASR语音转录Prompt优化 一、前言 在ASR转录的时候,我们能很明显的感受到有时候语音识别不是很准确,这过程中常见的文本错误主要可以归纳为以下几类: 同音错误(Homophone Errors) 同音错误发生在不同词语发音相似或相…

Modelsim自动仿真平台的搭建

Modelsim自动仿真平台的搭建 如果要搭建自动仿真平台脚本那就需要更改下面3个文件。run_simulation.bat、complie.do和wave.do文件。注:前提是安装了modulsim并且配置好了环境变量,这里不过多介绍。 一、下面是run_simulation.bat文件的内容 : 注释的…

MySQL-查询数据-练习

练习 1.创建一个查询,显示收入超过 12,000 的雇员的名字和薪水。 select LAST_NAME,SALARY from employees where SALARY > 12000;2.创建一个查询,显示雇员号为 176 的雇员的名字和部门号。 select LAST_NAME,DEPARTMENT_ID from employees where …

前端vue如何生成二维码

有时候有需要链接直接生成二维码在手机上看的需求,比如下载,比如信息,比如excel 下面先引入包 import QRCode from qrcode; 然后上代码 // 将res转换成二维码const qrCodeData JSON.stringify(res); // 将res转换为字符串作为二维码数据// …

WebSocket 全面解析

🌟 引言 WebSocket,一个让实时通信变得轻而易举的神器,它打破了传统HTTP协议的限制,实现了浏览器与服务器间的全双工通信。想象一下,即时消息、在线游戏、实时股票报价…这一切都离不开WebSocket的魔力💫。…

xLua热更新解决方案

图中灰色的无法实现热更新,而Lua代码可以打包成AB包,并上传到资源服务器, 当进入游戏检测是否有资源需要更新,需要则会从资源服务器下载。 学习目标 1.导入xLua框架 2.C#调用Lua 3.Lua调用C# 4.xLua热补丁 xLua框架导入和AB…

什么是网络安全等级保护测评(等保测评)?

什么是网络安全等级保护测评(等保测评)呢?今天永恒无限就为大家介绍下网络安全等级保护测评(等保测评) 网络安全等级保护测评(等保测评)是指对信息和信息系统按照重要性等级进行的保护测评。它…

爱普生晶振在物联网LoRa通讯中的应用

LoRa 是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折衷考虑方式,为用户提供一种简单的能实现远距离、长电池寿命、大容量的系统,进而扩展传感网络…

C语言:项目实践(贪吃蛇)

前言: 相信大家都玩过贪吃蛇这款游戏吧,贪吃蛇是久负盛名的游戏,它也和俄罗斯方块,扫雷等游戏位列经典游戏的行列,那贪吃蛇到底是怎么实现的呢? 今天,我就用C语言带着大家一起来实现一下这款游戏…

Golang Colly爬取图片gorm存储数据

语言:Golang 库:Iris/Colly/gorm 运行结果 text/html; charset=utf-8 It is image 20240429222029_0_0.jpg Saved file: images\20240429222029_0_0.jpg text/html; charset=utf-8 It is image 20240429222030_1_0.jpg Saved file: images\20240429222030_1_0.jpg It is ima…
最新文章