|
If your goal is to automate the behavior of ImageJ, consider writing a script using ImageJ”s Script Editor—it is often much simpler than a plugin in Java. |
This page provides an overview of ImageJ 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 ImageJ scripts from the ImageJ tutorial notebooks.
- Learn to use ImageJ from Java with the ImageJ tutorial Maven projects.
What is ImageJ?
An end-user software application |
Reusable software libraries |
|
"Write once, run anywhere" image processing routines |
Project structure
ImageJ is divided into three parts:
Image-specific components | |
Core image data model
| More general than images
|
For full details on the technical structure of ImageJ, see the Architecture page.
Key developer tools
There are four indispensable software development tools on which ImageJ relies:
A website which hosts all of ImageJ's source code and issue trackers. GitHub is ImageJ's nexus of online collaboration (i.e., "social coding"). | ||
A first-class distributed version control system. Git saves "snapshots" of the source code, keeping a history of changes. | ||
A build automation tool with great dependency management. Maven converts source code into program binaries, and much more. | ||
An integrated development environment (IDE) used by many ImageJ developers. Eclipse makes it much easier to explore and edit the source code. |
See the Project management page for further details.
Source code
ImageJ 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 ImageJ tutorial notebooks!
Learning the ImageJ API | ImageJ plugins | The Fiji distribution of ImageJ |