代码之家  ›  专栏  ›  技术社区  ›  alexxei

ImageJ:在Python脚本中使用selectionType()时发生NameError

  •  1
  • alexxei  · 技术社区  · 8 年前

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

    有什么想法吗?

    谢谢 亚历克斯

    1 回复  |  直到 8 年前
        1
  •  0
  •   ctrueden    8 年前

    不幸的是,ImageJ 1.x的内置宏函数不是一流的Java方法,因此不一定可以从其他脚本语言(如Python)获得。

    您可以阅读Java源代码以了解宏函数的功能,但在某些情况下需要一些努力才能破译。E、 g getSelectionCoordinates 函数可以是 seen here .

    简而言之:它称之为 getRoi() 方法 ImagePlus 然后取决于什么样的 Roi 即,以不同的方式填充坐标。对于 Roi.LINE 类型 x1d , y1d , x2d y2d 使用字段。否则 getFloatPolygon() 方法 投资回报率 调用以将ROI转换为多边形类型,然后遍历其坐标。

    对于 selectionType 函数,只需调用 getRoi() 图霸 .