来自一组png图像的python imageio mp4视频

时间:2017-12-12 14:32:51

标签: python video mp4 python-imageio

如何使用模块imageio从一组png图像制作mp4视频?我试过这个:

import imageio
import glob
writer = imageio.get_writer('test.mp4', fps=20)
for png_path in glob.glob('*.png'):
    im = imageio.imread(png_path),
    writer.append_data(im[:, :, 1])
writer.close()

我还尝试用im[:, :, 1]替换im。我究竟做错了什么?我很高兴使用另一个模块。

2 个答案:

答案 0 :(得分:2)

您不需要通过im [:,:,1]修改图像。例如,下面的代码将所有以name开头的图像放在path指定的文件夹中,并创建一个名为" test.mp4"

的视频文件
fileList = []
for file in os.listdir(path):
    if file.startswith(name):
        complete_path = path + file
        fileList.append(complete_path)

writer = imageio.get_writer('test.mp4', fps=20)

for im in fileList:
    writer.append_data(imageio.imread(im))
writer.close()

所有图片的大小必须相同,因此您需要先将它们调整大小,然后再将它们附加到视频文件中。您可以通过fps修改fps,我只需将其设置为20,因为我正在关注您的代码。

答案 1 :(得分:2)

结合 Mr K. 的更好的代码版本是:

import imageio
import glob
import os
writer = imageio.get_writer('test.mp4', fps=20)
for file in glob.glob(os.path.join(path,f'{name}*.png')):
    im = imageio.imread(file)
    writer.append_data(im)
writer.close()

附言在将图像附加到视频文件之前,不要忘记添加图像大小调整代码。