ImageJ is a public domain Java image processing program inspired by NIH Image that can be extended by plugins.
Writing ImageJ PlugIns – A Tutorial
Author: Werner Bailer
This tutorial is an introduction to writing Java plugins for ImageJ. It explains the concept of plugins in ImageJ, starting with the sample plugins that are part of the ImageJ distribution and covers those parts of the ImageJ API, that are essential for writing plugins. A reference of the most important classes, methods and constants is provided.