文件夹中的图像合成视频

 图像合成视频

import os
import cv2

# 要被合成的多张图片所在文件夹
# 路径分隔符最好使用“/”,而不是“\”,“\”本身有转义的意思;或者“\\”也可以。
# 因为是文件夹,所以最后还要有一个“/”
file_dir = 'G:/data/data2/CrowdCounting/dian/save/DJI_0404/'
list = []
sort_1=[]
for root ,dirs, files in os.walk(file_dir):
    for file in files:
        list.append(file)      # 获取目录下文件名列表
        sort_1.append(file[9:])
sort_1.sort(key=lambda x: int(x[: -4]))   # 获取图片上的数值,并进行排序
#print(list)
#print(sort_1)
len = len(list)
print("图像数:",len)
sort_2=[]
for i in range(0, len):
    sort_2.append("G:/data/data2/CrowdCounting/dian/save/DJI_0404/DJI_0404_"+sort_1[i])
#print(sort_2)

# VideoWriter是cv2库提供的视频保存方法,将合成的视频保存到该路径中
# 'MJPG'意思是支持jpg格式图片
# fps = 5代表视频的帧频为5,如果图片不多,帧频最好设置的小一点
# (1280,720)是生成的视频像素1280*720,一般要与所使用的图片像素大小一致,否则生成的视频无法播放
# 定义保存视频目录名称和压缩格式,像素为1280*720
video = cv2.VideoWriter('G:/data/data2/CrowdCounting/dian/save/DJI_0404.avi',cv2.VideoWriter_fourcc(*'MJPG'),7.5,(640,512))
count=0
#for i in range(1,len(sort_2)):
for image_filename in sort_2:
    #读取图片
    #img = cv2.imread('C:/Users/xxx/Desktop/img/'+list[i-1])
    img = cv2.imread(image_filename)
   	# resize方法是cv2库提供的更改像素大小的方法
    # 将图片转换为1280*720像素大小#我的文件夹里图像都是一样大的,就不需要转换了
    #img = cv2.resize(img,(640,512))
    # 写入视频
    video.write(img)
    count+=1
    print(count)

# 释放资源
video.release()
print("已完成视频合成")

你可能感兴趣的:(python,目标检测,opencv,目标跟踪)