Набор инструментов XMP для Matlab

Кто-нибудь когда-нибудь слышал о чем-то, что могло бы облегчить работу с метаданными XMP в Matlab?

Например, метаданные EXIF ​​можно прочитать, просто используя команду exifread

output = exifread(filename);

Я нашел эту тему, но она, похоже, мертва.


На данный момент думаю о следующих вариантах:

  1. Написание MEX-файла с использованием C++ XMP SDK
  2. Вызов подпрограмм Java с помощью JAVA XMP SDK

Подводя итог, возникает вопрос: Есть ли у вас какие-либо идеи о том, как XMP может быть прочитан/записан в Matlab?


person Andrey Rubshtein    schedule 21.02.2012    source источник


Ответы (2)


XMP — это просто XML, поэтому вы можете использовать любой набор инструментов MATLAB XML. Лично мне больше всего нравится xml_io_tools.


Если вы хотите использовать SDK, чтобы избежать ручной интерпретации того, что означают биты XML, то из двух ваших вариантов предпочтительнее будет вариант с Java. Вызов Java из MATLAB простой, и вы избегаете хлопот, связанных с создание вещей, которые влечет за собой MEX.

person Richie Cotton    schedule 21.02.2012
comment
Вы правы, конечно. Но это означает выполнение большого количества пользовательского синтаксического анализа. Например, XMP определяет такие структуры данных, как прямоугольники (и единицы измерения). Было бы неплохо иметь синтаксический анализатор, который знает больше о базовом формате. - person Andrey Rubshtein; 21.02.2012
comment
Чтобы быть более точным, XMP использует подмножество RDF и поставляется с набором готовых шаблонов для хранения данных, таких как IPTC и Dublin Core. - person Andrey Rubshtein; 21.02.2012

Я нашел ответ. Лучше всего загрузить ExifTool и любые парсер Matlab JSON. Его можно извлечь из файла любого формата, включая .DNG, .XMP, .JPEG, .TIFF.

Шаг 1. Извлеките информацию во временный файл JSON с помощью

system(['exiftool -struct -j ' fileName '>'  tempFile]);

Шаг 2. Вызовите синтаксический анализатор JSON для tempFile
Шаг 3. У вас есть данные в структуре Matlab.

person Andrey Rubshtein    schedule 23.02.2012