If your goal is to automate the behavior of ImageJ, consider writing a script using ImageJ2’s Script Editor—it is often much simpler than a plugin in Java.
This page provides an overview of ImageJ2 from the perspective of software development: how to use it from your programs, as well as how to modify or extend its capabilities via plugins.
Quick start
- Learn to write scripts from the tutorial notebooks.
- Learn to use ImageJ2 from Java with the tutorial Maven projects.
What is ImageJ2?
An end-user software application |
Reusable software libraries |
An extensible collection of plugins and services |
"Write once, run anywhere" image processing routines |
Project structure
ImageJ2 is divided into three parts—ImageJ2, ImgLib2, and SciJava—with responsibilities as follows:
image-specific components
- Application container
- Plugin framework
- Module framework
- Display and UI frameworks
- Scripting framework and plugins
core image data model
- Extensible pixel types – not just uint8, uint16, float32
- Extensible data sources – not just files on disk
- Extensible sample organizations – not just arrays
- Extensible dimensionality – not just X, Y, Z and time
- Interface-driven design
For full details on the technical structure of ImageJ2, see the Architecture page.
Key developer tools
There are four indispensable software development tools on which ImageJ2 relies:
GitHub | A website which hosts all the source code and issue trackers. GitHub is the ImageJ community’s nexus of online collaboration (i.e., “social coding”). | |
Git | A first-class distributed version control system. Git saves “snapshots” of the source code, keeping a history of changes. | |
Maven | A build automation tool with great dependency management. Maven converts source code into program binaries, and much more. | |
Eclipse | An integrated development environment (IDE) used by many developers in this community. Eclipse makes it much easier to explore and edit the source code. Although: ImageJ and friends can be developed using any IDE which supports Maven. |
See the Project management page for further details.
Source code
ImageJ2 and related SciJava software projects are open source. The code is organized into well-separated projects.
See the source code page for further details.
Tutorials
Start with the ImageJ2 tutorial notebooks!
Learning the ImageJ2 API | ImageJ2 plugins | The Fiji distribution of ImageJ2 |
---|---|---|
Also check the Youtube tutorials from the I2K conference channel such as