Все общие метаданные организованы в тег-структуру изображения
Это можно увидеть, открыв Информация об отображении изображения изображения.(Через меню или нажатием CTRL + D
), а затем перейдите к разделу «Теги»:
Вся информация справа теги изображений , и они организованы в иерархическое дерево.
Как выглядит это дерево и какая информация где написана, полностью открыто и будет зависеть от того, какую версию GMS вы используете, как настроено оборудование и т. Д. Кроме того, пользовательские сценарии могут изменять эту информацию.
Итак, для начала сценария откройте данные, которые вы хотите изменить, и посмотрите в это дерево.
Подсказка: Следующий min-скрипт может быть полезен.Он открывает окно просмотра тегов для самого переднего изображения, но в виде немодального диалога (то есть вы можете держать его открытым и взаимодействовать с другими частями):
GetFrontImage().ImageGetTagGroup().TagGroupOpenBrowserWindow(0)
Информация, с которой вам нужно проверить, это , наиболее вероятно , найденное в поддереве Microscope Info
.Здесь обычно хранится вся информация, собранная с микроскопа во время сбора данных.Что там будет, будет зависеть от вашей системы и от того, как она настроена.
Информация о получении изображения STEM - что касается сканирующего механизма и детектора - составляет , наиболее вероятно в поддереве DigiScan
.
Поддерево Data Bar
обычно содержит дату и время создания и т. д.
Значения калибровки не сохраняются в тег-структуре изображения
То, что вы не найдете в этой структуре тегов, - это калибровка изображения , то есть значения, фактически используемые DM для отображения калиброванных значений.Эти значения «на один уровень вверх», так сказать здесь:
Это важно знать в следующем для вашего сценария, потому что вам понадобитсяразличные команды как для «метаданных» из тегов, так и для «калибровки», которую вы хотите изменить.
Доступ к метаданным по сценарию
Команды сценария, которые необходимо прочитатьвсе теги описаны в справочной документации F1 здесь:
По сути, вам нужна команда, чтобы получить «корневую» группу тегов изображения, что составляет ImageGetTagGroup()
, а затем вы проходите внутри этого дерева.Это может показаться странным - поскольку для разных типов хранимых тегов существует несколько слегка отличающихся команд, но основные биты просты:
- Все «пути» в дереве - это только отдельные имена(набирается точно )
- Для каждой «ветви» необходимо использовать одиночное двоеточие
:
- Все команды для установки / получения значения тега требуют каквведите «корневой» объект tagGroup и «путь» в виде строки.Команды get требуют переменной соответствующего типа для хранения значения, а команды set требуют значения, которое должно быть записано.= Команды get возвращают true или false в зависимости от того, можно ли найти путь тега и можно ли прочитать значение.
Таким образом, следующий скрипт будет читать «Режим отображения» из тегов изображения, показанного в качестве примера выше:
string mode
GetFrontImage().ImageGetTagGroup().TagGroupGetTagAsString( "Microscope Info:Imaging Mode", mode )
OKDialog( "Mode: " + mode )
и в несколько более подробной форме:
string mode // variable to hold the value
image img // variable for the image
string path // variable/constant to specify the where
TagGroup tg // variable to hold the "tagGroup" object
img := GetFrontImage() // Use the selected image
tg = img.ImageGetTagGroup() // From the image get the tags (root)
path = "Microscope Info:Imaging Mode" // specify the path
if ( tg.TagGroupGetTagAsString( path, mode ) )
OKDialog( "Mode: " + mode )
else
Throw( "Tag not found" )
Если тег не является строкой , а значением, вам потребуются соответствующие команды, например TagGroupGetTagAsNumber()
.