2016-10-26 97 views
1

我是ImageJ的新手,並試圖使用Python(在ImageJ宏編輯器中)重新創建以下宏。ImageJ:在Python腳本中使用selectionType()時的NameError

s = selectionType(); 

if(s == -1) { 
    exit("There was no selection."); 
} else if(s != 10) { 
    exit("The selection wasn't a point selection."); 
} else { 
    getSelectionCoordinates(xPoints,yPoints); 
    x = xPoints[0]; 
    y = yPoints[0]; 
    showMessage("Got coordinates ("+x+","+y+")"); 
} 

問題是,我不知道如何導入selectionType()和getSelectionCoordinates()內置函數。當我嘗試在Python代碼中使用它們時,出現NameError錯誤。

任何想法?

謝謝, 亞歷克斯

回答

0

不幸的是,ImageJ的1.x中內置的宏功能不是一流的Java方法,因此沒有必要從其他腳本語言如Python。

您可以閱讀Java源代碼以查看宏函數的功能,但在某些情況下需要一些努力才能解密。例如,getSelectionCoordinates函數可以是seen here

總之:它調用getRoi()方法ImagePlus,然後取決於它是什麼樣的Roi,填充座標不同。對於Roi.LINE類型,使用x1d,y1d,x2dy2d字段。否則,調用RoigetFloatPolygon()方法將ROI轉換爲多邊形類型,然後對其座標進行走線。

對於selectionType功能,只需撥打getRoi()就可以了ImagePlus