ImageJ is a powerful research-oriented free image analysis program. It was developed from NIH Image, and is written in Java. The use of Java gives ImageJ two of its greatest strengths.
1) It can easily be modified to run "plugins" which can address the needs of the individual user.
2) It can be run on nearly any operating system, which allows everyone to share their work, which in turn has developed an "ImageJ community".
I have created many modifications/plugins to ImageJ over the years. The following are the best of these:
WARNING: I'm a doctor and not a programmer by training. However I know enough to do what I want to get done. As such, the programs below work, but they may very well not be done The Right Way. In fact, there are several places where I know how to improve the code. However, my priority was to get them to work and not perfect them, so the flaws still exist. For the same reason, good inline documentation and comments are scarse. Sorry, but something is better than nothing I hope.
ImageCanvasWithOverlay
This extends the ImageCanvas class, adding an "overlay" to allow the placement of markings, without modifying the actual image. ImageJ's setDisplayList method of ImageCanvas does something similar, but is just a list of Roi's as opposed to a full modifyable image layer.
Made with the gracious help of Johannes Schindelin and Samuel Moll.
CENSUS
Census is plugin that allows for easy identifying, counting, and processing of objects within images. It has its own plugings, which make it extremely versatile. It requires the canvas overlay feature.
BREEDS
The collection of "Breeds" for the Census plugin.
MAX_XYZ_PROJECT
A simple plugin that takes an image stack and creates one image which contains max projections along all three axes.
The plugins below are undocumented but useful for me at one time. I doubt they will be of much use for anyone else.
STACK/COLOR REGISTER
Two plugins which shift and rotate individual colors and slices in a stack to align its components.
NUC_PROFILE
An elaborate plugin that measures the position of probes and chromosome territories within a nucleus.