在 Jupyter Notebook 中将 Python PIL.Image.Image 列表显示为图像网格

jss*_*367 5 python python-imaging-library jupyter-notebook

我有一个 PIL.Image.Image 对象的 Python 列表,all_images如下所示:

[<PIL.Image.Image image mode=RGB size=192x256 at 0x10855CF8>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x1053AE10>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x106445C0>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x10644E48>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x10644BE0>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x10644C18>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x106447F0>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x146D32B0>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x146D37F0>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x146D3EB8>,
 <PIL.Image.Image image mode=RGB size=192x256 at 0x146D3668>]
Run Code Online (Sandbox Code Playgroud)

我想将它们全部显示在一个漂亮的网格中,如本教程所示。在教程中,他只是将图像保存到磁盘;我想将它们显示在 Jupyter Notebook 中。

当我这样做时Image.open(all_images[0]),由于某种原因它在 Photoshop 中打开。我也尝试过

from IPython.display import Image 
Image(all_images[0])
Run Code Online (Sandbox Code Playgroud)

PIL.Image.Image输入无效。

Kar*_*Żak 6

您可以使用IPyPlot 包来节省一些麻烦。使用 IPyPlot,您可以使用像这样简单的东西来显示图像(numpy.arrays、PIL 对象或简单的 URI):

import ipyplot

ipyplot.plot_images(images_list)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


nat*_*323 0

您可以做的是创建自己的Image对象网格,将其保存为.png.jpeg/ .jpg,然后使用另一个包显示它。

使用PIL,您可以创建一个新Image对象并将各个Image对象粘贴到其上。例如,假设您想要一个 4x4 网格。您创建一个新Imagewidth=4*width_of_smaller_imageheight=4*height_of_smaller_image。然后,循环遍历适当的像素位置,将其粘贴all_images到其上。