Python 如何将numpy数组转换为gif?

Python 如何将numpy数组转换为gif?,python,numpy,Python,Numpy,假设我有一个4Dnumpy阵列,其中3D子阵列是RGB图像。如何将其转换为gif格式?我更愿意只依赖于著名的Python图像处理库 样本数据: 将numpy导入为np imgs=np.random.randint(0,255,(100,50,50,3),dtype=np.uint8) 使用PIL这很简单: 将numpy导入为np 从PIL导入图像 imgs=np.random.randint(0,255,(100,50,50,3),dtype=np.uint8) imgs=[Image.from

假设我有一个4D
numpy
阵列,其中3D子阵列是RGB图像。如何将其转换为gif格式?我更愿意只依赖于著名的Python图像处理库

样本数据:

将numpy导入为np
imgs=np.random.randint(0,255,(100,50,50,3),dtype=np.uint8)

使用
PIL这很简单:

将numpy导入为np
从PIL导入图像
imgs=np.random.randint(0,255,(100,50,50,3),dtype=np.uint8)
imgs=[Image.fromarray(img)表示imgs中的img]
#duration是帧之间的毫秒数;这是每秒40帧
imgs[0]。保存(“array.gif”,save_all=True,append_images=imgs[1:],持续时间=50,循环=0)

您还可以使用ImageMagick和OpenCV从一组图像生成GIF

def create_gif(输入路径、输出路径、延迟、最终显示、循环):
#获取输入目录中的所有图像路径
imagePaths=已排序(列表(path.list_图像(inputPath)))
#删除列表中的最后一个图像路径
lastPath=imagepath[-1]
ImagePath=ImagePath[:-1]
#构造将要使用的image magick“convert”命令
#生成我们的输出GIF,使最终结果延迟更大
#框架(如果需要)
cmd=“convert-delay{}{}-delay{}{}-loop{}{}”。格式(
延迟“.”。连接(图像路径)、最终显示、最后路径、循环、,
输出路径)
操作系统(cmd)

您可以参考的本教程以获得更清晰的信息。

如果示例演示如何从问题中的示例数据开始获取gif,则会更好。纯python解决方案也比仅仅使用python作为命令行的包装要好。