5

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

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. 我究竟做错了什么?我很高兴使用另一个模块。

4

2 回答 2

11

您不需要通过 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,因为我正在关注您的代码。

于 2017-12-13T05:55:06.093 回答
3

您的代码与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()

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

于 2021-06-17T07:44:33.060 回答