代码使用条件
- 需要转换的图片文件名是数字形式的,比如1,2,3,……
- 原图片是png还是jpg格式需要在
img = cv2.imread(img_root + str(i) + '.jpg')
中进行适当修改
def imgs2video(img_root, video_path, fps, size, s, e): # 仅将s到e的图转为视频
img_array = []
for i in range(s, e + 1):
img = cv2.imread(img_root + str(i) + '.jpg')
height, width, layers = img.shape
size = (width, height)
img_array.append(img)
# avi:视频类型,mp4也可以
# cv2.VideoWriter_fourcc(*'DIVX'):编码格式
# 5:视频帧率
# size:视频中图片大小
out = cv2.VideoWriter(video_path,
cv2.VideoWriter_fourcc(*'DIVX'),
fps, size)
for i in range(len(img_array)):
out.write(img_array[i])
out.release()
if __name__ == "__main__":
img_root = r'./rgb/'
video_save_path = r'./demo.avi'
img_len = len(os.listdir(img_root)) # 图片数量
imgs2video(img_root, video_save_path, 3, (548, 1440), 1, img_len)
print("imgs转video成功!")