我正在尝试将插件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",输出文件夹);
感谢任何帮助。谢谢!
答案 0 :(得分:1)
用户是否通过创建ROI或其他可能需要它们与图像实际交互的方式来定义地标?如果没有,和/或可以提前生成那些界标值(使用单个图像作为批处理的模板),则可以考虑仅添加一个请求界标值的用户界面/对话框,然后将其另存为一组变量或数组。让我知道这听起来是否正确,我会尽力帮助您进行设置。
答案 1 :(得分:0)
使用初始对话框无疑是获取输入参数的最简单方法。如果由于某种原因该方法不起作用,则可以考虑将以下行插入:
run("bUnwarpJ");
waitForUser("Input Your Parameters");
我还没有使用过UnwarpJ,但是,如果要让用户执行除参数输入之外的其他步骤,则waitForUser命令应允许宏暂停以进行手动输入。否则,ejkiely的建议将是最快的解决方案。