【问题标题】:How to load data (images) from different folders and subfolders in python如何从python中的不同文件夹和子文件夹加载数据(图像)
【发布时间】:2021-07-14 18:09:09
【问题描述】:

我正在尝试数据集 DRISHTI-GS 上的一个问题。我想使用图像(来自训练)和杯段和磁盘段图像(来自软图)并在其上实现 CNN 模型。 Ground Truth (GT) 子文件夹由 52 个子文件夹组成,每个子文件夹对应于另一个名为 Images 的文件夹(这是训练的子文件夹)中的 52 张图像。 GT 中的子文件夹中有 3 个子文件夹,其中子文件夹 softmap 有两个图像,我需要加载这些图像。如果需要更多详细信息,我在下图中给出了子文件夹的布局。我希望有人可以帮助我一些具体的代码或一些有用的材料。

基本上想要列出和过滤所有扩展名为 .jpg 或 .png 的文件,在主目录及其所有子目录中。

【问题讨论】:

    标签: python image directory


    【解决方案1】:

    您可以在stackabuse中使用以下代码找到当前目录下的所有文件。

    import os
    
    for root, dirs, files in os.walk("."):
        for filename in files:
            print(filename)
    

    如果你只想找到像jpg这样的图片文件,你可以像下面这样过滤它们:

    import os
    
    for root, dirs, files in os.walk("."):
        for filename in files:
           if filename.endswith(".jpg"):
               # Process the file
    

    【讨论】:

    • StackOverflow 上有很多 os.walk 示例 - 你能修改你的链接吗?
    • 进入图片的根目录(这里是DRISHTI-GS)并运行这段代码。另外,我说过您可以使用endswith 方法过滤您的输出。您可以使用绝对路径代替相对代码。
    【解决方案2】:

    如果我正确理解了您的问题,我认为您正在寻找类似的东西(尚未对此进行测试,但应该可以)

    import glob
    
    paths = glob.glob("DRISHTI_GS/Drishti-GS1_files/Training/GT/**/SoftMap/*.png")
    print(paths)
    

    这将产生一个字符串列表,其中每个字符串都是图像的路径。此相对路径模式假定 DRISHTI_GS 位于当前工作目录中。你也可以给它一个绝对路径。

    glob-pattern 中的** 表示所有直接子文件夹,无论其名称如何。

    *.png 代表任何名称的图像。在这种情况下,它只会捕获 PNG 图像。您没有指定图像的格式 - 如果它们不是 PNG,只需将模式更改为 *.jpg 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2014-12-19
      • 1970-01-01
      • 2014-01-03
      • 2011-12-31
      相关资源
      最近更新 更多