ImageJ is a public domain Java image processing program inspired by NIH Image for the Macintosh. It runs, either as an online applet or as a downloadable application, on any computer with a Java 1.1 or later virtual machine. It can display, edit, analyze, process, save and print 8-bit, 16-bit and 32-bit images. It can read many image formats including TIFF, GIF, JPEG, BMP, DICOM, FITS and "raw". It supports "stacks", a series of images that share a single window. It is multithreaded, so time-consuming operations such as image file reading can be performed in parallel with other operations. It can calculate area and pixel value statistics of user-defined selections. It can measure distances and angles. It can create density histograms and line profile plots. It supports standard image processing functions such as contrast manipulation, sharpening, smoothing, edge detection and median filtering. It does geometric transformations such as scaling, rotation and flips. Image can be zoomed up to 32:1 and down to 1:32. All analysis and processing functions are available at any magnification factor. The program supports any number of windows (images) simultaneously, limited only by available memory. Spatial calibration is available to provide real world dimensional measurements in units such as millimeters. Density or gray scale calibration is also available.
This review was originally posted on VersionTracker.com. The app works great but the documentation sucks. I'd like to see more info about how to accomplish tasks rather than just the basics of how a tool works. For example, I'd like to measure the perimeter of halftone dots (i.e. a repeating pattern). I've figured out how to measure the perimeter of an individual do - but not multiple dots within the same image. The documentation is no help.
This review was originally posted on VersionTracker.com. We have been using it for years at my University. Keeping in mind the price, and the collaborative method used to develop it, I think it is an awesome product. It is very versatile, and we use if for electron microscopy, astronomical images, and everything in between. It is mostly designed for medical/biology uses though.
This review was originally posted on VersionTracker.com. This program is amazing and is a worthy successor to the Mac-only NIH image. On our tight budget, we get high-quality image processing tools for free. The incorporation of the FFT filters into the main distribution was a big step forward: I never boot up Classic any more to use NIH Image.
The interface is not very Mac-like and is annoying, probably due to the cross-platform nature of the code. For heavy duty image processing (multiple FFTs or volume rendering), the program runs pretty slowly. I don't expect the speed to improve, but the features keep getting more numerous (but it doesn't feel bloated) and the bugs are rapidly addressed.
Thanks to Norbert Vischer, custom symbols in plots are now supported.
Refer to the Help>Examples>Macro>Custom Plot Symbols
command for an example.
Thanks to Philippe Carl, replaced the min/max threshold value labels
in the "Threshold" dialog by editable text fields and removed the "Set"
button. New values are validated once the user hits the enter key. Also
added mouse wheel and arrow key support to the min and max sliders.
The up/down keys increase/decrease the threshold values when the cursor
is within one of the text fields.
The "Save column headers" and "Save row numbers" options in the
Edit>Options>Input/Output dialog are always enabled on startup.
Thanks to Mathieu Prouveur, ImageJ displays an error message when
a macro function attempts to return a string enclosed in parenthesis.
Thanks to Roger Leigh, fixed bugs that prevented ImageJ from running on Java 9.
Thanks to Derek Xu and Michael Schmid, fixed a bug that could cause
the Orthogonal Views command to throw an exception.
Thanks to Jerome Parent, fixed a bug that caused the median filter
to not work correctly with 32-bit images containing NaN values.
Thanks to Ron DeSpain, fixed a bug that could cause startup macro
shortcuts to be disabled when opening a macro in the macro editor.
Thanks to Kees Straatman, fixed a bug that caused the
run("Set Measurements...", options) macro function to not work
as expected if used after a run("Analyze Particles...", options) call
that was missing 'display ' in the options string.
Thanks to Jeremy Adler, fixed a bug that caused the
run("Stack to Images") macro function to not make the
last opened image active.
Thanks to Michael Schmid, fixed bugs that sometimes caused the
the wrong image to be activated after an image is deleted in a macro.
Thanks to Michael Schmid, fixed a 1.51q regression
that could cause an exception when creating a plot.