将插件合并到ImageJ / FIJI宏(bUnwarpJ)

时间:2018-03-11 02:58:11

标签: imagej fiji

我正在尝试将插件bUnwarpJ集成到我正在编写的ImageJ宏中。目的是调用此插件,允许用户定义参数并运行它。      该插件可以选择保存用户定义的参数,即"保存地标"。我希望通过在我的插件中调用:call(" bunwarpj.bUnwarpJ_.saveLandmarks",output folder)来执行此操作。

目前,代码为:

run("bUnwarpJ");
call("bunwarpj.bUnwarpJ_.saveLandmarks", output folder);

问题是一旦bUnwarpJ完成,你就无法拨打'保存地标'方法,也会丢失用户输入数据。你会如何解决这个问题?

一个想法是有一个弹出窗口(在运行命令之前),它不会暂停用户交互,当用户完成定义地标时,他们可以在这个执行call()的窗口上单击OK,从而节省bUnwarpJ运行时的地标。我遇到的问题是大多数弹出窗口会暂停代码的其余部分。理想情况下就是这样:

#command for popup window here
run("bUnwarpJ"); #when user is finished, they click Ok on the box above

#which执行:call(" bunwarpj.bUnwarpJ_.saveLandmarks",输出文件夹);

感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

用户是否通过创建ROI或其他可能需要它们与图像实际交互的方式来定义地标?如果没有,和/或可以提前生成那些界标值(使用单个图像作为批处理的模板),则可以考虑仅添加一个请求界标值的用户界面/对话框,然后将其另存为一组变量或数组。让我知道这听起来是否正确,我会尽力帮助您进行设置。

答案 1 :(得分:0)

使用初始对话框无疑是获取输入参数的最简单方法。如果由于某种原因该方法不起作用,则可以考虑将以下行插入:

run("bUnwarpJ");
waitForUser("Input Your Parameters");

我还没有使用过UnwarpJ,但是,如果要让用户执行除参数输入之外的其他步骤,则waitForUser命令应允许宏暂停以进行手动输入。否则,ejkiely的建议将是最快的解决方案。