Извлеките детали из нескольких имен файлов изображений в Python и добавьте их в качестве меток для набора данных - PullRequest
0 голосов
/ 05 октября 2018

У меня есть папка, содержащая 1300 файлов .JPEG, каждый из которых имеет имена файлов в определенном порядке.

Порядок каждого имени файла - category_count_randomString.JPEG.В качестве примера ниже приведено одно изображение из папки:

13_2_5jdf.JPEG, где 13 - категория, 2 - количество этой категории на изображении, за которым следует случайная строка.

Я хотел бы иметь возможность:

  1. извлечь обе категории из каждого имени файла и назначить их в качестве меток (чтобы затем построить модель CNN), а
  2. извлечь количествокатегории из каждого имени файла, а также назначить их вектору / массиву.

На данный момент я только что загрузил изображения (пока не как массив), используя функцию glob.

import glob

data = '/Users/Data'

images = glob.glob(data+'/*.JPEG')

Я новичок в кодировании, и поэтому я ищу кого-то, кто сможет предоставить «защищенные от дурака» строки кодирования, которые я могу просто включить в свой блокнот, чтобы сделать эту работу.

1 Ответ

0 голосов
/ 05 октября 2018

Вы можете использовать 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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...