首页 > 解决方案 > 如何显示尊重其相对大小的图像?

问题描述

存储在列表中的不同形状的图像,显​​示如下: 在此处输入图像描述

plt.figure(figsize=(15,10))
H = ceil(sqrt(len(good_images)))
W = 1+len(good_images)//ceil(sqrt(len(good_images)))
print(len(good_images),H, W)
for i,im in enumerate(good_images):
        plt.subplot(H, W, i+1,xticks=[],yticks=[])
        plt.title(im.shape)
        plt.imshow(im, interpolation='nearest', cmap=plt.cm.gist_gray_r)

是否可以显示图像并保存它们的相对大小?

标签: python-3.ximagematplotlib

解决方案


您可以共享坐标轴,以使所有图像都以相同的比例存在。

import numpy as np
import matplotlib.pyplot as plt

N = 25
f = lambda n,m: np.random.rand(n,m)
g = lambda: f(np.random.randint(29,150), np.random.randint(29,150))
images = [g() for _ in range(N)]

fig, axs = plt.subplots(5,5, sharex=True, sharey=True)

for image, ax in zip(images, axs.flat):
    ax.imshow(image, cmap="Greys")
    ax.set_title(image.shape, fontsize=8)
    ax.autoscale()

fig.tight_layout()
plt.show()

在此处输入图像描述


推荐阅读