Хранение изображений и метаданных с помощью PyTables - PullRequest
4 голосов
/ 31 декабря 2011

Я использую PyTables для хранения некоторых изображений как Array и CArray типов данных. Для каждого из этих изображений я также хочу сохранить некоторые основные метаданные (например, EXIF ​​ данные).

Я могу представить несколько подходов к хранению обоих этих форматов данных, от хранения метаданных с классом AttributeSet для каждого Array / CArray до использования Table для всех метаданных.

Мой вопрос: каков наилучший подход, если я хочу иметь возможность эффективно запрашивать и извлекать изображения из окончательного файла hdf5 для обработки? Например, я хотел бы иметь возможность извлекать изображения, снятые в определенное время (12–13 часов), обрабатывать это подмножество данных, а затем вставлять копии в базу данных или заменять существующие массивы.

Большое спасибо за помощь.

Лучшее

Ник

[Редактировать (уточнение): В настоящее время я обрабатываю эти изображения как массивы NumPy и надеюсь сохранить эту функциональность]

1 Ответ

1 голос
/ 30 июля 2012

Мое понимание документов PyTables предполагает следующее.

Создание таблицы.Создайте один столбец для каждого интересующего вас фрагмента метаданных. Если ваши изображения имеют одинаковый размер, и это известно во время создания таблицы, создайте столбец массивов и сохраните их там.Если размеры изображения различаются, создайте столбец с уникальным идентификатором для каждого изображения (функциональный эквивалент имени файла), затем создайте новую группу и создайте один массив / массив для каждого изображения с именем, идентичным списку в вышеупомянутой таблице.

Другим вариантом было бы использовать облегченную RDMS (sqlite even) для хранения таблицы, что позволило бы легко запрашивать / сортировать / и т. Д., Но при этом сохранять фактические массивы изображений в файле h5.

...