Matplotlib显示每个文件夹中的第一个{n}图像

时间:2018-03-17 23:47:32

标签: python matplotlib

我有一个主文件夹,主文件夹下有3个子文件夹。我想在一个单独的图中绘制每个子文件夹中的前几个图像。我怎样才能做到这一点?

到目前为止,我能够分别执行这两项任务:

  1. 打印每个文件夹中的前5张图像

    directory=os.listdir('main_folder')
    for each in directory:
        currentFolder = 'main_folder/' + each
        for file in os.listdir(currentFolder)[0:5]:
            fullpath = main_folder+ "/" + file
            print(fullpath)
            img=mpimg.imread(fullpath)
            plt.imshow(img)
            #this seems to be plotting the last image
    
  2. 在一个图上绘制几个子图

    for i in range(1, 7):
        plt.subplot(2, 3, i)
    
  3. 如何将两者合并,以便我可以绘制每个文件夹中的前几张图像?

1 个答案:

答案 0 :(得分:0)

您可以使用enumerate将第二部分直接集成到循环中。

directory=os.listdir('main_folder')
for each in directory:
    plt.figure()
    currentFolder = 'main_folder/' + each
    for i, file in enumerate(os.listdir(currentFolder)[0:5]):
        fullpath = main_folder+ "/" + file
        print(fullpath)
        img=mpimg.imread(fullpath)
        plt.subplot(2, 3, i)
        plt.imshow(img)