我有一个形状为(1,64,224,224)的数组。 64个单通道图像,大小为224 * 224。当我这样做时:
plt.imshow(output_image[0,1,:,:], interpolation='nearest')
图像显示正确。
但是当我这样做时:
for i in range(64):
plt.imshow(output_image[0,i,:,:], interpolation='nearest')
即使有64张图像,我也只看到1张图像。
如何获得64行图像?我做错了什么?
答案 0 :(得分:5)
您可以为每张图片创建一个新的子图:
fig = plt.figure(figsize=(50, 50)) # width, height in inches
for i in range(64):
sub = fig.add_subplot(64, 1, i + 1)
sub.imshow(output_image[0,i,:,:], interpolation='nearest')
这会将所有64张图像放在一列中。改为:
sub = fig.add_subplot(8, 8, i + 1)
八列八行。
答案 1 :(得分:0)
此函数为每个图像创建子图:
img
的形状为(n,height,width,channel)
import numpy as np
def picshow(img):
num = len(img)
ax = np.ceil(np.sqrt(num))
ay = np.rint(np.sqrt(num))
fig =plt.figure()
for i in range(1,num+1):
sub = fig.add_subplot(ax,ay,i)
sub.set_title("titre",i)
sub.axis('off')
sub.imshow(data[i-1])
plt.show()