需要帮助吗?
我正在处理"moving_mnist“数据集。使用tfds.load("moving_mnist")
加载此数据,然后使用tfds.as_numpy()
将其转换为数组,这将返回形状为( 20 ,64,64,1)的图像序列数组,其中20是帧数。现在我想要的是,为了在我的jupyter笔记本中显示这些数组为GIF,请看下面的代码,我试过了,但它将为最后一帧生成简单的图像。
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)
Here是我得到的结果,但我想把它作为GIF
发布于 2020-11-12 08:29:11
moviepy库使得这一点变得非常简单:
import numpy as np
frames = np.random.randint(256, size=[20, 64, 64, 1], dtype=np.uint8) # YOUR DATA HERE
# save it as a gif
from moviepy.editor import ImageSequenceClip
clip = ImageSequenceClip(list(frames), fps=20)
clip.write_gif('test.gif', fps=20)
然后,如果您想在jupyter笔记本中显示该gif,您可以在下一个单元格中键入:
from IPython.display import display, Image
Image('test.gif')
发布于 2020-03-29 21:43:45
您可以使用库array2gif。
下面是取自docs的示例
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)
https://stackoverflow.com/questions/60914488
复制相似问题