Rueden Curtis T, Schindelin Johannes, Hiner Mark C, DeZonia Barry E, Walter Alison E, Arena Ellen T, Eliceiri Kevin W
Laboratory for Optical and Computational Instrumentation, University of Wisconsin at Madison, Madison, Wisconsin, USA.
Morgridge Institute for Research, Madison, Wisconsin, USA.
BMC Bioinformatics. 2017 Nov 29;18(1):529. doi: 10.1186/s12859-017-1934-z.
ImageJ is an image analysis program extensively used in the biological sciences and beyond. Due to its ease of use, recordable macro language, and extensible plug-in architecture, ImageJ enjoys contributions from non-programmers, amateur programmers, and professional developers alike. Enabling such a diversity of contributors has resulted in a large community that spans the biological and physical sciences. However, a rapidly growing user base, diverging plugin suites, and technical limitations have revealed a clear need for a concerted software engineering effort to support emerging imaging paradigms, to ensure the software's ability to handle the requirements of modern science.
We rewrote the entire ImageJ codebase, engineering a redesigned plugin mechanism intended to facilitate extensibility at every level, with the goal of creating a more powerful tool that continues to serve the existing community while addressing a wider range of scientific requirements. This next-generation ImageJ, called "ImageJ2" in places where the distinction matters, provides a host of new functionality. It separates concerns, fully decoupling the data model from the user interface. It emphasizes integration with external applications to maximize interoperability. Its robust new plugin framework allows everything from image formats, to scripting languages, to visualization to be extended by the community. The redesigned data model supports arbitrarily large, N-dimensional datasets, which are increasingly common in modern image acquisition. Despite the scope of these changes, backwards compatibility is maintained such that this new functionality can be seamlessly integrated with the classic ImageJ interface, allowing users and developers to migrate to these new methods at their own pace.
Scientific imaging benefits from open-source programs that advance new method development and deployment to a diverse audience. ImageJ has continuously evolved with this idea in mind; however, new and emerging scientific requirements have posed corresponding challenges for ImageJ's development. The described improvements provide a framework engineered for flexibility, intended to support these requirements as well as accommodate future needs. Future efforts will focus on implementing new algorithms in this framework and expanding collaborations with other popular scientific software suites.
ImageJ是一款广泛应用于生物科学及其他领域的图像分析程序。因其使用便捷、拥有可记录的宏语言以及可扩展的插件架构,ImageJ受到了非程序员、业余程序员和专业开发者的青睐。众多不同类型的贡献者使得ImageJ拥有了一个涵盖生物科学和物理科学的庞大社区。然而,快速增长的用户群体、日益分化的插件套件以及技术限制表明,迫切需要进行协同的软件工程工作,以支持新兴的成像模式,确保软件能够满足现代科学的需求。
我们重写了整个ImageJ代码库,设计了一种重新架构的插件机制,旨在促进各个层面的可扩展性,目标是创建一个更强大的工具,既能继续服务现有社区,又能满足更广泛科学需求。这个新一代的ImageJ,在需要区分的地方称为“ImageJ2”,提供了许多新功能。它将关注点分离,将数据模型与用户界面完全解耦。它强调与外部应用程序的集成以最大化互操作性。其强大的新插件框架允许社区对从图像格式、脚本语言到可视化等一切内容进行扩展。重新设计的数据模型支持任意大的N维数据集,这在现代图像采集中越来越常见。尽管有这些变化,但仍保持向后兼容性,使得新功能能够与经典的ImageJ界面无缝集成,允许用户和开发者按照自己的节奏迁移到这些新方法。
科学成像受益于开源程序,这些程序推动新方法的开发并向不同受众进行部署。ImageJ一直秉持这一理念不断发展;然而,新出现的科学需求给ImageJ的发展带来了相应挑战。所描述的改进提供了一个为灵活性而设计的框架,旨在支持这些需求并适应未来需求。未来的工作将集中在这个框架中实现新算法,并扩大与其他流行科学软件套件的合作。