今天,ImageJDev团队发布了ImageJ2的第六个测试版本,版本2.0.0-beta6。
ImageJ 2.0.0-beta6 是“beta”质量版本,这意味着代码尚未完成。该设计比以前更加稳定,但在最终的 2.0.0 版本发布之前仍可能发生变化。建议人们继续使用 ImageJ v1.x 进行关键工作。
从ImageJ2 development releases页面下载,该页面还有未来版本的时间表。
ImageJ2用户界面工具ImageJ v1.x。不过,从本质上来说,ImageJ2是对ImageJ的彻底重新设计。它通过一系列最新的v1.x代码并在“传统”和“现代”图像结构之间进行转换,提供与旧版本ImageJ的结构兼容。
##新消息
此版本 ImageJ 的开发重点是改进继承支持。
应用程序级别更改

Improved Command Finder: The Command Finder now has more informational columns detailing the commands it finds.
- 专用传统模式,以实现最大兼容性(请参见下文的“传统模式”)。
- 增加了遗传层的翻译支持:
- ResultsTables
- Overlay Manager contents to ROI Manager contents
- ImageJ 1.x Overlays
- 更好地支持多线程遗留插件。
- 关闭和关闭全部的纯 IJ2 实现。
- 命令查找器显示一个可排序的表格,其中包含附加列,例如快捷方式和菜单路径(见右图)。
架构变化
- 您现在可以将 ImageJ2 嵌入到 ImageJ 1.x 插件中(请参阅下面的“call-modern-from-legacy”)。为了实现这一点,ImageJ2 的 UI 不可知论得到了进一步改进:现在可以创建不可见的 ImageJ2 上下文,同时仍然使用您选择的 UI(例如 Swing)显式显示某些内容。参见eca16678。
- 改进了日志服务。您可以显式查询或设置日志记录级别(无、错误、警告、信息、调试或跟踪)。默认日志服务还支持通过
ij.log.level系统属性以编程方式设置日志记录级别。参见commit log。 - Table API 得到了极大的充实,在基本 Table 接口中添加了更多 API 方法,并添加了一个 GenericTable,其单元格可以保存任何值(不仅仅是双精度值)。有关详细信息,请参阅 7522bd3b,有关使用示例,请参阅下面的“call-modern-from-legacy”。
- DatasetView API 拥有一些小的改进,使处理多通道图像变得更加容易;参见e6e63c2a。
- ImageJ2 基础设施现在更加谨慎地使用 Class 对象,尽可能使用类名称字符串,以防使用多个类加载器(对于 ImageJ 来说,它们肯定是这样)。参见ebebf919。
- 改进了 PluginInfo 类的设计,消除了一些不一致的地方,并简化了 CommandInfo 类,删除了不必要的通用参数;参见25e9d14c。我们还修复了 CommandInfo 未充分委托其包装的 PluginInfo 的一些问题;参见04896ad7。
- ImgLib2 的 OPS 库进行了大量更改。 ImageJ 使用该库进行数学计算。结果之一是 ImageJ 现在扩大了对图像数据区域统计度量计算的支持。参见fc5e1434和b6296ffe。
- ImageJ 启动器现在支持
--debugger=PORT命令行选项,该选项允许调试器(例如 Eclipse 的)附加到现有 ImageJ 实例。
兼容性

Legacy mode: ImageJ2's legacy mode provides total compatibility with ImageJ 1.x.
有许多兼容性改进和错误修复。自 beta5 以来,团队closed 54 issues 并在更多方面取得了进展。例如,改进了对旧命令的支持,例如:图像类型、应用 LUT、剪切和填充。请参阅 beta 6 更改的完整列表here。
传统模式
尽管我们强烈强调向后兼容性,并尝试在设计架构时牢记这一重点,但一些遗留插件仍然无法工作。然而,由于我们捆绑了完整的 ImageJ 1.x,因此在这种情况下包含后备“遗留模式”并不太困难。在此传统模式下,所有图像显示均被隐藏,与 ImageJ 1.x 兼容的图像显示在旧式窗口中。同样,主窗口也被隐藏以支持 ImageJ 1.x 的主窗口。要返回,可以在“帮助”菜单中使用“切换到现代模式”命令。
更新程序更改
- 更新程序现在可以上传到 OS X 服务器(Jerôme Mutterer 所希望的)。
- 更稳健地处理跨站点依赖关系。
- 更合理地处理平台相关的依赖关系。
- 更新程序组件现在仅在必要时实例化。
- 更新程序的命令行界面允许检查有关各个组件的更详细信息。
- 更新程序不再期望某些斐济组件可用。
- 更新程序现在可以纯粹从远程 .jar 文件运行;例如,按 a Javascript script。
示例图片上传器
通常,附加演示某些问题(例如 I/O)的示例图像是不切实际的。有些图像太大,或者科学家可能不愿意发布图像。新的Help › Upload Sample Image命令允许用户将图像上传到ImageJ开发服务器,只有少数受信任的开发人员可以访问图像。该命令的灵感来自 Fiji 的同名命令,但它比原始命令更强大、更快。
开发者示例

Use ImageJ2 in legacy plugins: You can now create and display ImageJ2 objects (such as the spreadsheet table shown here) from within a legacy ImageJ 1.x plugin.
我们继续为开发人员充实示例代码。自 beta5 以来,有两个新教程可用:
- simple-command:展示如何编写creates and displays an ImageJ2 spreadsheet table的简单 ImageJ2 命令。
- call-modern-from-legacy:展示如何将 ImageJ2 嵌入到旧版 ImageJ 1.x 插件中,以便您可以开始利用新功能,而无需完全切换到 ImageJ2。示例 generates an 8-bit gradient image 在单元格中包含字符串值,这是使用 ImageJ 1.x 的 ResultsTable 类无法完成的操作。
SLIM 插件
测试版 SLIM 插件的工作仍在继续,以修复错误并改进功能。重点是添加缺失的功能,这将使 LOCI 科学家希望开始使用 SLIM Plugin 作为他们的主要 FLIM 拟合工具。对直方图进行了改进,以计算中位数和四分位数,放大有趣的值范围,并将这些值导出到文本。添加了批处理模式,以便 SLIM 插件可以从宏文件运行并处理目录中的所有文件,导出像素值和/或直方图 bin 计数。
详情请参阅SLIM Plugin website。
### 特征
有关 2.0.0-beta6 版本已完成的功能的高级列表,请参阅this report。
错误修复
38 bugs were fixed。特别是,之前测试版中的以下已知错误已在本周期内关闭:
已知错误
许多旧版 ImageJ 插件和宏都可以使用;其他一些则不然。特别是,之前的测试版仍然存在以下错误:
- 如果您非常快地执行许多遗留插件,则可能会出现与计时问题相关的错误。 #1471
- 数据坐标系偏离1个像素,导致像素探针和绘图工具坐标稍微错位。 #716和#1190
- 图像窗口有时会为不存在的滑块留出空间。 #1060
- 其他一些小的缩放问题。 #1326
- 具有预览功能的 IJ1 命令功能不完整。总的来说,他们的最终结果是正确的。今后,预览功能将通过将其移植到 IJ2 的 GUI 模型来恢复。 #981
- 最后请注意,在 Windows 和 Linux 上仍然需要安装 Java;ImageJ2 不与 Java 捆绑在一起,也不会为您下载。
相关计划功能和错误修复的高级列表,请参阅Open Features列表。
路线图和未来方向
我们完成了巨大的工作来记录我们正在做的工作以及需要做的事情,以通过提供强大且功能齐全的ImageJ2。所有任务均由我们的Trac问题跟踪系统跟踪,您可以多种方式查看:
- Roadmap - 未来版本的硬件概述,包括每个版本的进展
- Open Features - 每个未来版本的高级功能列表
- All Open Tickets - 已知错误的完整列表
- 如果您对开发的特定部分感兴趣,您还可以执行自定义查询以进一步细化结果。
为了更准确地反映剩下要做的事情,我们再次重新估计了 ImageJ2 的发布日期,并在最终 2.0.0 发布之前安排了额外的测试版本。请参阅 ImageJ2 development releases 页面了解更新的发布时间表。
##谢谢
感谢您对 ImageJ2 的兴趣!请give it a try,并随时report any bugs you find!