MOT学习笔记 — 图片序列合成视频

笔者在学习MOT(多目标跟踪)的过程中,需要对数据集进行处理,此处以MOT20数据集为例,数据集原始格式为帧图片(MOT20-05),需要按照官网要求合成指定格式的视频。

在这里插入图片描述
MOT Challenge官网:https://motchallenge.net/data/MOT20/

在这里插入图片描述
此处借助以下脚本进行处理:

import os
import cv2
import time

img_path = 'C:/Users/xiey/Desktop/MOT20/train/MOT20-05/img1'
# 任意读取一张图片来代表视频中图片的尺寸
img = cv2.imread('C:/Users/xiey/Desktop/MOT20/train/MOT20-05/img1/000001.jpg')
imgInfo = img.shape
size = (imgInfo[1], imgInfo[0])
# 获得文件夹中图片的数量,从而进行循环生成视频文件
img_nums = len(os.listdir(img_path))
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
# 写入对象 1.file name  2.编码器  3.帧率  4.尺寸大小
videoWrite = cv2.VideoWriter(
    os.path.join(img_path, '../', 'videos.avi'), fourcc, 25, size)

# 读取这个文件夹中的每一张图片(按照顺序)然后组合成视频,帧率是每秒 25 帧
# 由于MOT20-05序列中,图片命名和其它序列不一样,此处借助以下代码来完成
for i in range(len(os.listdir(img_path))):
    print(i)
    if i < 9:
        filename = "00000" + str(i + 1) + ".jpg"
        filename = os.path.join(img_path, filename)
        # print(filename)
        img = cv2.imread(filename)
        videoWrite.write(img)

    elif 9 <= i < 99:
        filename = "0000" + str(i + 1) + ".jpg"
        filename = os.path.join(img_path, filename)
        # print(filename)
        img = cv2.imread(filename)
        videoWrite.write(img)

    elif 99 <= i < 999:
        filename = "000" + str(i + 1) + ".jpg"
        filename = os.path.join(img_path, filename)
        # print(filename)
        img = cv2.imread(filename)
        videoWrite.write(img)

    else:
        filename = "00" + str(i + 1) + ".jpg"
        filename = os.path.join(img_path, filename)
        # print(filename)
        img = cv2.imread(filename)
        videoWrite.write(img)

print("Process finish~")

处理效果:

在这里插入图片描述

文中部分代码引用自其他博主博客,仅用作学习用途,在此表示感谢,如有侵权,可联系我删除。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin&Amy

感谢您的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值