如何在两个不同的图像上链接两个ROI

时间:2016-02-15 12:39:27

标签: dm-script

我写了一个小程序,将ROI的帧和位置从图像复制到相同大小的其他图像。 我现在要做的是连接两个ROI,当我移动一个ROI时,另一个ROI相应地移动。

在Dave的mitchell DM脚本网站上,我发现他使用了ConnectObject函数。但他没有解释它是如何运作的。 我阅读了DM3的文档,但找不到有关该功能的任何信息。

2 个答案:

答案 0 :(得分:1)

这里有两个概念可行。您可以使用以下两种方法之一:

1)使用" ConnectObject"在移动ROI时附加某些功能,即当您移动ROI 1时,它会触发"您可以用来更新其他rois的代码。

2)使用" ImageDisplayListeners"在移动特定imageDisplay上的任何 ROI时附加功能, 即,当ROI移动图像A时,它会触发您可以用来更新其他rois的代码。

您将找到示例code in this answer

答案 1 :(得分:1)

对于简单的事情,还有另一种选择:

相同的 ROI添加到多个图像显示中:

在这种情况下,投资回报率是"链接"自动,因为它们实际上只是内存中的单个对象(但显示在两个显示器上。)更改一个将改变另一个。 然而,这种联系已经失去了#34;如果您保存/加载图像,因为加载图像时,所有ROI(在内存中)都是新创建的。这是一些简单的示例代码:

image img1, img2
GetTwoLabeledImagesWithPrompt("Select two images of same size.", "Select", "Source", img1, "Destination", img2 )

imageDisplay disp1 = img1.ImageGetImageDisplay( 0 ) 
imageDisplay disp2 = img2.ImageGetImageDisplay( 0 ) 
number nR = disp1.ImageDisplayCountROIs()

for ( number i = 0; i<nR; i++ )
{
    ROI theROI = disp1.ImageDisplayGetROI(i)
    disp2.ImageDisplayAddROI(theROI)
}