【问题标题】:How to save ROIs from ROI manager in jython script?如何在 jython 脚本中保存来自 ROI 管理器的 ROI?
【发布时间】:2014-03-28 03:46:30
【问题描述】:

我正在编写一个半自动的 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?

谢谢!!

【问题讨论】:

    标签: jython imagej roi


    【解决方案1】:

    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();
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      相关资源
      最近更新 更多