如何在python中从不同文件夹和子文件夹加载图像

如何在python中从不同文件夹和子文件夹加载图像,python,tensorflow,deep-learning,Python,Tensorflow,Deep Learning,我正在动物分类数据集中开发一个CNN,分为两个文件夹,这两个文件夹涉及另一个子文件夹…这个结构有四层,现在我想加载它们并将它们转换为n维数组以馈送到tensorflow,这些文件夹的名称就是标签。 我希望有人能帮助我一些具体的代码或一些有用的资料。 提前非常感谢 这里我将举一些例子: 利贝利奇不等翅目昆虫,1815年三色极光 颧翅目鳞毛蕨科Selys,1850鳞毛蕨 aurora和splendens是这个问题的标签,它们也是第五层子文件夹的名称,图像存储在这些文件夹中。 C:\Users\Set

我正在动物分类数据集中开发一个CNN,分为两个文件夹,这两个文件夹涉及另一个子文件夹…这个结构有四层,现在我想加载它们并将它们转换为n维数组以馈送到tensorflow,这些文件夹的名称就是标签。 我希望有人能帮助我一些具体的代码或一些有用的资料。 提前非常感谢

这里我将举一些例子: 利贝利奇不等翅目昆虫,1815年三色极光 颧翅目鳞毛蕨科Selys,1850鳞毛蕨 aurora和splendens是这个问题的标签,它们也是第五层子文件夹的名称,图像存储在这些文件夹中。
C:\Users\Seth\Desktop\dragonfly\Anisopleura\Libellulidae Leach,1815\Pseudothemis\zonata


这是一个路径。I使用openface库进行人脸识别,在这个库中,iterImgs是一种方法,它提供目录下所有图像的列表

详情

或者另一种方式定义为有效扩展

vailed_ext = [".jpg",".png"]
import os 
f_list = []
def Test2(rootDir):     
    for lists in os.listdir(rootDir): 
        path = os.path.join(rootDir, lists) 
        filename, file_extension = os.path.splitext(path) 
        if file_extension in vailed_ext:
            print path          
            f_list.append[path]
        if os.path.isdir(path): 
           Test2(path)

Test2("/home/")
print f_list

我使用openface库进行人脸识别,在这个库中,iterImgs是一种方法,它给出一个目录下所有图像的列表

详情

或者另一种方式定义为有效扩展

vailed_ext = [".jpg",".png"]
import os 
f_list = []
def Test2(rootDir):     
    for lists in os.listdir(rootDir): 
        path = os.path.join(rootDir, lists) 
        filename, file_extension = os.path.splitext(path) 
        if file_extension in vailed_ext:
            print path          
            f_list.append[path]
        if os.path.isdir(path): 
           Test2(path)

Test2("/home/")
print f_list
这就是你要找的

import os

# traverse root directory, and list directories as dirs and files as files
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)
此代码将允许您递归解析所有文件夹和子文件夹。您可以在
文件
变量中获得子文件夹(案例中的标签)和所有文件的名称

接下来的工作是创建一个字典(或numpy多维数组),为每个标签(或子文件夹)存储图像的特征。

就是您要寻找的

import os

# traverse root directory, and list directories as dirs and files as files
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)
此代码将允许您递归解析所有文件夹和子文件夹。您可以在
文件
变量中获得子文件夹(案例中的标签)和所有文件的名称


接下来的工作可能是创建一个字典(或numpy多维数组),为每个标签(或子文件夹)存储图像的特征。

文件夹布局示例将非常有用,请先显示目录结构。C:\Users\Seth\Desktop\dragonfly\Anisopleura\Aeshnidae Leach,1815\Anax\pathenope######这是一个例子,我想也许我从下面的答案中得到了答案。文件夹布局的例子会非常有用。请先显示您的目录结构。C:\Users\Seth\Desktop\dragonfly\Anisopleura\Aeshnidae Leach,1815\Anax\pathenope###这是一个例子,我想也许我从下面的答案中得到了答案。谢谢!实际上,我理解这个函数,但我认为它只能解决两层子文件夹的问题,在我的例子中,有四层或更多层,例如,C:\Users\Seth\Desktop\dragonfly\Anisopleura\Aeshnidae Leach,1815\Anax\parthenope,这是一种数据集,我能为这个问题做些什么?你们能从这些中详细说明吗(这?我真的不知道如何切割你的路径)需要提取的标签的路径?C:\Users\Seth\Desktop\dragonfly\Anisopleura\Aeshnidae Leach,1815\Anax\parthenope###在本例中,“parthenope”是标签,从动物学的概念来看,这些文件夹的名称表示蜻蜓的亚目、科、属、种。我不知道我是否清楚,我希望你能理解我所说的。只有最后一个文件夹包含标签?所有其他文件夹的名称都应该使用吗?(蜻蜓?异翅目)。您是否可以用一个完整的示例来编辑您的问题,说明您希望对给定输入做什么(例如,图像文件的路径列表)脚本应该创建什么作为数组?考虑到您刚才添加到问题中的内容,您应该执行我提供的代码,路径为:
C:\Users\Seth\Desktop\dragonfly
。您会看到,在给出PNG文件的名称之前,会有您想要的标签列表。谢谢!实际上我理解这个函数,但我我认为它只能解决两层子文件夹的问题,在我的例子中,有四层或更多层,例如,C:\Users\Seth\Desktop\dragonfly\Anisopleura\Aeshnidae Leach,1815\Anax\parthenope,这是一种数据集,我能为这个问题做些什么?你们能从中详细说明一下吗(这?我真的不明白你们的路径是怎么切断的)需要提取的标签路径?C:\Users\Seth\Desktop\dragonfly\Anisopleura\Aeshnidae Leach,1815\Anax\parthenope###在本例中,为“parthenope”是标签,从动物学的概念来看,这些文件夹的名称表示蜻蜓的亚目、科、属、种。我不知道我是否清楚,我希望你能理解我所说的。只有最后一个文件夹包含标签?所有其他文件夹的名称都应该使用吗?(蜻蜓?异翅目)。您是否可以用一个完整的示例来编辑您的问题,说明您希望对给定输入做什么(例如,图像文件的路径列表)脚本应该创建什么数组?考虑到您刚才添加到问题中的内容,您应该执行我提供的代码,路径为:
C:\Users\Seth\Desktop\dragonfly
。您会看到,在给出PNG文件的名称之前,会有您想要的标签列表。谢谢!但是如果我想从mul加载许多图像ti子文件夹(不同路径),我应该怎么做?谢谢!但是如果我想从多个子文件夹(不同路径)加载许多图像,我应该怎么做?