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());
这是我在 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());