前言
在之前的文章里,我找了用一个python程序把延时摄影的很多张照片合成视频,那个时候用来合成树莓派摄像头拍的几百张照片问题不大,但是今天尝试合成手机拍的照片,瞬间内存爆满,一看代码,气死个人,把所有照片存进一个数组再从数组里一个个取出来写入视频,搁这搁这呢属于是,所以自己重写一个,顺便去掉文件名限制,直接默认排序
程序
直接读取图片写入视频,内存占用就下来了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import cv2 import os
photos = os.listdir(r'cam_3D') photo = cv2.imread('cam_3D\\' + photos[0]) size = (photo.shape[1], photo.shape[0]) videowrite = cv2.VideoWriter(r'test.mp4', -1, 30, size) i=0 for filename in photos: path = 'cam_3D\\' + filename img = cv2.imread(path) if img is None: print(filename + " is error!") continue videowrite.write(img) i += 1 print(i) videowrite.release() print('finished')
|