Как я могу сделать GIF с использованием массивов - PullRequest
0 голосов
/ 29 марта 2020

Нужна помощь

Я работаю с набором данных " moving_mnist ". Загружая эти данные, используя tfds.load("moving_mnist"), а затем преобразуйте их в массивы, используя tfds.as_numpy(), который будет возвращать массивы последовательности изображений в форме (20, 64, 64, 1), где 20 - это количество кадров. Теперь я хочу показать эти массивы как GIF в моем блокноте jupyter, пожалуйста, посмотрите код, который я пробовал ниже, но он сгенерирует простое изображение для последнего кадра.

import tensorflow_datasets as tfds
ds, ds_info = tfds.load("moving_mnist", with_info = True,split="test")

num_examples = 3
examples = list(dataset_utils.as_numpy(ds.take(num_examples)))
fig = plt.figure(figsize=(3*3, 3*3))
fig.subplots_adjust(hspace=1/3, wspace=1/3)
for i, ex in enumerate(examples):
   video = ex["image-sequence"]
   frame,height, width, c = video.shape

   if c == 1:
       video = video.reshape(video.shape[:3])

       for i in range(0,frame):
       ax.imshow(video[i,:,:], animated=True)

Здесь - результат Я получил, но хочу, как GIF

1 Ответ

0 голосов
/ 29 марта 2020

вы можете использовать библиотеку array2gif.

Вот пример, взятый из документов :

import numpy as np
from array2gif import write_gif

dataset = [
    np.array([
        [[255, 0, 0], [255, 0, 0]],  # red intensities
        [[0, 255, 0], [0, 255, 0]],  # green intensities
        [[0, 0, 255], [0, 0, 255]]   # blue intensities
    ]),
    np.array([
        [[0, 0, 255], [0, 0, 255]],
        [[0, 255, 0], [0, 255, 0]],
        [[255, 0, 0], [255, 0, 0]]
    ])
]
write_gif(dataset, 'rgbbgr.gif', fps=5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...