我知道编辑这个网站吗?

2014-06-04 - ImageJ 2.0.0 候选发布版

今天,ImageJ team很高兴宣布ImageJ2的公开发布候选版本:版本2.0.0-rc-2。我们在内部测试了第一个候选版本,但现在是时候让社区参与了:请您最喜欢的工作流程测试第二个候选版本。

与过去两年的测试版本不同,此版本的 ImageJ2 与旧版 ImageJ 1.x 用户界面完全集成。因此,这个版本的 ImageJ2 确实是您所了解和喜爱的 ImageJ,实现了与现有 ImageJ 1.x 插件、脚本和宏的 100% 兼容,同时仍然提供对 ImageJ2重新设计允许的功能版本的访问。这继续您熟悉的方式使用ImageJ,同时还可以根据需要迁移到更强大的新功能。

ImageJ 的 Fiji 发行版捆绑 ImageJ2 已经有一段时间了,因此您可能已经熟悉了 ImageJ2 的一些功能,其中一些功能(例如 UpdaterLauncher)最初是作为 Fiji 的部分开发的,现在它们是 ImageJ 本身的部分。但是这个版本代表 Fiji 第一次真正完全构建在 ImageJ2 上面。

ImageJ2 的特点

ImageJ2 提供了大量的新特性和功能:

  • ImageJ更新程序可以让您的ImageJ保持最新状态,并通过添加额外的Update Sites添加新的插件。
  • ImageJ Updater还可以通过Personal Update Sites轻松发布您自己的基于ImageJ的工具。
  • 通过 SCIFIO 库支持新的和增强的文件格式。调用特殊的 SCIFIO 插件;它会自动与 §§命令§0§§§ 等一起使用。通过 FileOpen命令使用导入其他选项。有关更多详细信息,请参阅 ImageJ wiki 的 SCIFIO 页面。/media/news/parameterized-macro.png
  • 新命令:
    • FileImportImage… for debugging when things hang.
    • PluginsDebugDump Stack for reporting on versions of installed plugins and libraries.
  • 更强大的Script Editor,通过通用、一致的脚本框架支持多种脚本语言(除下面的屏幕截图之外)。
  • 编写参数化命令和脚本:
    • Declare typed inputs and outputs with the @Parameter annotation and let ImageJ handle the user interaction, avoiding any dependence on the AWT user interface (see example below).
    • Parameter support for scripts and macros (see section below)
    • Reusable in many contexts: KNIME, CellProfiler, OMERO, headless…
    • Plugins appear in the menu automatically without plugins.config files, and without having to set the plugins.dir property to a single directory containing all the .jar files with special naming requirements.
    • Mix and match ImageJ 1.x and ImageJ2 data structures!

    Example:

import ij.ImagePlus;
import org.scijava.command.Command;
import org.scijava.plugin.Parameter;
import org.scijava.plugin.Plugin;

@Plugin(type = Command.class, menu = "Plugins > Set Image Title")
public class SetImageTitle implements Command {
    @Parameter
    private ImagePlus imp;

    @Parameter
    private String title;

    @Override
    public void run() {
        imp.setTitle(title);
    }
}
  • 简单而强大的插件概念——子关注即将发布的专门博客文章!
  • 使用 ImageJ2 的基于 ImgLib2 的 N 维数据结构(仍处于测试阶段)。

/media/news/parameterized-macro.png

增强的脚本编写

ImageJ2 配备了一个通用且优雅的脚本框架:所有语言都可以以相同、一致的方式访问。可以通过自定义脚本语言插件来支持新语言;脚本编辑器将自动支持此类语言。默认情况下,ImageJ 支持 Beanshell、Javascript、Jython、JRuby、Clojure、ImageJ 1.x 宏和 Java“作为脚本语言”。实验性 alpha 版本可用于 Scala 和本机 Python。

与支持@Parameter注释要求ImageJ自动生成对话框的命令类似,脚本支持相关概念:通过在脚本顶部的注释行中声明类型化变量,ImageJ(或KNIME、CellProfiler、OMERO等)将被要求在执行脚本时自动生成适当的对话框。

与参数化脚本相同,现在也可以在 ImageJ 1.x 宏中声明需要哪些输入参数(请参见前面的 ImageJ2 脚本编辑器屏幕截图,其中包含正在运行的参数化宏)。

不仅仅是一个应用程序

ImageJ2 打破了“一个开发人员、一个机器、一个任务”的范式:它也是一个基于SciJava构建的高度可重用软件库的自定义集合,使用强大的插件框架来促进快速开发和无痛的用户定制。

以下软件组件库构成了ImageJ2的核心:

  • ImageJ Ops - 核心图像数据模型,使用ImgLib2。
  • ImageJ Common - 可重用图像处理算法的可扩展框架。
  • ImageJ Legacy - 更新 ImageJ 中各个插件和库的机制。
  • ImageJ Updater - 提供与 ImageJ 1.x 的完全兼容。
  • SciJava Common - 插件、模块、脚本和应用程序本身的核心框架。

如何测试候选版本?

您可以 download the .zip file 或仅更新您的 Fiji 安装:ImageJ 2.0.0-rc-2 已经是 Fiji 的一部分。

包含发送至 ImageJ mailing list 的所有错误报告。非常感谢您尝试 ImageJ2!