Преобразовать в EELS

У меня проблема с пакетным преобразованием изображения в данные EELS по сценарию.

Я сравнил разницу между данными EELS и изображением, основное отличие заключается в том, что данные EELS имеют группу тегов: «Метаданные», которые содержат теги «Формат: изображение спектра» и «Сигнал: EELS». («Формат» и «сигнал» находятся в группе тегов «Метаданные».)

Вот мой код:

image front := GetFrontImage()
Taggroup imgtags=front.ImageGetTaggroup()
Taggroup metadata = NewTaggroup()
Taggroup tg = NewTaggroup()
number index
index = metadata.TaggroupCreateNewLabeledTag("Meta data")
index = tg.TaggroupCreateNewLabeledTag("Format")
tg.TaggroupSetIndexedTagAsString( index, "Spectrum image")
index = tg.TaggroupCreateNewLabeledTag("Signal")
tg.TaggroupSetIndexedTagAsString( index, "EELS")
metadata.TaggroupCopyTagsFrom(tg.TaggroupClone())
imgtags.TaggroupCopyTagsFrom(metadata.TaggroupClone())

Но он возвращает «Формат», «Сигнал» и «Метаданные» на одном уровне.

Кто-нибудь знает, что не так в моем коде? Спасибо большое.


person Renfong    schedule 03.02.2017    source источник


Ответы (1)


Использование тегов/групп тегов может сбивать с толку в сценариях из-за различных путей (упрощенные и подробные команды) и типа тегов (списки тегов с проиндексированными записями и группы тегов с помеченными записями). )

То, что вы хотите в своем примере, по существу:

  • Создайте новую группу тегов (метаданные)

  • иметь два (String) вложенных тега этой группы

  • Добавьте эту группу на переднее изображение

Это делается в скриптах:

TagGroup metaDataTG = newTagGroup()
metaDataTG.TagGroupSetTagAsString( "Format", "Spectrum image" )
metaDataTG.TagGroupSetTagAsString( "Signal", "EELS" )

GetFrontImage().ImageGetTagGroup().TagGroupSetTagAsTagGroup( "Meta Data", metaDataTG )

Однако вы также можете использовать здесь «самые простые» команды, так как это определенный путь к тегу (без индексированных списков), который вы знаете. Вы можете просто сделать:

image img := GetFrontImage()
img.SetStringNote( "Meta Data:Format", "Spectrum image" )
img.SetStringNote( "Meta Data:Signal", "EELS" )

Есть еще одна вещь, которую стоит знать:

Теги MetaData часто используются DigitalMicrograph внутри компании. Изменение их с помощью сценария может иногда вызывать неожиданное поведение. В частности: Многие плагины «считывают» эти теги только один раз, когда изображение отображается в первый раз. Следовательно, когда вы добавляете теги с помощью скриптов к уже отображаемому изображению, это не повлияет на DigitalMicrograph немедленно. Вам нужно закрыть его и снова открыть его.

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

person BmyGuest    schedule 03.02.2017