【问题标题】:How to divide an images dataset into subsets depending on their names?如何根据名称将图像数据集划分为子集?
【发布时间】:2020-08-08 15:41:27
【问题描述】:

我有一个名为“Fingers”的数据集,我正在尝试在其上构建 TensorFlow 模型...

但是,我有点卡住了,因为我想根据图像名称的最后 2 个字符(不包括扩展名)来划分图像。

就像下面的代码:

train_dir_list = os.listdir(train_set)

train 目录列表包含一些不同名称的图像,但代表图像的实际标签位于名称的末尾,如下所示:

1239492L.png 1231235R.png...

等等……

图像的标签位于索引[-6:-5] 其中 R 代表 RIGHT,L 代表 LEFT。手指总数。

现在我的问题是将这些图像划分为 1L、2L...5L 和 1R...5R 的子目录,每个子目录都有自己的目录,以便使用 Keras ImageDataGenerator。

请帮助,您可以在 Kaggle 名称 Fingers 上找到数据集。

【问题讨论】:

    标签: python python-3.x keras dataset data-processing


    【解决方案1】:
    1. 将所有图片保存在名为'imgs'的文件夹中

    2. 使用 glob 读取所有图像,检查它们的名称。

    import glob
    import cv2
    
    imgs = []
    labels = []
    
    for f in glob.glob('imgs/*.png'):
       imgs.append(cv2.imread(f))
       str_label = f.split('.')[0][-2:] # 5L / 3R
    
       if str_label[-1] == 'R':
           labels.append([int(str_label[-2]), 1]) # 1 denotes right
       else:
           labels.append([int(str_label[-2]), 0]) # 0 == left hand
    
    

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2020-01-31
      • 2017-08-13
      • 2017-09-30
      • 1970-01-01
      • 2019-12-15
      • 2021-09-08
      • 1970-01-01
      • 2021-03-13
      相关资源
      最近更新 更多