ImageJ,roiManager("add")

ImageJ, roiManager("add")

这是我在 Whosebug 中的第一个问题。

我对roiManager("add")宏命令有疑问。我试图在插件中插入一个宏内容,但我试图了解什么是 adding 到 roi 管理器。这是代码:

run("Analyze Particles...", "size=0-Infinity circularity=0.00-1.00 show=Masks display clear record");

for (i=0; i<nResults; i++){
x = getResult('XStart', i);
    y = getResult('YStart', i);
    doWand(x,y);
    roiManager("add");
}

我不确定 roiManager("add") 是否正在插入 "doWand" 结果或其他东西。

如果有人帮助我,我将不胜感激。谢谢

编辑: 现在我正在尝试使用 Java classes 开发宏,但我不确定如何使用 RoiManager class 将粒子添加到 roi 管理器。我把代码放在这里:

ij.plugin.frame.RoiManager roiManager = ij.plugin.frame.RoiManager.getInstance();
IJ.run("Convert to Mask");
IJ.run("Fill Holes");
IJ.run("Set Scale...", "distance=1 known="+pixelSize+" pixel=1 unit=um");
IJ.run("Analyze Particles...", "size=0-Infinity circularity=0.00-1.00 show=Masks display clear record");
// add the particles to the roiManager
ResultsTable rt = Analyzer.getResultsTable();
int nResults = rt.getCounter();
for (int i=0; i<nResults; i++) {
    int x = Integer.parseInt(rt.getStringValue("XStart", i));
    int y = Integer.parseInt(rt.getStringValue("YStart", i));
    int doWandResult = IJ.doWand(x,y);

    //roiManager.add(IJ.getImage(), Roi¿?, doWandResult); //¿?¿?¿?¿?¿
}

如果您只想将 Analyze Particles 的结果添加到 ROI Manager,请使用选项 Add to Manager

run("Analyze Particles...", "add");

否则,您可以按照您的建议添加单个 ROI,使用:

  • 宏语言

roiManager(add) 将当前选择添加到 the ROI Manager,就像您使用 编辑 > 选择 > 添加到管理器一样

在您的宏中,这意味着 doWand(x,y) 创建的选择被添加到 ROI 管理器。

另见 macro language documentation

  • 一个Java插件:

我推荐使用Recorder插件>宏>记录...)在Java模式以获取所需的代码。在插件中,您可以使用例如:

IJ.run(imp, "Analyze Particles...", "add");

import ij.plugin.frame.RoiManager;

...

RoiManager rm = RoiManager.getInstance();
rm.addRoi(imp.getRoi());

另见 RoiManager javadoc