我写了一个小程序,将ROI的帧和位置从图像复制到相同大小的其他图像。 我现在要做的是连接两个ROI,当我移动一个ROI时,另一个ROI相应地移动。
在Dave的mitchell DM脚本网站上,我发现他使用了ConnectObject函数。但他没有解释它是如何运作的。 我阅读了DM3的文档,但找不到有关该功能的任何信息。
答案 0 :(得分:1)
这里有两个概念可行。您可以使用以下两种方法之一:
1)使用" ConnectObject"在移动ROI时附加某些功能,即当您移动ROI 1时,它会触发"您可以用来更新其他rois的代码。
2)使用" ImageDisplayListeners"在移动特定imageDisplay上的任何 ROI时附加功能, 即,当ROI移动图像A时,它会触发您可以用来更新其他rois的代码。
您将找到示例code in this answer。
答案 1 :(得分:1)
对于简单的事情,还有另一种选择:
在这种情况下,投资回报率是"链接"自动,因为它们实际上只是内存中的单个对象(但显示在两个显示器上。)更改一个将改变另一个。 然而,这种联系已经失去了#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)
}