基于yolov5的车辆目标检测(四)视频合成

由于之前是把视频分解成一帧一帧的照片进行处理的,下面需要再把照片合并成视频

由于文件是通过文件名进行排序的,在排序的过程中会出现问题,所以需要我们重新进行排序,否则在合成视频时会出现照片播放位置不对的情况!!!

list.sort(key=lambda x: int(x.replace("MVI_2052_", "").split('.')[0]))

在这里插入图片描述

覆盖掉文件名,“MVI_2052_"只保留中间的,同时用split去除小数点.jpg,去除文件后缀名,只保留文件名中数字的部分。

import cv2
import os

# 图片文件夹路径和格式(例如:/path/to/folder/*.jpg)
img_folder = 'E:/Machine-Vision/yolov5-master/runs/detect/exp3/'
img_format = "jpg"

# 视频文件保存路径和名称
video_name = r"E:/Machine-Vision/Data_Base/Transport_Car\video_test_car/my_video.avi"

# 视频帧率大小
fips = 30
# 获取图片列表
list = []
for root,dirs,files in os.walk(img_folder):
    for file in files:
        list.append(file)  #获取目录下文件名列表
print("未排序前列表:",list,'\n')
list.sort(key=lambda x: int(x.replace("MVI_2052_", "").split('.')[0]))
print("排序后列表:",list,'\n')
print("开始读取照片请等待\n")
#读取第一张照片,获取图片尺寸
img = cv2.imread(img_folder+list[0])
height, width, channels = img.shape
size = (width,height)
print(size,'\n')
## 创建视频编写器

video =cv2.VideoWriter(video_name,cv2.VideoWriter.fourcc(*'MJPG'),fips,size)


for i in range(2,len(list)):
    #读取照片
    img = cv2.imread(img_folder+list[i-1])
    #写入视频
    video.write(img)

#释放资源
video.release()
print("照片成功转换成视频\n")

在这里插入图片描述
检测效果可以看博主的b站
https://www.bilibili.com/video/BV1KF411D7p5/?spm_id_from=333.999.0.0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值