ImageJ ecosystem支持多种语言的脚本。您使用的哪个脚本系统取决于您正在运行的应用程序。
哪个脚本系统?
ImageJ 生态系统包含多种不同的脚本系统:
** 原始ImageJ (1.x)** 附带其自己的脚本支持:ImageJ macro language 以及一些其他脚本语言。对于此系统,请参考原始 ImageJ 网站上的 ImageJ developer documentation。 SciJava #@ script parameters 不是原始 ImageJ 的一部分。
Fiji 附带SciJava脚本框架:一个跨语言系统,包含#@ parameters、#@script directive、#!Lang shebang、统一的Script Editor和许多supported languages。本节的其余部分介绍SciJava脚本编写。
术语
这些页面一致使用以下术语:
- ImageJ — 原始ImageJ 1.x应用程序。
- ImageJ2 — Fiji 构建的 ImageJ2 库。
- Fiji — Fiji发行版(ImageJ + ImageJ2 + 精选插件集 + 基于Jaunch 的启动器)。
- SciJava 脚本 — ImageJ2 和 Fiji 共享的跨语言脚本框架。
- ImageJ 生态系统 — 以上所有内容,以及其他 ImageJ 风格的应用程序。
##入门
- 阅读第 Scripting basics 页,了解编写 SciJava 脚本的介绍。
- 阅读ImageJ2 tutorial notebooks以获取可运行的示例。
- 在斐济按[键打开Script Editor(或按⇧ Shift-[打开Script Interpreter)。
- (任选)从Templates菜单中选择一个模板来开始使用。
- 否则,请从 Language 菜单中选择您的语言。
- 从 Scripting toolbox 中获取常见任务的代码片段。 -相关脚本语言的并列比较,请参见第Scripting comparisons。
支持的语言
支持许多不同的语言。下面总结了各种可能性。
推荐选项
| Python | Python是科学家们的普遍选择。有several ways to combine Python with Fiji。 |
| Groovy | Groovy是一种灵活而强烈的脚本语言,类似于Java,但不太冗长而且是动态类型的。明白了这一点,以后使用Java(如果需要)就会变得更容易。 |
| ImageJ Macro | ImageJ宏的功能不如其他脚本语言强大,但其设计易于学习和使用。 |
| JavaScript | JavaScript 是网络开发者中的流行选择。 |
| Ruby (JRuby) | Ruby是网络开发人员中的另一个流行选择。 |
| Lisp (Clojure) | Lisp 是计算机科学家中的流行选择。 |
| R (Renjin) | R是科学家和统计学家的普遍选择。 |
###其他选项
| Java | 您可以在脚本编辑器中编写Java插件代码。这是最艰难的路,也是最有力的路。 |
| MATLAB | Fiji 可以与 MATLAB 用户连接。有关详细信息,请参阅第 MATLAB Scripting 页。 |
| BeanShell | BeanShell是一种旧的脚本语言,主要是为了兼容和维护的。它与Java语法几乎100%兼容,Groovy也是如此。 |
| Scala | Scala支持目前一个实验阶段,存在错误。 |
脚本参数
所有 SciJava 脚本都有一个通用脚本参数表示法,用于声明输入和。这种输出方法可以使用 GenericDialog,它与用户界面完全无关,允许此类脚本在各种中运行。
相关详细信息,请参阅script parameters页面。
使用口译员
所有语言脚本都使用相同的基本解释器,具有以下共同功能。
通用键绑定
- ↑ Up:在输入的命令之前带上。
- ↓ Down:引入下一个键入的命令。
- ↵ Enter:执行提示内容。
多行编辑和按键绑定
您可以通过拖动中间栏来放大提示。
- ⇧ Shift + ↵ Enter:在提示中创建一个新行。
- ⇧ Shift + ↑ Up:移至提示中的上方。
- ⇧ Shift + ↓ Down:移至提示中的下一行。
从屏幕上选择并执行文本
选择文本后,会出现一个弹出窗口:
- 复制
- 执行
- 保存到新文件
使用脚本编辑器
您可以使用内置的§§§0§§创建、编辑和运行脚本。详情请参阅the Script Editor documentation。
将脚本添加到插件菜单
要使脚本出现在菜单中,必须满足以下条件:
.txt is not a supported script extension
- 脚本文件保存在
Fiji/scripts或Fiji/plugins/Scripts目录(其他子目录)中。 - 脚本名称以支持的脚本扩展名结尾。例如:
.groovyfor groovy,.jsfor javascript,.pyfor jython,.rbfor jruby,.cljfor clojure,.bshfor beanshell, and.ijmfor ImageJ 1.x macros.
- 脚本名称包含
_(下划线)字符,例如MyScript_.ijm。
在将脚本添加到菜单之前,扩展名将被删除,所有下划线将被转换为空格。
顶级Fiji/plugins目录中的脚本将显示在插件菜单的底部。可以通过隐藏子目录将脚本放置在其他菜单中,例如将脚本放置在Fiji/scripts/File目录中并添加其添加到File菜单中。
菜单路径、标签、图标和其他模块元数据也可以使用#@script directive从脚本内部设置。
如果您无法找到脚本,您可以随意使用search bar来验证其位置(或是否存在)。
按照上述方式添加到菜单的命令可以从其他脚本调用。使用 macro recorder 获取执行此操作所需的代码。
将 JAR 资源的脚本添加到菜单中
脚本可以放在 JAR 文件中,方便更轻松地通过 Update Sites 分发给您的同事。因此,example-script-collection 可以使用 Maven 项目的模板。
在 example-script-collection jar 中,脚本位于 ./resources/scripts. 中,当 JAR 位于类路径上时(即在 ./plugins/ 或 ./jars/ 中),脚本会添加相应到菜单中。
Fiji 在 ./scripts/ 的子文件夹中创建脚本,如上中所述,并在 ./jars/ 中创建 jar。原始的 ImageJ 识别 ./plugins/ 中的插件和脚本。
在无头模式下运行脚本
相关无头执行脚本的说明,请参见第Scripting Headless页。