Image 如何将整个标记组从一个图像克隆到另一个图像?

Image 如何将整个标记组从一个图像克隆到另一个图像?,image,tags,dm-script,Image,Tags,Dm Script,我有一个带有标记组(许多单独的标记)的图像。我想裁剪图像,但仍保留相同的标记组。似乎我必须创建一个新图像,并将原始标记组克隆到此新图像 我不想单独操纵标签,因为它们太多太慢。我看到有一些命令可以将它们作为一个整体来操作(比如TagGroupCopyTag();TagGroupCopyTagsFrom();TagGroupClone());但我没有找到任何命令将整个标记组作为一个整体附加到图像上。这可能是个愚蠢的问题,但有人能告诉我吗 谢谢如果您想一步一步地完成,那么您需要先获取图像,然后获取图像

我有一个带有标记组(许多单独的标记)的图像。我想裁剪图像,但仍保留相同的标记组。似乎我必须创建一个新图像,并将原始标记组克隆到此新图像

我不想单独操纵标签,因为它们太多太慢。我看到有一些命令可以将它们作为一个整体来操作(比如TagGroupCopyTag();TagGroupCopyTagsFrom();TagGroupClone());但我没有找到任何命令将整个标记组作为一个整体附加到图像上。这可能是个愚蠢的问题,但有人能告诉我吗


谢谢

如果您想一步一步地完成,那么您需要先获取图像,然后获取图像的标记组,然后使用命令进行复制和克隆。(请注意,您要克隆,否则将获得相同的标记组,即共享内存,只要图像在DM中打开。)

但您也可以轻松地将所有内容“组合”成一行:

B.ImageGetTagGroup().TagGroupCopyTagsFrom( A.ImageGetTagGroup().TagGroupClone() )
最后,如果您的目标是创建一个图像(包括标签和校准)部分的“副本”,我建议如下:

image srcImg := A
image cropped := ImageClone( srcImg[0,0,10,10] )
ShowImage( cropped )

如果您想一步一步地进行,那么您需要先获取图像,然后获取图像的标记组,然后使用命令进行复制和克隆。(请注意,您要克隆,否则将获得相同的标记组,即共享内存,只要图像在DM中打开。)

但您也可以轻松地将所有内容“组合”成一行:

B.ImageGetTagGroup().TagGroupCopyTagsFrom( A.ImageGetTagGroup().TagGroupClone() )
最后,如果您的目标是创建一个图像(包括标签和校准)部分的“副本”,我建议如下:

image srcImg := A
image cropped := ImageClone( srcImg[0,0,10,10] )
ShowImage( cropped )

一点也不傻!一点也不傻!哦令人惊讶的是,来自subarea的ImageClone()实际上保留了标记和校准。我在发布这个问题之前测试了它,它给了我不同的结果。可能是我错漏了重要的结肠。我正在旋转图像并裁剪出一个分区。似乎旋转的图像(新:=旋转(img,角度))没有保留标记和校准。然后我必须使用TagGroupClone()。从您的示例中,似乎定义的标记实际上总是链接到图像。对标签的任何更改都将立即影响图像。因此,我们可以从图像中获取原始标记并对其进行修改,而不是将标记添加到图像中(这是单独执行的操作)。这对我来说是一个惊喜。“标记组”是对象。每个图像都有一个“根”标记组,您可以访问该标记组,然后可以对其进行修改(例如添加到其中)。但如果您只需要某种“结构化”数据容器,还可以创建新的“松散”标记组对象并对其进行修改。(您也可以保存/加载它们。)DM的“首选项”是另一个“根”标记组。您可以通过“GetPerstistentTagGroup()”获得它。“SetNumberNote()SetPersistentNumberNote()等命令只是方便快捷的包装器。标记组用途非常广泛,在编写脚本时了解它们非常有用!是的,Rotate()命令创建一个新图像(只是数据)。一个“窍门”可以是预先创建一个“克隆”图像(大小合适),然后使用“=”not”:=“仅复制数据。但是复制标签(和校准)可能更“干净”。令人惊讶的是,来自subarea的ImageClone()实际上保留了标记和校准。我在发布这个问题之前测试了它,它给了我不同的结果。可能是我错漏了重要的结肠。我正在旋转图像并裁剪出一个分区。似乎旋转的图像(新:=旋转(img,角度))没有保留标记和校准。然后我必须使用TagGroupClone()。从您的示例中,似乎定义的标记实际上总是链接到图像。对标签的任何更改都将立即影响图像。因此,我们可以从图像中获取原始标记并对其进行修改,而不是将标记添加到图像中(这是单独执行的操作)。这对我来说是一个惊喜。“标记组”是对象。每个图像都有一个“根”标记组,您可以访问该标记组,然后可以对其进行修改(例如添加到其中)。但如果您只需要某种“结构化”数据容器,还可以创建新的“松散”标记组对象并对其进行修改。(您也可以保存/加载它们。)DM的“首选项”是另一个“根”标记组。您可以通过“GetPerstistentTagGroup()”获得它。“SetNumberNote()SetPersistentNumberNote()等命令只是方便快捷的包装器。标记组用途非常广泛,在编写脚本时了解它们非常有用!是的,Rotate()命令创建一个新图像(只是数据)。一个“窍门”可以是预先创建一个“克隆”图像(大小合适),然后使用“=”not”:=“仅复制数据。但复制标签(和校准)可能更“干净”。