2

1 つの関数で画像の一覧を表示する方法はありますか? matlab にはモンタージュがあります。現在、ループと 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 に答える