2

有没有一种方法可以显示具有一个功能的图像列表?在matlab中有蒙太奇。目前,如果我 for loop 和 imshow matplotlib 从上到下显示图像。当没有空间时,我希望它从左到右然后到底部。我的代码在下面,但它当然是愚蠢的代码。

import numpy as np

plot_image = image_list[1]
for i in range(20):
    plot_image = np.concatenate((plot_image, image_list[i+1]), axis=1)

plt.figure(figsize = (15,15))
plt.imshow(plot_image, cmap = 'gray');

那么有没有像函数 montage(list_of_images) 甚至更好的函数,它不需要像 smarter_imshow(list_of_images_with_unequal_resolution) 那样接收相同大小的图像

4

2 回答 2

1

即将到来的 scikit-image 版本有一个适用于彩色图像的蒙太奇实现:

https://github.com/scikit-image/scikit-image/blob/master/skimage/util/_montage.py

不过,您确实必须通过multichannel=True彩色图像。

等待该版本的发布,该文件很容易修改(只需修复顶部的导入),因此它可以独立工作。

于 2017-09-20T12:16:54.913 回答
0

你可以在课堂上做这样的事情ImageGrid

这改编自上述文档:

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
import numpy as np

fig = plt.figure(1)
grid = ImageGrid(fig, 111,  # similar to subplot(111)
                 nrows_ncols=(2, 2),  # creates 2x2 grid of axes
                 axes_pad=0,  # pad between axes in inch.
                 )

for i in range(4):
    grid[i].imshow(np.random.random((10, 10)))  # The AxesGrid object work as a list of axes.
    grid[i].axis('off')
    grid[i].set_xticks([])
    grid[i].set_yticks([])
于 2016-06-27T18:14:14.243 回答