There are a number of options out there, each with their own features and drawbacks. If you want to discuss your needs in more detail, I can touch on the specific attributes of each library as it relates to your project:
- ImageJ – http://rsbweb.nih.gov/ij/index.html — Note that ImageJ is primarily a self-contained application. However, the underlying API is very easy to use in your own applications without having to invoke the GUI.
- Fiji – http://pacific.mpi-cbg.de/wiki/index.php/Main_Page — This is ImageJ with a number of additional features. I have no personal experience with this library, but it looks promising.
- JAI – http://www.oracle.com/technetwork/articles/javaee/jai-142803.html — This is Sun’s image processing Java offering. Limited in functionality, but it can be used as a basis for more powerful libraries.
- jMagick – http://www.jmagick.org/index.html — This is just a Java wrapper around ImageMagick and uses JNI to interface with the ImageMagick API
- Apache Sanselan – http://commons.apache.org/imaging/ — This library mostly does image IO, but it has a handful of features that can facilitate image analysis.
- JIU (Java Imaging Utilities) – http://sourceforge.net/projects/jiu/ — A Java library for loading, editing, analyzing and saving pixel image files.
- Endrov – http://www.endrov.net/wiki/index.php?title=Main_Page — Endrov is a multi-purpose image analysis program. I get the impression that the underlying API is usable outside of the application, but it also seems that not everything is implemented in Java. I have no personal experience with this library and am only throwing it in because it seems to have a number of useful features.