1

我是 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。

有任何想法吗?

谢谢,亚历克斯

4

1 回答 1

0

不幸的是,ImageJ 1.x 的内置宏函数不是一流的 Java 方法,因此不一定适用于其他脚本语言,例如 Python。

您可以阅读 Java 源代码以了解宏函数的作用,但在某些情况下需要花费一些精力来解读。例如,getSelectionCoordinates功能可以在这里看到

简而言之:它调用getRoi()方法,ImagePlus然后根据Roi它的类型,以不同的方式填充坐标。对于Roi.LINE类型,使用、x1d和字段。否则,调用 的方法将 ROI 转换为多边形类型,然后遍历其坐标。y1dx2dy2dgetFloatPolygon()Roi

对于该功能,selectionType只需调用getRoi().ImagePlus

于 2016-11-29T20:37:52.490 回答