我是ImageJ的新手,并尝试使用Python重新创建以下宏(在ImageJ宏编辑器中)。
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 :(得分:0)
不幸的是,ImageJ 1.x的内置宏函数不是一流的Java方法,因此不一定可以从Python等其他脚本语言中获得。
您可以阅读Java源代码以查看宏函数的功能,但在某些情况下需要花费一些精力才能解密。例如,getSelectionCoordinates
函数可以是seen here。
简而言之:它调用getRoi()
的{{1}}方法,然后根据它的ImagePlus
类型,以不同方式填充坐标。对于Roi
类型,使用Roi.LINE
,x1d
,y1d
和x2d
字段。否则,调用y2d
getFloatPolygon()
方法将ROI转换为多边形类型,然后遍历其坐标。
对于Roi
功能,只需拨打selectionType
上的getRoi()
。