在Jupyter Notebook 中显示动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Jupyter Notebook 中显示动画相关的知识,希望对你有一定的参考价值。

参考技术A 在 jupyter notebook 中显示动画比较麻烦,查了好多方法都不行,整理了两个可以实现功能的函数,一个函数 plot_sequence_images 用于显示有序的图片,达到动画的效果,另一个函数 plot_animation_function 用于显示动态函数:

例子中,将一个 mp4 视频通过 opencv 读取为一个图片序列,就可以在 Jupyter notebook 中显示视频了:

如何使用 google colab 在 jupyter notebook 中显示 GIF?

【中文标题】如何使用 google colab 在 jupyter notebook 中显示 GIF?【英文标题】:How to display a GIF in jupyter notebook using google colab? 【发布时间】:2020-07-21 10:12:47 【问题描述】:

我正在使用 google colab 并想嵌入一个 gif。有谁知道如何做到这一点?我正在使用下面的代码,它没有为笔记本中的 gif 设置动画。我希望笔记本是交互式的,这样人们就可以看到代码动画的内容,而无需运行它。

我发现了许多在 Google colab 中不起作用的方法。下面是代码和感兴趣的 GIF。

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

img = mpimg.imread("/content/animationBrownianMotion2d.gif")
plt.imshow(img)

我尝试了提供的一些解决方案。

import IPython
from IPython.display import Image
Image(filename='/content/animationBrownianMotion2d.gif')

类似

import IPython
from IPython.display import Image
Image(filename='/content/animationBrownianMotion2d.gif',embed=True)

但得到了错误,

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-27-56bf6cd2b134> in <module>()
      1 import IPython
      2 from IPython.display import Image
----> 3 Image(filename='/content/animationBrownianMotion2d.gif',embed=True)
      4 

/usr/local/lib/python3.6/dist-packages/IPython/core/display.py in __init__(self, data, url, filename, format, embed, width, height, retina, unconfined, metadata)
   1013 
   1014         if self.embed and self.format not in self._ACCEPTABLE_EMBEDDINGS:
-> 1015             raise ValueError("Cannot embed the '%s' image format" % (self.format))
   1016         self.width = width
   1017         self.height = height

ValueError: Cannot embed the 'gif' image format

两次。

【问题讨论】:

【参考方案1】:

对于外部 gif,您可以使用 Jupyter 的显示作为 @knoop 的答案。

from IPython.display import Image
Image(url='https://upload.wikimedia.org/wikipedia/commons/e/e3/Animhorse.gif')

但是对于本地文件,需要读取字节并显示出来。

!wget https://upload.wikimedia.org/wikipedia/commons/e/e3/Animhorse.gif
Image(open('Animhorse.gif','rb').read())

【讨论】:

您可以使用 'filename' 作为关键字参数而不是 'url' 并且来自 IPython.display 的相同旧 Image 方法就像一个魅力:) 我试过了,但没有。 ValueError: Cannot embed the 'gif' image format 事实证明,你是对的。我认为我的代码有效,因为我添加了代码,但忘记执行它,并看到了之前执行的渲染图像。感谢您的提醒:)【参考方案2】:

我不知道为什么上述方法对我不起作用。

如何将 gif 文件从 google drive 插入到 google colab

第 1 步:将 gif 保存到您的 Google 云端硬盘中

第 2 步:让 google drive 在 google drive 中打开您的文件 (此步骤与原始问题没有直接关系。)

如何将数据从 google drive 导入到 google colab。 Link

    在您的 Google 云端硬盘(“我的云端硬盘”)中,在您选择的位置创建一个名为 data 的文件夹。这是您上传数据的地方。

    在 Colab 笔记本中,键入以下内容:

from google.colab import drive         # tell colab to look at google drive
drive.mount('/content/drive')

    这些命令将带您进入 Google 身份验证步骤。您应该会看到一个屏幕,其中包含 Google 虚拟云端硬盘想要访问您的 Google 帐户。

    在您允许后,复制给定的验证码并粘贴到 Colab 的框中。

    在笔记本中,点击笔记本左上角的木炭>,然后点击文件。

    找到您之前创建的数据文件夹并找到您的数据。右键单击您的数据并选择复制路径。将此复制的路径存储到变量中,您就可以开始了。

    数据集现在存储在 Pandas 数据帧中

第 3 步:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
from IPython import display

第 4 步:

gifPath = Path("/content/drive/My Drive/xxxx/xxx.gif") # please paste the whole path from Step 2-6
# Display GIF in Jupyter, CoLab, IPython
with open(gifPath,'rb') as f:
    display.Image(data=f.read(), format='png')

【讨论】:

以上是关于在Jupyter Notebook 中显示动画的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 google colab 在 jupyter notebook 中显示 GIF?

安装PyTorch后jupyter notebook中仍出现“No module named torch“

Jupyter Notebook使用教程

(Jupyter Notebook) ModuleNotFoundError: No module named 'pandas'

后台运行jupyter notebook

安装PyTorch后jupyter notebook中仍出现“No module named torch“