Development
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.
Contents
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 |
public void loadAndDisplay(File file) { ImageJ ij = new ImageJ(); Object data = ij.io().open(file); ij.ui().show(data); } |
An extensible collection of plugins and services |
"Write once, run anywhere" image processing routines |
Project structure
ImageJ is divided into three parts:
ImageJ | |
---|---|
Image-specific components | |
ImgLib2 | |
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:
GitHub | 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"). | |
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 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 |