我试图将文件夹中的每个图像及其文件名作为标题绘制出来,但是我似乎做不到。
我已经尝试了这段代码,但是文件名都是一样的(由于迭代问题,它们是列表中最终图像的全部名称)。
# Put all images in the folder into a list (works)
images = []
for f in glob.iglob("/content/testing_data/Bad/*"):
images.append(np.asarray(Image.open(f)))
# plot the images (works)
images = np.array(images)
fig, axs = plt.subplots(15, 5, figsize=(10, 50))
fig.subplots_adjust(hspace = .3, wspace=.3)
axs = axs.ravel()
# This is for displaying the names (works)
for filename in os.listdir('/content/testing_data/Bad/'):
RatName = filename[:-4]
# show the filename (this bit doesn't work)
for i in range(len(images)):
axs[i].imshow(images[i])
axs[i].set_title(RatName)
我希望它以文件名作为标题将图像绘制为子图...
文件名1,文件名2,文件名3
但是我明白了:
文件名3,文件名3,文件名3
答案 0 :(得分:0)
当前,您正在使用固定变量作为文件名。尽管您未能提供MCVE,但我认为这应该对您有用。这个想法是使用索引i
来动态设置文件名。之所以使用i+1
是因为在python中,range(len(images))
会默认生成从0开始的数字
for i in range(len(images)):
axs[i].imshow(images[i])
axs[i].set_title('filename%s' %(i+1))
编辑,请尝试以下操作
i = 0
for filename in os.listdir('/content/testing_data/Bad/'):
RatName = filename[:-4]
axs[i].imshow(images[i])
axs[i].set_title(RatName)
i += 1