【发布时间】:2018-10-05 03:48:40
【问题描述】:
我有一个包含 1300 个 .JPEG 文件的文件夹,所有这些文件的文件名都按特定顺序排列。
每个文件名的顺序是 category_count_randomString.JPEG。举个例子,下面是文件夹中的一张图片:
13_2_5jdf.JPEG 其中 13 是类别,2 是图像中该类别的计数,后跟随机字符串。
我希望能够:
- 从每个文件名中提取两个类别并将它们分配为标签(然后构建 CNN 模型)和
- 从每个文件名中提取类别计数,并将它们分配给向量/数组。
目前,我刚刚使用 glob 函数加载了图像(还没有作为数组)。
import glob
data = '/Users/Data'
images = glob.glob(data+'/*.JPEG')
我是编码新手,因此我正在寻找能够提供“防白痴”编码行的人,我可以将其合并到我的笔记本中以完成这项工作。
【问题讨论】:
-
你想怎么加载图片。一个numpy数组?
-
你可以在文件名上使用
.split('_'),用下划线分割它们——这会给你一个包含三个字符串的数组,其中包含下划线分割的东西。 -
例如
category, count, end = '13_2_5jdf.JPEG'.split('_')将设置category = '13'、count = '2'和end = '5jdf.JPEG'。您还可以查看os.path模块以拆分 JPEG 扩展名(如果需要),还可以拆分路径并从路径字符串中删除前面的文件夹。 -
@adamconkey 是的,作为一个 numpy 数组。这是我在将其拆分为 x_train 和 y_train 之前必须转换的代码: x = np.array([np.array(Image.open(fname)) for fname in images])
-
@AlexanderReynolds 这是一个好的开始。但是我如何在 1300 张图片上循环播放呢?