python - 如何根据名称将图像数据集划分为子集?
问题描述
我有一个名为“Fingers”的数据集,我正在尝试在其上构建 TensorFlow 模型......
但是,我有点卡住了,因为我想根据图像名称的最后 2 个字符(不包括扩展名)来划分图像。
就像下面的代码一样:
train_dir_list = os.listdir(train_set)
train dir 列表包含一些不同名称的图像,但代表图像的实际标签位于名称的末尾,如下所示:
123949 2L .png 123123 5R .png...
等等...
图像的标签位于索引 [-6:-5] 处,其中 R 代表 RIGHT,L 代表 LEFT。与总手指数。
现在我的问题是将这些图像划分为 1L、2L...5L 和 1R...5R 的子目录,每个子目录都有自己的目录,以便使用 Keras ImageDataGenerator。
请帮助,您可以在 Kaggle 名称 Fingers 上找到数据集。
解决方案
将所有图像保存在一个名为
'imgs'
使用 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
推荐阅读
- git - 错误合并后如何恢复到远程的旧提交?
- swift - 向 Flutter 原生包添加额外的 swift 文件
- python - 熊猫数据框中的条件检查 - python
- scala - scala和SQL中的总和计数不同
- c - do...while 循环中的 switch 语句(值堆叠)
- css - 如何从我的反应右侧删除滚动条
仅使用纯内联 CSS 组件 - redis - Django Compressor 应用时返回错误
- kaggle - 如何在 kaggle 上查看 .mdb 数据集?
- java - @Around 在 Spring Boot AOP 中的 @After、@Before、@AfterReturning 组合
- spyder - Spyder 变量资源管理器中的搜索工具丢失