2014-03-28 36 views
0

我在寫一個半自動的juthon腳本。在某個時候,腳本停止等待用戶手動添加一些ROI。 我需要的是一種方法來保存添加到投資回報率管理器的所有投資回報率。我曾嘗試以下:如何在jython腳本中保存投資回報率管理器的投資回報率?

RoiManager.runCommand("Save", ROIsOutpath)

,但我得到了以下錯誤:

TypeError: runCommand(): self arg can't be coerced to ij.plugin.frame.RoiManager

當然,我學習的Jython(和一般的progrmming)。 簡短的問題是:如何從Jython中的ROImanager保存多個投資回報率?

謝謝!

回答

1

RoiManager#runCommand()方法不是靜態的,這意味着你必須調用它的RoiManager類的一個實例。爲了得到這個實例,調用:

rm = RoiManager.getInstance(); 
if (rm==None): 
    rm = RoiManager(); 

下面的代碼打開一個樣本圖像,創建兩個ROI,並在用戶的目錄保存它們:

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

希望有所幫助。

相關問題