我有一个包含 1300 个 .JPEG 文件的文件夹,所有这些文件的文件名都按特定顺序排列。
每个文件名的顺序是category_count_randomString.JPEG。举个例子,下面是文件夹中的一张图片:
13_2_5jdf.JPEG
其中 13 是类别,2 是图像中该类别的计数,后跟随机字符串。
我希望能够:
- 从每个文件名中提取类别并将它们分配为标签(然后构建 CNN 模型)和
- 从每个文件名中提取类别的计数,并将它们分配给向量/数组。
现在,我刚刚使用 glob 函数加载了图像(尚未作为数组)。
import glob
data = '/Users/Data'
images = glob.glob(data+'/*.JPEG')
我是编码新手,所以我正在寻找能够提供“防白痴”编码行的人,我可以将它们合并到我的笔记本中以完成这项工作。
最佳答案
您可以使用 os
获取数据目录中所有文件的列表,并使用 split
命令获取文件名中的信息:
import os
data_path = "/Users/Data"
categories = []
counts = []
rand_strs = []
for img_filename in os.listdir(data_path):
if img_filename.endswith(".JPEG"):
category, count, rand_str = img_filename.split('.')[0].split('_')
categories.append(category)
counts.append(int(count))
rand_strs.append(rand_str)
然后每个列表的索引相同,因此例如,如果您想知道类别 13 有多少计数,您可以这样做
category_idx = categories.index('13')
print "Category %s has %d elements" % (categories[category_idx], counts[category_idx])
关于python - 在 Python 中提取多个图像文件名中的详细信息并将它们添加为数据集的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52658094/