Dav*_*ver 57 ipython ipython-notebook
如果我有多个图像(加载为NumPy数组),我如何在一个IPython Notebook单元格中显示?
我知道我可以plt.imshow(ima)用来显示一张图片...但我想一次显示多张图片.
我试过了:
for ima in images:
display(Image(ima))
Run Code Online (Sandbox Code Playgroud)
但我只是得到一个破碎的图像链接:

min*_*nrk 90
简短回答:
plt.figure()如果您想在单元格中使用多个数字,请致电创建新数据:
for ima in images:
plt.figure()
plt.imshow(ima)
Run Code Online (Sandbox Code Playgroud)
但澄清混淆Image:
IPython.display.Image用于显示图像文件,而不是数组数据.如果要使用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)
Run Code Online (Sandbox Code Playgroud)
说明这两种方法的笔记本.
dva*_*val 68
这更容易,有效:
from IPython.display import Image
from IPython.display import display
x = Image(filename='1.png')
y = Image(filename='2.png')
display(x, y)
Run Code Online (Sandbox Code Playgroud)
Mic*_*ael 51
plt.figure(figsize=(20,10))
columns = 5
for i, image in enumerate(images):
plt.subplot(len(images) / columns + 1, columns, i + 1)
plt.imshow(image)
Run Code Online (Sandbox Code Playgroud)
import glob
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
%matplotlib inline
images = []
for img_path in glob.glob('images/*.jpg'):
images.append(mpimg.imread(img_path))
plt.figure(figsize=(20,10))
columns = 5
for i, image in enumerate(images):
plt.subplot(len(images) / columns + 1, columns, i + 1)
plt.imshow(image)
Run Code Online (Sandbox Code Playgroud)
PBr*_*ann 16
您可以使用显示和HTML功能在一个IPython Notebook单元格中显示多个图像.您需要创建一组html img标记作为字符串,如下所示
from IPython.display import Image, HTML, display
from glob import glob
imagesList=''.join( ["<img style='width: 120px; margin: 0px; float: left; border: 1px solid black;' src='%s' />" % str(s)
for s in sorted(glob('yourimage*.png')) ])
display(HTML(imagesList))
Run Code Online (Sandbox Code Playgroud)
从http://nbviewer.ipython.org/github/PBrockmann/Dodecahedron查看使用示例
您可能需要刷新浏览器(shift + load)以查看新图像(如果它们已从先前的单元格更改).
Kar*_*Żak 11
import ipyplot
ipyplot.plot_images(images_array, max_images=20, img_width=150)
Run Code Online (Sandbox Code Playgroud)
它正在使用IPython.display和HTML在引擎盖下,它可以拍摄以下格式的图像:
string 文件路径PIL.Image 对象numpy.ndarray 表示图像的对象显示numpy array500 张图像只需几秒钟
小智 5
今天,我在google Colab和jupyter笔记本中遇到了这个问题,我将在MNIST数据集上分享一个简单的解决方案:
for index in range(1,6):
plt.imshow(train_set.dataset[index], cmap='gray')
Run Code Online (Sandbox Code Playgroud)
输出仅显示最后一张图像:
因为两个 IDE 中的单元格仅显示最后一个图像。因此我添加了plt.show()解决这个问题的方法:
for index in range(1,6):
plt.imshow(train_set.dataset[index], cmap='gray')
plt.show()
Run Code Online (Sandbox Code Playgroud)
输出:
最后评论:我喜欢这种方式,因为我可以input() and plot() functions在循环中添加在一起,而不像我尝试过的其他方法。
| 归档时间: |
|
| 查看次数: |
58494 次 |
| 最近记录: |