Skip to main content
 首页 » 编程设计

ipython之在一个 IPython Notebook 单元中显示多个图像

2024年02月27日14qlqwjy

如果我有多个图像(作为 NumPy 数组加载),如何在一个 IPython Notebook 单元格中显示它们?

我知道我可以使用 plt.imshow(ima) 来显示一个图像......但我想一次显示多个图像。

我已经尝试过:

 for ima in images: 
     display(Image(ima)) 

但我只得到了一个损坏的图像链接:

请您参考如下方法:

简短回答:

如果您想在一个单元格中包含多个图形,请调用 plt.figure() 创建新图形:

for ima in images: 
    plt.figure() 
    plt.imshow(ima) 

但为了澄清与 Image 的混淆:

IPython.display.Image 用于显示图像文件,而不是数组数据。如果你想用图像显示 numpy 数组,你必须首先将它们转换为文件格式(使用 PIL 最简单):

from io import BytesIO 
import PIL 
from IPython.display import display, Image 
 
def display_img_array(ima): 
    im = PIL.Image.fromarray(ima) 
    bio = BytesIO() 
    im.save(bio, format='png') 
    display(Image(bio.getvalue(), format='png')) 
 
for ima in images: 
    display_img_array(ima) 

一个notebook说明这两种方法。