我正在写一个半自动的juthon脚本。在某些时候,脚本停止等待用户手动添加一些ROI。 我需要的是一种方法来保存添加到ROI管理器的所有ROI。我尝试过以下方法:
RoiManager.runCommand("Save", ROIsOutpath)
但是我收到以下错误:
TypeError: runCommand(): self arg can't be coerced to ij.plugin.frame.RoiManager
当然,我正在学习jython(和一般的程序)。 简短的问题是:如何从Jython的ROImanager中保存多个ROI?
谢谢!
答案 0 :(得分:2)
RoiManager#runCommand()
方法不是静态的,这意味着您必须在RoiManager
类的实例上调用它。要获取此实例,请致电:
rm = RoiManager.getInstance();
if (rm==None):
rm = RoiManager();
以下代码打开示例图像,创建两个ROI,并将其保存在用户的 home 目录中:
from ij.plugin.frame import RoiManager;
rm = RoiManager.getInstance();
if (rm==None):
rm = RoiManager();
imp = IJ.openImage("http://imagej.nih.gov/ij/images/blobs.gif");
imp.setRoi(100, 80, 50, 80);
rm.addRoi(imp.getRoi());
imp.setRoi(180, 140, 30, 40);
rm.addRoi(imp.getRoi());
rm.runCommand("Deselect"); # deselect ROIs to save them all
rm.runCommand("Save", IJ.getDirectory("home") + "RoiSet.zip");
imp.show();
希望有所帮助。