转换成鳗鱼

Convert into EELS

我在通过脚本将图像批量转换为 EELS 数据时遇到问题。

我比较了EELS数据和image的区别,主要区别是EELS数据有标签组:"Meta Data",其中包含"Format:Spectrum image"和"Signal:EELS"标签。 ("Format" 和 "signal" 在 "Meta Data" 标签组中。)

这是我的代码:

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())

但是returns "Format", "signal" 和"Meta Data" 处于同一水平

有人知道我的代码有什么问题吗?非常感谢。

使用 Tags/TagGroups 可能会在编写脚本时造成混淆,因为可以采用不同的路径(简化命令与详细命令)和标签类型(带有索引条目的标签列表与带有标签条目的标签组。)

你在你的例子中想要的本质上是:

  • 创建新标签组(元数据

  • 有两个(字符串)sub-tags 那个组

  • 将该组添加到前面的图片

这是在脚本中完成的:

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

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

但是,您也可以在此处使用 "simplest" 命令,因为这是您知道的特定 tag-path(无索引列表)。你可以简单地做:

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

还有一件事值得了解:

DigitalMicrograph 在内部大量使用 MetaData 标签。通过脚本更改它们有时可能会触发意外行为。特别是:许多插件 "read" 这些标签仅在图像首次显示时显示一次。因此,当您通过脚本将标签添加到已显示的图像时,它不会立即 'affect' DigitalMicrograph。您需要关闭它并re-opened它。

如果您想用这些标签标记任何 "new" 图像,最好在显示图像之前执行此操作。