Запись нового тега в группу XMP с настроенным exiftool не работает - PullRequest
0 голосов
/ 14 февраля 2020

Мне нужно добавить новые теги ко многим изображениям, теги:

AboveGroundAltitude
BandName
CentralWaveLength
ColorTransform
PerspectiveDistortion
PerspectiveFocalLength
PrincipalPoint
WavelengthFWHM

Я создал этот файл конфигурации:


%Image::ExifTool::UserDefined = (

  'Image::ExifTool::XMP::xmp' => {
    NewXMPxmpTag => { Groups => { 1 => 'AboveGroundAltitude' } },
    NewXMPxmpTag => { Groups => { 1 => 'BandName' } },
    NewXMPxmpTag => { Groups => { 1 => 'CentralWaveLength' } },
    NewXMPxmpTag => { Groups => { 1 => 'ColorTransform' } },
    NewXMPxmpTag => { Groups => { 1 => 'PerspectiveDistortion' } },
    NewXMPxmpTag => { Groups => { 1 => 'PerspectiveFocalLength' } },
    NewXMPxmpTag => { Groups => { 1 => 'PrincipalPoint' } },
    NewXMPxmpTag => { Groups => { 1 => 'WavelengthFWHM' } },
    },
);

Вариации: I Я попробовал группу 0 в первый раз, а затем где-то прочитал, что теги XMP принадлежат группе 1 и редактируются в соответствии с требованиями.

И я выполняю команду, подобную этой:

exiftool -config config.txt -ext jpg \
-AboveGroundAltitude='55.8224668413325'\
-BandName='Red, Garbage, NIR'\
-CentralWaveLength='625, 0, 850'\
-ColorTransform='1.000, 0.000, -0.996, 0.000, 0.000, 0.000, -0.286, 0.000, 4.350'\
-PerspectiveDistortion='-0.093, 0.122, 0.000, 0.000, 0.000'\
-PerspectiveFocalLength='5.4'
-PrincipalPoint='3.100, 2.325'\
-WavelengthFWHM='100, 0, 40' test.jpg

Попробованы варианты:

- -xmp:AboveGroundAltitude='55.8224668413325'
- -XMP-AboveGroundAltitude='55.8224668413325'
- -XMP-xmp:AboveGroundAltitude='55.8224668413325'
- all the three above with `+=` between the tag and the value

Также обратите внимание, что здесь для ясности были добавлены обратные слэши, моя оригинальная команда - это один перевод строки без новых или обратных косых черт.

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

Также, используется -v4 для большей детализации. logging

exiftool -config config.txt -v4 -ext jpg -XMP-AboveGroundAltitude='55.8224668413325' -xmp:BandName='Red, Garbage, NIR' -XMP-xmp:CentralWaveLength='625, 0, 850' -xmp:ColorTransform='1.000, 0.000, -0.996, 0.000, 0.000, 0.000, -0.286, 0.000, 4.350' -PerspectiveDistortion='-0.093, 0.122, 0.000, 0.000, 0.000' -xmp:PerspectiveFocalLength='5.4' -xmp:PrincipalPoint='3.100, 2.325' -xmp:WavelengthFWHM='100, 0, 40' test.jpg

Tag 'XMP-AboveGroundAltitude' is not defined or has a bad language code
Warning: Tag 'XMP-AboveGroundAltitude' is not defined or has a bad language code
Tag 'xmp:BandName' is not defined
Warning: Tag 'xmp:BandName' is not defined
Tag 'XMP-xmp:CentralWaveLength' is not defined
Warning: Tag 'XMP-xmp:CentralWaveLength' is not defined

Sorry, xmp:ColorTransform doesn't exist or isn't writable
Warning: Sorry, xmp:ColorTransform doesn't exist or isn't writable

Tag 'PerspectiveDistortion' is not defined
Warning: Tag 'PerspectiveDistortion' is not defined
Tag 'xmp:PerspectiveFocalLength' is not defined
Warning: Tag 'xmp:PerspectiveFocalLength' is not defined
Tag 'xmp:PrincipalPoint' is not defined
Warning: Tag 'xmp:PrincipalPoint' is not defined
Tag 'xmp:WavelengthFWHM' is not defined
Warning: Tag 'xmp:WavelengthFWHM' is not defined
Nothing to do.

Обратите внимание, что сообщение для ColorTransform отличается

Примечание: уже видели введите описание ссылки здесь и другие похожие сообщения здесь и на форуме exiftool .

1 Ответ

0 голосов
/ 17 февраля 2020

Я нашел файл конфигурации, созданный производителем камеры, который я вставлю ниже:

#------------------------------------------------------------------------------
# File:         xmp_camera_tags.config
#
# Description:  Adds capability to modify all XMP camera tags
#
#------------------------------------------------------------------------------

%Image::ExifTool::UserDefined = (
    'Image::ExifTool::XMP::Main' => {
        Camera=> {
            SubDirectory => {
                TagTable => 'Image::ExifTool::UserDefined::Camera',
            },
        },
    },
);
%Image::ExifTool::UserDefined::Camera = (
    GROUPS => { 0 => 'XMP', 1 => 'XMP-Camera', 2 => 'Other' },
    NAMESPACE => { 'Camera' => 'http://pix4d.com/Camera/1.0/' },
    WRITABLE => 'string',
    GPSXYAccuracy=> {},
    GPSZAccuracy => {},
    Pitch => {},
    Roll=>{},
    Yaw => {},
    BandName => { List => 'Seq' },
    CentralWavelength => { List => 'Seq' },
    WavelengthFWHM => { List => 'Seq' },
    BandSensitivity => { List => 'Seq' },
    ColorTransform => { List => 'Seq' },
 );

%Image::ExifTool::UserDefined::camera = (
    GROUPS => { 0 => 'XMP', 1 => 'XMP-Camera', 2 => 'Other' },
    NAMESPACE => { 'Camera' => 'http://pix4d.com/Camera/1.0/' },
 );
#------------------------------------------------------------------------------

и использовал его в качестве шаблона для добавления недостающих тегов, которые мне нужны.

Информация о модели для Sentera камеры:

LensModel                       : 5.4mm-0001_0015
Model                           : 21021-03_12MP-ERS-0001

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

В любом случае, спасибо @StartGeek за ваши комментарии:)

Очевидно, моя попытка была далека, далеко от того, что было нужно, но срочность не позволила мне больше времени заняться поиском правильного способа настройки Exiftool.

...