- Double-clicking in the Color Picker (Image/Color/Color Picker) brings up a dialog
with sliders for selecting RGB values. (u)
- For 32-bit images, Analyze/Histogram displays a dialog that allows the user to specify the number of bins
and the range of values to be included in the histogram. (u)
- Removed the "Real Histogram Bins" option from the Edit/Options/Miscelleaneous dialog. (u)
- For 16 and 32 bit images, the column label in files created by the Histogram window "List"
option changed from "value" to "bin start". (u)
- The mode of 16-bit images is now the most frequently occuring pixel value rather than the start of the
histogram bin with the largest count. (u)
- Process/Binary/Watershed now uses the Process/Binary/Options dialog. (u)
- Fixed bugs in Process/Noise/Despeckle that caused it to fail with 8-bit stacks and to
not process pixels along the edges of 8-bit images. (u)
- Spatial calibration of images with pixelWidth=1, pixelHeight=1 and pixelDepth!=1 now works as expected. (u)
- Fixed a bug in Analyze/Analyze Particles that erased outside the ROI
if "Cancel" was selected in the "Save?" (Results) dialog. (u)
- Shanrong Zhang contributed
that open multiple image files from Varian MRI imaging systems
and EVS 900 micro-CT systems.
- Ulf Dittmer added ICO support to the
- Eric Kischell (keesh) contributed the
Grid Cycloid Arc
- Added the Image/Color/Color Picker tool, written by Gali Baler, and retired
Image/Colors. Press shift-k to activate the new color picker. (t)
- Fixed a bug that caused the dynamically updated X and Y values in plot windows to sometimes be invalid. (t)
- Dimiter Prodanov contributed the
- Jerome Mutterer contributed a
that draws the Mandelbrot set.
- Christopher Mei contributed the
Otsu Thresholding and
- The text editor's Save As command is better at choosing the initial directory. (s)
- The Roi clone() method, used by Edit/Selection/Restore Selection, now correctly
duplicates polygon and poly-line selections. (s)
- Worked around a bug that could cause some of the Image/Lookup Tables commands to fail
with some JVMs. (s)
- Fixed a bug in Image/Adjust/Canvas Size that caused it to fail with non-displayed images. (s)
- Fixed a bug that caused the macro recorder to fail with dialogs containing a single checkbox. (s)
- When using ImageJ as a library, the "Results" window can be displayed without the "ImageJ" window being open. (s)
- Added the "Use JFileChooser" option to Edit/Options/Miscelleaneous. Enabling this
option may reduce the likelihood of ImageJ crashing on OS X Panther. (r)
- Hold down the control key to create centered rectangular and oval selections. This
feature, which currently does not work on the Mac,
is based on code contributed by Richard Bonnaire. (q)
- The image size at the top of image windows is in megabytes for image >= 1024K. (q)
- The "Black Background" option in Process/Binary/Options is saved in the preferences file. (q)
- Image/Stacks/Reslice, with RGB stacks, is faster and uses less memory. (q)
- Replaced the "1/2 Size" option in File/Import/Image Sequence with a more flexible "Scale" option and
fixed a bug that caused memory sizes greater than 2GB to not display correctly. (q)
- Fixed a bug that caused run() macro functions to fail if an option keyword was repeated in the options string. (q)
Virtual Stack Opener
opens an image sequence as a "virtual" (disk-resident) stack.
- Paulo Magalhćes contributed the
Ratio Plus plugin,
which calculates the ratio between two images or stacks, as used in Fura-2 experiments.
JAR Plugin demonstrates how
a plugin can be packaged in a JAR file and installed in multiple menus.
- Kurt De Vos contributed the
Excel Writer plugin. This is
the first plugin packaged as a JAR file. It requires ImageJ 1.31p or later.
- Adam Baker contributed the
Radial Grid plugin.
macro calculates the area of a selection and compares it to the area calculated by
the Measure command.
- ImageJ can install plugins packaged in a JAR file. There is an
- Added the getBoolean() macro function. (p)
- The "List" option in Analyze/Histogram, with calibrated 8-bit images, now displays both calibrated and uncalibrated values. (p)
- A macro error is displayed when the options string in a run() call contains an invalid numeric value. (p)
- Plugins/Edit displays an error message when the user attempts to overwrite a write-protected file. (p)
- Worked around OS X/Java 1.4 bugs in Analyze/Surface Plot, Plugins/Utilities/Monitor Memory
and the freehand selection tools. (p)
- Jeff Hardin updated the QuickTime
Movie Opener and
plugins to work with Java 1.4.x on OS X.
- Joachim Walter contributed the
HyperVolume Opener plugin.
- Added an
example plugin that demonstrates
how to display a grid of numeric fields in a dialog box.
- A Java 1.4.x version of the OS X ImageJ application that may, or may not, run more
reliably on Panther
is available on the
- Kevin (Gali) Baler contributed a plugin for drawing
dotted and dashed lines.
- Added Process/Binary/Fill Holes, based on code contributed by Gabriel Landini. (o)
- Process/Binary/Options allows the user to specify the background color (black or white)
of binary images. (o)
- Daniel Tyreus rewrote the PluginClassLoader so it can read jar files
and non .class resources (images, config files, etc) from the plugins folder.
Everything except the actual class that extends PlugIn
can now be placed in a jar file anywhere in the plugins folder or immediate subfolders.
are available. (n)
- Polygon filling is now done using Java code instead of java.awt.Graphics.fillPolygon(). The new
fill routine is faster, uses less memory, and works the same way on all platforms. Since
Analyze/Measure does polygon filling, this means that measurement results are exactly the
same on all platforms. (n)
- Analyze/Analyze Particles is faster due to the new polygon filler. (n)
- Worked around several Java 1.4.1 on Mac OS X problems. (n)
- Fixed a bug that could cause ImageJ to hang when quitting on Mac OS X. (m)
- Added the Edit/Selection/Create Mask command. (m)
- Added a "Redirect To" option in Analyze/Set Measurements. (m)
- Changed the "Filled" option in Analyze/Analyze Particles to "Masks". (m)
- The Cooke Corporation released
for their SensiCam and PixelFly cameras. Plugins for Mac and Linux are under development.
- Kevin (Gali) Baler contributed the
Z Profiler plugin.
- Added the drawPlot() method to the PlotWindow class. See the
Z Profiler plugin
for an example.
- Fixed a bug, introduced in v1.31j, that caused the substring(), lastIndexOf(),
charCodeAt(), split(), makeSelection() and indexOf() macro functions to fail. (l)
- Added "Open..." and "Save..." buttons to the Process/Convolve and
Analyze/Calibrate dialog boxes. (l)
- Added new calibration function, y = a+b*ln(x-c), useful for calibrating to OD standards. (l)
- The Invert, Smooth, Sharpen, Find Edges, Add Noise
and Despeckle commands no longer attempt to process 8-bit true color images. (l)
- Plugins/Edit now opens files with upper case extensions. (l)
- Image/Stacks/Convert Images to Stack now ignores any open stacks. (l)
- Added the setZCoordinate() macro function. For an example, check out the
Z Profile Plotting Tool. (l)
- Added the addPanel() method to the GenericDialog class. (l)
- Erik Meijering has made available
a collection of plugins (Binomial, Exponential, Gamma, Gaussian, Poisson and Uniform)
for image randomization.
- Added a collection of macro plotting functions. Refer to the
macro file for examples. (k)
- Plots created using the Plot class are clipped to the frame. (j);
- Image/Adjust/Threshold auto-adjusts the threshold when it first "sees" a new image. (j)
- The mean, min, max, mode or stddev of the pixels along a line selection are
measured if the parameter is selected in Analyze/Set Measurements.
- Added the "List Values" checkbox to Edit/Options/Profile Plot Options. (j)
- Added the
Dynamic Profiler plugin.
- Walter O'Dell contributed the
DICOM Rewriter plugin for anonymizing DICOM files.
- Fixed a bug in v1.31h that caused images opened by macros to not be refreshed. (i)
- Added a "Median" options to Image/Stacks/Z Project. (h)
- File/Import/URL "remembers" the URL. (h)
- Added a "White Background" checkbox to Process/Binary/Distance Map,
Ultimate Points and Watershed. (h)
- Worked around a bug that caused the Brightness/Contrast and Threshold windows to not
display correctly with Java 1.4.1 on Mac OS X. (h)
- Added a "Selection Only" option to the File>Page Setup dialog. (h)
- Fixed a bug that caused File/Import/Image Sequence to fail to work with PGM files. (h)
- Added the
Animated Sine Wave plugin.
- Added the Edit>Selection>Convex Hull command. (g)
- Added the Edit>Selection>Fit Ellipse command. (g)
- Added a "Normalize" option to Process>Enhance Contrast. (g)
- Added the Process>Math/NaN Background command which sets non-thresholded pixels
in float images to the NaN (Not a Number) value. For float images, the "Apply" option
in Image/Adjust Threshold runs this command. (g)
- Added the setResult() and updateResults() macro functions. Refer to the
Convexity and Solidarity macro
for an example. (g)
- Audrey Karperien contributed the
Named Measurement plugin.
- Added the "Process Entire Stack" checkbox to the Image/Scale dialog box. (f)
- The commands in the Process/FFT submenu work with RGB images and
images that are not a power of 2 size. (f)
- Process/Filters/Unsharp Mask is faster and uses less memory. (f)
- Fixed a bug that caused ImageJ to crash when it was run from the
command line while in the plugins directory. (f)
- Added the Process/FFT/FD Math command, which does frequency domain auto-correlation,
cross-correlation, convolution and deconvolution. (e)
- Fixed bugs in and enhanced the commands in the Process/FFT submenu. (e)
- Fixed a bug that caused the run("Paste") macro function to not work reliably. (e)
- Gabriel Landini has made available a
collection of macros,
including Laplacian, Prewitt, Roberts and Sobel filters, and John Conway's game of life.
- Fixed a bug in File/Save As/BMP that caused it do save 8-bit images incorrectly. (d)
- Added a "32-bit Result" option to Process/Image Calculator. (d)
- The default divide-by-zero value used when dividing 32-bit (float) images is infinity. (d)
- On Mac OSX, the preferences file (IJ_Prefs.txt) is saved in [home]/Library/Preferences. (d)
- Interpolation is disabled when "One Polygon Per Line" is checked in Analyze/Surface Plot.
- Added the getResultsTable() static method and the getValue(String, int) instance method to the
ResultsTable class. (d)
- Kunito Yoshida contributed a
plugin for acquiring images using
the SensiCam long exposure Camera.
- The HandleExtraFileTypes
plugin upgraded to work with images that have text headers. (c)
- The main ImageJ window, except on the Mac, is now resizable. (c)
- The standard deviation used by Process/Noise/Add Specified Noise is saved in the preference file.
- The URL of the images in the File/Open Samples submenu is displayed by Plugins/Utilities/ImageJ Properties. (c)
- 48-bit RGB TIFFs are opened as 16-bit stacks. (c)
- Fixed a bug that caused ImageJ to hang when opening an image with a height more than about 20 time higher
than the height of the screen. (c)
- Selections can now have names. The File/Open, File/Save As Selection,
Image/Show Info, Analyze/Measure and Analyze/Tools/ROI Manager commands were
extended to support this feature. (c)
- Made several improvements to Analyze/Tools/ROI Manager, including a new "Rename" option. (c)
- Jeffrey Kuhn's
plugin is now built in as the
Image/Adjust/Canvas Size command. (c)
- Added the Process/Filters/Variance command. (c)
- Added the Process/Filters/Show Circular Masks command. (c)
- Fixed a macro image open synchronization bug on Mac OS X. A
is available. (c)
- Added the setValueUnit() method to the Calibration class. (c)
- Added the getXValues() method to the PlotWindow class. (c)
- Added the
- Fixed a bug that could cause ImageJ running on OS X to hang when quitting. (b)
- File/Import/LUT opens lookup tables in text format. (b)
- Added the Process/Binary/Watershed command. (b)
- Added "List" option to the Analyze/Show LUT widow. (b)
- Plugins that call IJ.run() are now recorded correctly. (b)
- 1.5 and 2.5 radius circular masks used by Process/Filters commands
are no longer identical to 1.0 and 2.0 radius masks. (b)
- Added the makeSelection() macro function. (b)
- The segment length and angle are displayed in the status bar as polygon
and segmented line selections are being created. (b)
- File/New settings are saved in the preferences file. (b)
- The frame rate in Image/Stacks/Animation Options can now be set as
low as 0.1 fps. (b)
- Process/Filters/Mean is much faster for large kernels. (b)
- Added the
Graphic Overlay plugin.
- Fixed a bug that caused the run("Image Sequence...", "open=...") macro function to fail
when importing DICOM images. (a)
- Fixed a bug with the getInfo() macro function that caused an exception when the
active image contained a selection. (a)
- The makeRectangle() and makeOval() macro functions delete the current selection
if the width or height argument is less than one. (a)
- Added the
IPLab Reader plugin.
- Gregory Jefferis contributed the
- Added support for the HandleExtraFileTypes plugin. (u)
- Image/Adjust/Brightness/Contrast now works with 8-bit images with Java 1.4. (u)
- Added "Label All Slices" option to Analyze/Tools/Scale Bar. (u)
- Renamed File/Save As/ROI as File/Save As/Selection and extended
it to support all selection types. (u)
- Fixed setLocation() macro function. (u)
- File/Save As/Image Sequence displays an error if the number
of digits used to generate file names is insufficient. (t)
- The "Apply" function closes the Image/Adjust/Thresold window. (t)
- Image/Duplicate preserves DICOM header information. (t)
- 16-bit to 8-bit scaling improved. (t)
- Anthony Padua and Daniel Barboria contributed the
Substack Maker plugin.
- Angelo Taibi contributed the
- Gregory Jefferis has written a
to import DM3 transmission electron microscope images.
- Replaced Process/Equalize with Process/Enhance Contrast. (s)
- File/Import/URL opens DICOMs. (s)
- Plugins/Edit and Plugins/Compile and Run are recordable. (s)
- The first <<out of memory>> message refers to
- Joachim Walter's
FFT Filter plugin
is now built in as the Process/FFT/Band-pass Filter command. (r)
- Added the addNumericField(label, default, digits, columns, units) method
to the GenericDialog class. See the Process/FFT/Band-pass Filter dialog
for an example of how it can be used. (r)
- The path keyword recorded by file open and save dialogs is now
the first word of the dialog title instead of "path". (r)
- Plugins/Utilities/ImageJ Properties works when ImageJ is running as an applet. (r)
- Sonia Choubrac et al. contributed the
Renal Function and Urinary Excretion plugins.
- Julio Cabrera contributed a
texture analysis plugin.
- Dimiter Prodanov contributed the
- Fixed a bug that caused incorrect histograms of non-rectangular selections that extended beyound
the image boundary. (q)
- Plot window coordinates are displayed with more precision and the "List", "Copy" and "Save"
options use the decimal places specified in Analyze/Set Measurements. (q)
- The y-value interactively displayed in plot windows is now the
graph y-value instead of the cursor y-value. (q)
- Changing "Decimal Places" in Analyze/Set Measurements no longer opens
an empty "Results" window. (q)
- Image/Color/RGB Split (Merge) now maintain spatial calibration. (q)
- Plugins/Utilities/Commands renamed List Commands and
Plugins/Utilities/Shortcuts renamed List Shortcuts. (q)
- Image/Stacks/Z Project works with RGB stacks. (q)
- Fixed Analyze/Tools/Scale Bar Undo bug. (q)
- Pasted rectangular selections can be dragged beyond the image edge. (q)
- The ImagePlus getOriginalFileInfo() method works with stacks opened using
File/Import/Image Sequence. (q)
- Updated the example servlet
to use Sun's JPEGImageEncoder.
- Jarek Sacha created a
packaged version ImageJ 1.30q
that can easily be installed on the Sharp Zaurus PDA.
- Daniel Sage et al. of the
Swiss Federal Institute of Technology Lausanne
fractional splines and wavelets plugins.
- Christopher Philip Mauer contributed the
Kalman Filter plugin, which
removes noise from time lapse image streams.
- The ImageProcessor putPixel() method now clips values outside the range 0-255
(8 bit images) and 0-65535 (16 bit images). (p)
- ImageJ now executes macros passed on the command line. For example,
java -cp ij.jar ij.ImageJ script.txt
causes ImageJ to run the macro script.txt on startup. (p)
- The ReturnStatements.txt
macro demonstrates the use of return statements to return arrays and strings. (p)
macro demonstrates how to retrieve the path. (p)
- The message "1 macro installed" no longer displayed when opening text files. (p)
- Kurt DE Vos contributed the
Image Viewer plugin.
- Jerome Mutterer contributed the
Guess RAW plugin.
- Improved macro run-time error checking. (o)
- Added the split() macro function. (o)
- Copying the contents of text windows such as "Results" to the clipboard is now faster and more reliable. (o)
- Analyze/Tools/ROI Manager and Edit/Options/Fonts are now listed in the Window menu. (o)
- Walter O'Dell contributed the
Contour Plotter plugin.
- Added Process/FFT submenu. (n)
- Added the indexOf(s1,s2,fromIndex) macro function. (n)
- Image/Type/8-bit Color is now always check if the active image's LUT has any color entries. (n)
- Fixed a bug in File/Import/Image Sequence that caused an exception if ImageJ was not able to open any
images in the specified folder. (n)
- Anthony Padua contributed the
Query DICOM Header plugin.
- Pierre Bourdoncle and Christophe Chamot contributed the
- File/Import/Image Sequence saves DICOM and FITS header information in
the stack so Image/Show Info can display header information for each image. (m)
- Added the File/Save As/Text command for saving the contents of TextWindows such as
"Log" and "Info for XXX". (m)
- The selectWindow() macro function and the File/Close command now work with
non-image windows. (m)
- Added the getInfo() macro function. (m)
- Moved the Select All, Select None and Restore Selection
commands to the new Edit/Selection submenu. (m)
- Added the Edit/Selection/Fit Spline command, which is based on code contributed by
Eric Kischell and John Bradley (author of XV). (m)
- Added BMP option to File/Save As/Image Sequence. (m)
- File/Import/Image Sequence no longer display "Unable to open"
messages for files with names starting with a period. (m)
- Image/Stacks/Z project now carries over calibration to the projection image. (m)
- Tony Parker created a
that extends and improves the Stacks/3D Project command.
- Fixed a bug that caused the setPasteMode("Multiply") macro function to fail. There is a test case at
- Rectangular, oval, polygon, straight line, segmented line and angle selections
can now be edited by dragging "handles". The cursor changes to a hand when
the mouse is over a handle. (l)
- Tool macro options can be set by double-clicking on the tool icon. For examples, see
- Tool macros now draw using the current foreground color. (l)
- Patrick Pirrotte & Jerome Mutterer contributed the
HyperVolume Browser plugin.
- Added support for tool macros. For examples, see
and CircularSelectionTool.txt. (k)
- Added the getSelectionCoordinates() macro function and removed the nCoordinates function and the xCoordinates
and yCoordinates built in arrays. See
for examples. (k)
- The "Auto" function in Image/Adjust/Threshold now works with 16-bit images. (j)
- Fixed a bug in Analyze/Analyze Particles that could cause invalid results when
working with a selection. As a result of the fix, particles are now clipped at the selection boundary. (j)
- Fixed a bug in The ROI Manager that could cause the "Measure" function to not work correctly
when measuring a single slice in a stack. (j)
- Added the getLut() and setLut() macro functions. See
for examples. (j)
- Eric Kischell contributed the
Joel Time Stamper
plugin which adds time annotation to images opened from a list.
- Patrick Pirrotte & Jerome Mutterer contributed the
plugin which provides fast access to LUT functions and a LUT editor.
- When using the text tool, alt-m or alt-u displays the micron symbol and alt-shift-a displays the Anstrom symbol.
- Enter "A" as the unit of length in Analyze/Set Scale or Image/Properties and
it will be converted to the Angstrom symbol. Enter "um" and it will be converted to "µm".
- Added "Open Images at 100%" option to Edit/Options/Miscellaneous. (i)
- Added "Hide Text" option to Analyze/Tools/Scale Bar. (i)
- The "Auto" option in Image/Adjust/Threshold works with 16-bit images. (i)
- Added getBoundingRect(), indexOf(), lastIndexOf(), substring(),
fromCharCode() and charCodeAt() functions to the macro language. (i)
- Analyze/Histogram no longer ignores the "Limit to Threshold" measurement option. (h)
- File/New uses a progress bar when creating stacks. (h)
- "Out of memory" errors now displayed in "Log" window. (h)
- Added getHistogram(), getLine() and getVoxelSize() functions to the macro language. (h)
- Moved Plugins/Record to Plugins/Macros/Record. (h)
- PixelSmart released an ImageJ plugin for their
line of video frame grabbers cards (Windows only).
- Added the Plugins/Macros/Install Macros command. (g)
- Macros in the file ImageJ/macros/StartupMacros.txt are automatically installed
in the Plugins->Macros submenu at startup. (g)
- Added the File/Save As/BMP command. (g)
- ImageJ now opens 32-bit (BGR0) BMP images. (g)
- The "Limit to Threshold" option in Analyze/Set Measurements now works with
32-bit floating-point images. (g)
- Pixels with a value of Float.NaN (0f/0f), Float.POSITIVE_INFINITY (1f/0f)
or Float.NEGATIVE_INFINITY (-1f/0f) are ignored when making measurements on 32-bit images. (g)
- Added support for macro keyboard shortcuts. For examples, see
- User-defined macro arrays are now typeless. For an example, see
- Added the getCursorLoc(x,y,z,flags), getImageID(), selectImage(id), isOpen(id),
isActive(id) and atan(angle) macro functions. (e)
- Added the Angle tool. (d)
- Process/Noise/Add Noise and Process/Noise/Add Specified Noise work with 16 bit images. (d)
- Process/Noise/Despeckle works with 16 and 32 bit images. (d)
- Displays an error if the "Width", "Height" and "Offset" fields in the File/Import/Raw dialog are not
consistant with the file size. (d)
- ImageJ opens 3D FITS data sets and opens FITS files more reliably thanks to code contributed by Alex Cabello. (c)
- Fixed a bug that caused the "Global" option in Analyze/Set Scale and
Analyze/Calibrate to not work as expected. (c)
- Added the newArray(size), getProfile() and setLocation(x,y)
macro functions. (c)
- Added the Image/Lookup Tables/Apply LUT command. (c)
- Added "Flip Vertically" and "Rotate 90 Degrees" options to the Image/Stacks/Reslice command. (c)
- The offset field in the File/Import/Raw dialog can now be greater than 2,147,483,648
- Added the changeFont() and setLineWidth() methods to the PlotWindow class. The
Example Plot plugin
demonstrates how to use these methods. (c)
- Fixed a bug in Image/Adjust/Threshold that sometimes caused incorrect
display and plotting of the threshold levels of 16 and 32 bit images. (c)
- The "Set" option in Image/Adjust/Threshold, when used with 32-bit images, is now
recorded correctly. (c)
- Processing of entire stacks in Image/Scale is now optional. (b)
- Fixed a bug, introduced in 1.29d, that caused Image/Scale to work incorrectly if the
Y Scale was less than one and "Create New Window" was not checked. (b)
- Fixed a bug that caused "wand error" messages when using Analyze/Analyze Particles with a
non-rectangular selection and a lower threshold of zero. (b)
- Added the IJ.showProgress(currentIndex,lastIndex) method. (b)
- Revert now works with FITS images. (b)
- 32-bit DICOMS now open correctly. (b)
- Fixed a bug that caused the "Delete" function in the ROI Manager to sometimes fail
if more than one ROI was selected. (b)
- Added the selectionType(), bitDepth(), setColor(value) and exit()
functions to the macro language. (a)
- Fixed a bug in Image/Scale that could cause the source image to have
incorrect spatial calibration. (a)
- Worked around a printing bug with Java 1.3.1 on Windows. (x)
- Added an example
that shows how to write command line utilities that use ij.jar as a library. (v)
- Added an example
that shows how to calibrate using an OD step tablet.
- The IJ.run() methods now work when the ImageJ window is not open. (u)
- The Image/Rotate/90 Degrees commands now preserve calibartion settings. (u)
- Image/Stacks/3D Project now works with RGB stacks and has an option to interpolate in the Z-dimension. (t)
- Image/Stacks/Reslice now works with RGB stacks. (t)
- The RGB Stack Splitter and RGB Stack Merge plugins are now built into ImageJ as the
Image/Color/RGB Split and Image/Color/RGB Merge commands. (t)
- Added the Image/Color submenu and moved the Image/Stacks/Convert Stack
to RGB command to it. (t)
- Added "Outline Lanes" and "Invert Peaks" options to Analyze/Gels/Gel Analyzer Options,
and options are now saved in the preferences file. (s)
- Added the Image/Adjust/Window/Level and Image/Adjust/Color Balance commands. (r)
- Added sliders to Image/Adjust/Brightness/Contrast for adjusting the display range min and max. (q)
- Eric Kischell's
Drag And Drop
plugin is now built into ImageJ, allowing images,
ROIs, LUTs, and text files to be opened by dragging and dropping them on the main ImageJ window.
This plugin appears to only work on Windows but Mac users can open files by dragging
and dropping on the ImageJ icon. (o)
- Fixed a bug that could cause the Image/Adjust/Brightness/Contrast tool to fail
when used with RGB stacks. (o)
- The length() macro function was renamed lengthOf(). (o)
- Walter O'Dell contributed the
- The FeretsDiameter,
macros demonstrate ROI coordinate caculations and animation. (n)
- Added a "Feret's Diameter" option to Analyze/Set Measurements. (n)
- The InvertImage
macros demonstrate pixel-by-pixel processing. (h)
- Thanks to Alexei Stapinski, ImageJ can now open 16 bit ASCII PGM files. (m)
- Anthony Padua updated the
plugin and created a spreadsheet that generates macros that use it.
- Added a "32-bit Unsigned" type to File/Import/Raw. (l)
- The text editor File/Save command reverts to File/Save As if the
text has not been previously saved. (l)
- Fixed a bug that would sometimes prevent the "Log" window from closing. (l)
- Added the Image/Stacks/Set Slice command. (k)
- The Edit/Paste Control tool can be recorded. (k)
- Fixed a bug with the way Process/Binary/Threshold supports undo. (k)
- Process/Binary/Distance Map and Ultimate Points
work with stacks. (k)
- On JDK 1.4, the Compile and Run command suppresses the "javac.Main deprecated" warning. (k)
- Fixed a bug that sometimes caused duplicate paths when recording File/Open. (k)
- Erik Meijering finished a new package,
FeatureJ, containing plugins for the
extraction of features such as Gaussian-scaled derivatives, Canny edges,
Laplacian zero-crossings, eigenvalues of the Hessian, global statistics,
and eigenvalues of the structure tensor, from up to 3D gray-scale image
- Rick Turner has added some filter plugins (Prewitt, Roberts, Sobel, etc.) to his
- Michael Umorin contributed the
- The Process/Filters/Convolve and Analyze/Calibrate commands are now recordable. (j)
- Fixed a bug that could cause an exception when removing a slice from a two-slice stack
and adding another. (j)
- Added a "Record Starts" option to Analyze/Analyze Particles. The
demonstrates how to use this feature. (i)
- Added the Macros/Install Macros command to the text editor. The updated Polygon and MacroSet macros
contain installable macros. (i)
- Added a "Circularity" option to Analyze/Set Measurements. (i)
- Fixed a bug that sometimes made it impossible to activate an Image from the Window menu
if the start of the image name was the same as the name of another image. (i)
- The Polygon macro
demonstrates user-defined functions and control of screen updates. (h)
- The text tool uses a larger default font size for images magnified less than 100%. (h)
- Added a "Circularity" option to Analyze/Set Measurements. (h)
- Updated the Plasma benchmark.
- A few example macros are now available at
- Fixed minor labeling problems in Analyze/Gels. (f)
- Image/Rotate/Arbitrarily and Image/Stacks/Make Montage work better with signed 16 bit images. (e)
- 16 and 32 bit stacks with blank first slices now display correctly when first opened. (e)
- Fixed a bug in Analyze/Gels (introduced in v1.28) that caused inverted peaks and disabled OD calibration. (d)
- Fixed a bug in Image/Scale that caused the image to be slightly shifted up and to the left. (d)
- Analyze/Tools/XY Coordinates now saves in tab-delimited format. (d)
- Kavagiou Zaharoula contributed a
that combines images to create a mosaic.
- Fixed command recording problems in Image/Stacks/Reslice and
Edit/Options/Profile Plot Options. (b)
- Added a "Create Macro" option to Plugins/Record. (b)
- Added an option to create a sample macro in Plugins/New. (b)
- Worked around text window cut and paste problems on Mac OS 10.2. (b)
- The "Convert to 8-bit Grayscale" option in File/Import/Image Sequence normalizes 8-bit images
with color LUTs or with nonstandard grayscale LUTs. (a)
- Worked around a problem with truncated text on Mac OS 10.2. (a)
- Several Mac OS X 10.2 related problems are fixed in the latest OS X version of ImageJ.
- Audrey Karperien contributed a
plugin that encloses an image in a convex hull then calculates circularity and roundness and
plugin that records data for fractal dimension and lacunarity using a box counting algorithm.
- Added the "Antialiased Text" option to Edit/Options/Miscellaneous (requires Java 2). (u)
- Added the "Interpolate Images <100%" option to Edit/Options/Miscellaneous (requires Java 2).
This option may improve the display quality of large images magnified less than 100% but images will take longer to display. (u)
- Added the "Smooth" option to Analyze/Surface Plot. (t)
- Updated Image/Stacks/Reslice. (s)
- Fixed a bug in Analyze/Surface Plot that could result in incorrect plots of 32-bit float
images with color LUTs. (s)
- Image/Stacks/Convert Images to Stack, Convert Stack to Images
and Make Montage now work correctly with calibrated images. (r)
- Daniel Marsh created the
- Marcus Lamer created the
plugin for generating intermediate images between two reference images.
- Jarek Sacha created the
a package of plugins for reading and writing 3D images in MetaImage and VTK formats.
- Added the "One Polygon per Line" option to Analyze/Surface Plot. (p)
- The Analyze/Gels commands work with vertical lanes. (p)
- Hemerson Pistori and Eduardo Rocha Costa contributed the
Hough Transform for Circles plugin.
- Bill O'Connell updated his
Oval Profile Plot
and Color Comparison
- Gary Chinga contributed a
that uses Gaussian filtering to decompose an image surface into waveness and roughness.
- Added the Analyze/Tools/Calibration Bar command, written by Bob Dougherty and Daniel Marsh. (o)
- On Mac OS X, the layout of the threshold and brightness/contrast tools is better due to the use
Daniel Marsh's new TrimmedButton class. (o)
- Gary Chinga and Oeyvind Eriksen contributed a
that performs erosion, dilation, opening and closing of binary images.
- Improved Analyze/Tools/Scale Bar. (n)
- Analyze/Analyze Particles works with thresholded 16-bit and 32-bit images. (n)
- The wand tool works with 16-bit and 32-bit images. (n)
- File/Revert works with DICOM and BMP images. (n)
- Closing the "Log" windows exits debugging mode. (n)
- With stacks, the Z-coordinate of the cursor is displayed in the status bar. (n)
- The pixel value in the status bar is updated when using "<" and ">" to
step through a stack. (n)
- Yannick Krempp and Jerome Mutterer contributed
a plugin that opens files produced by Zeiss LSM 510 confocal microscopes.
- Daniel Marsh has written the
- ImageJ is now compiled without debugging information, which reduces the size of ij.jar from 615k to 484k. (m)
- The ImageJ source now includes an
Ant build file ("build.xml") that can generate ij.jar, src.zip and
the API documentation.
- Daniel Marsh has written
a plugin that opens uncompressed 8-bit and 24-bit AVI movies.
- Adrian Daerr has written
a plugin and JNI library for full-frame-rate capture using Scion frame grabber cards.
- Added the File/Save As/AVI command. (l)
- The ImageProcessor convertToShort() and convertToFloat() methods now work with RGB images. (l)
- Analyze/Analyze Particles displays a summary that includes total area and area fraction if "Display Results" is not checked
in the dialog and "Clear Results Table" is. (i)
- The animation speed specified in Image/Stacks/Animation Options is saved in the preferences file (IJ_Prefs.txt). (l)
- Gary Chinga contributed the Shape Descriptors plugin.
- Analyze/Surface Plot draws axis with labels. (k)
- Commands in the Process/Filters submenu work with non-rectangular selections. (k)
- The "OK" button is displayed to the left of the "Cancel" button in most dialogs except on the Macintosh. (k)
- Right-clicking finalizes polygon and polyline selections. (k)
- Fixed a bug that caused 3x3 convolution filtes to not work correctly on 16-bit images. (k)
- Analyze/Clear Results no longer displays an empty "Results" window. (k)
- Added the Analyze/Surface Plot command, which was created by Daniel Marsh. (j)
- The "Limit to Threshold" option in Analyze/Set Measurements works with 16-bit images. (j)
- Commands in the Process/Filters submenu work with rectangular selections. (j)
- Joachim Walter contributed the Sync Measure 3D plugin.
- Karl Schmidt contributed the MRI Analysis Calculator
and Image Layering Toolbox plugins.
- Paul Baggethun contributed the Microscope Scale plugin
that spatially calibrates images using hard-coded magnifications and length units.
- Fixed a bug, introduced in 1.28g, that prevented user plugins from being loaded from ij.jar when ImageJ is running as an applet. (i)
- Added Analyze/Tools/Scale Bar. (h)
- In the Analyze/Set Scale and Image/Properties dialogs, "um" is automatically converted to "µm". (h)
- Added the Help/Online Docs command. (h)
- Plugins/Utilities/Memory Monitor now opens centered on the screen. (h)
- There is a new About Box (Help/About ImageJ). (h)
- Perimeter measurements of rectangular and oval selections no longer ignore spatial calibration. (g)
- When using Java 2, saving in JPEG format is about 10 times faster. (g)
- Fixed a bug that could cause File/Import> and other submenus to not appear when running ImageJ in countries other than the USA. (g)
- Image/Adjust/Threshold "remembers" the thresholding mode during an ImageJ session. (g)
- Bob Dougherty has written the
Live Histogram plugin
that continuously generates histograms as you step through a stack or move a selection.
- QImaging released an ImageJ plugin for their Firewire cameras.
- Joachim Walter contributed an over/under thresholding mode for Image/Adjust/Threshold. (f)
- Improved the Gel Analyzer (Analyze/Gels). (f)
- Process/Binary/Threshold uses any threshold settings defined by Image/Adjust/Threshold and also works with 16 and 32 bit stacks. (f)
- The "Apply" option in Image/Adjust/Threshold works with 16 and 32 bit stacks and is recordable. (f)
- The "Reset" option in Image/Adjust/Brightness/Contrast is recordable. (f)
- Commands that process 16 and 32 bit stacks now reset the display range. (f)
- Added getInstance(), getROIs() and getList() methods to the RoiManager class. (f)
- Added methods to the ImageProcessor class that get and set pixels using an int array, making it easier to write plugins that process both grayscale and RGB images. The
plugins demonstrate how to use these methods.
- Added the convolve(float kernel, int width, int height) method to the ImageProcessor class. (e)
- Process/Binary/Threshold now uses threshold levels defined by the Image/Adjust/Threshold tool. (e)
- Updated and expanded (from 72 to 85 plugins) the Plugin Collection.
- Tony parker has posted two
One preloads a couple of images, runs the benchmark, starts a cine, and has a customized Plugins menu. The other sets up some buttons that load images.
- Added "Add & Draw" and "Select All" buttons to the ROI manager. (d)
- Improved text quality on Mac OS X. (d)
- Tony Parker has added two new plugins to his collection of 12 plugins for medical image processing.
- The applet version of ImageJ now runs user plugins added to ij.jar and listed in IJ_Props.txt. (c)
- Gary Chinga contributed a plugin that calculates surface roughness statistics.
- Eric Kischell contributed the Drag And Drop plugin.
- Added support for RGB stack to 8-bit color stack conversions. (b)
- ROIs saved to a file are no longer limited to 5000 bytes. (b)
- Fixed a bug, introduced in 1.27, that caused pasting of non-rectangular selections to sometime fail. (b)
- Fixed a bug that caused pasted image selections to not be initially displayed. (b)
- Fixed a bug in Image/Adjust/Threshold that caused an exception with 16 or 32 bit images with non-rectangular ROIs. (b)
- Paul Baggethun contributed the Radial profile Plot plugin.
- Mark Barclay and Grant Harris contributed a UML class diagram of ImageJ as a
- Added the "Increment" field to File/Import/Image Sequence. (a)
- Added "Plot Width" and "Plot Height" fields to Edit/Options/Profile Plot Options. (a)
- Increased the font size used by Plugins/Edit when running Mac OS X. (a)
- Process/Filters/Gaussian Blur now works with density calibrated images. (a)
- Improved the error checking in File/Import/Text Image. (z)
- The Applet version of ImageJ now restarts as expected. (x)
- File/Open opens 16-bit binary PGM files. (x)
- The Java 2D Demo plugin uses Java 2D to draw 3D text on an image.
- Bob Dougherty has written a plugin to
open and play QuickTime movies and to grab frames into a stack.
- There is a new Mac OS X release that opens images dragged onto the ImageJ icon as long as ImageJ is already running.
- Added the "Invert Y Coordinates" option to Analyze/Set Measurements. (x)
- Bob Dougherty has written a plugin
to divide a stack of RGB images from an NTSC DV camera into separate 32 bit red, green and blue stacks.
- Eric Kischell added a "Create New Window" option to the MRI t2 plugin.
- Bob Dougherty has written a plugin
to derive surface orientation from a topographical image acquired with a profilometer.
- Tony Parker has written a plugin
that displays orthoganal views (axial, coronal and sagital) of a stack.
- Fixed rounding problems with ramps and RGB histograms. (v)
- Contrast/brightness settings are saved in the TIFF header. (u)
- Angle measurements take the pixel aspect ratio into account. (u)
- Hold down the shift key to constain line selections to 0 and 90 degrees. (t)
- Fixed a bug that would sometimes cause ellipse fitting to fail with spatially calibrated images. (t)
- Added a setColor() method to the PlotWindow class and updated the Example Plot plugin. (t)
- Updated the Windows distribution to JRE 1.3.1_03, which fixes a printing problem.
- ImageJ now opens big-endian DICOM files. (s)
- Histograms and plots are displayed as 8-bit images instead of RGB images. (s)
- Added drawLine, drawRect and getFontMetrics methods to the ImageProcessor class. (s)
- Worked around text bugs in Microsoft Java. (s)
- For 16 and 32-bit images, values displayed by the Histogram window "List" and "Copy" functions no longer have (bin width)/2 added. (q)
- The ImagePlus.show() and Roi.getMask() methods no longer require that the "ImageJ" window be open. (q)
- Fixed a bug in Image/Rename that caused the magnification to not be displayed in the title bar. (q)
- Mike Miller has written a plugin that helps segment images.
- The histogram window "List" and "Copy" options now use calibrated values. (p)
- Fixed a bug that caused 16-bit signed DICOM images with no pixels values less than zero to be displayed incorrectly. (o)
- The text tool works, more or less, on Mac OS X. (o)
- Plugin writers can use IJ.log(String) to display debugging information in a text window. (o)
- "Debug Mode" information enabled in Edit/Options/Miscellaneous is displayed in a separate "Log" window. (o)
- "Results" window column widths are calculated for each of the first 10 measurements. (n)
- The "Set" option in Image/Adjust/Threshold Image/Adjust/Contrast/Brightness works with calibrated pixel values. (m)
- Column widths are no longer reset after using Analyze/Clear Results. (l)
- Holding down the shift key prevents the window from enlarging when zooming in. (k)
- The Image Calculator Plus plugin adds, subtracts, multiplies or divides two images or stacks using scale and offset values.
- Joachim Walter contributed the Sync Windows plugin, an enhanced version of Patrick Kelly's SyncWindows_ plugin.
- Bill O'Connell contributed the Color Comparison plugin that uses color to compare grayscale images.
- Ryan Raz contributed the Gif Stack Writer plugin for saving stacks as animated gifs.
- The Thumbnail Maker plugin creates thumbnails and provides an example of how to use ImageJ on "headless" (no display) servers.
- Non-rectangular ROIs that extend beyond the image boundary are now handled correctly. A test case is available. (h)
- Fixed keyboard focus and text window size bugs associated with Mac OS X Java 1.3.1 Update 1. (h)
- File/Import/Image Sequence now sets the stack width and height to the width and height of the first selected image. (f)
- Process/Binary/Set Interations now works with stacks. (f)
- Jarek Sacha has written plugins that use JAI to open images.
- Bill O'Connell contributed the Oval Profile Plot plugin.
- The wand tool is now recordable. (e)
- Fixed several problems with Image/Properties and Image/Stacks/Reslice. (e)
- The Windows and Linux distributions now include Sun's JRE 1.3.1 Java 2 runtime environment.
- The "Process Stack?" dialog is no longer displayed when editing stacks using the keyboard shortcuts for Edit/Fill (F) and Edit/Clear (backspace). (d)
- Added the 'Hide "Process Stack?" Dialog' checkbox to Edit/Options/Miscellaneous. (d)
- Fixed a bug that caused BMP files with a gap between the header and pixel data to open incorrectly. (d)
- Joachim Walter contributed the Stack Normalizer plugin.
- The File/Import/Image Sequence dialog now allows the user to enter the number of images, the starting image, and a string used to filter by file name. (c)
- Image/Properties now does automatic unit conversions. (c)
- Added the getLine(int) method to the TextPanel class. (c)
- Worked around a bug on Linux where the "Save Changes?" and "Process Stack?" dialog boxes were sometimes too small. (b)
- On the Macintosh, dialog boxes are now fixed size without a "grow" region in the lower right hand corner. (a)
V 1.26, 17-January-2002
- Clicking on "List" in Histogram and Plot windows opens a separate text window instead of overwriting the "Results" window. (r)
- Fixed a bug that could cause problems when importing 16 bit signed stacks. (q)
- File/Import/Raw now always adds 32,768 to imported 16 bit signed images. It also adds a calibration function to the image so that he original signed values are correctly displayed. (q)
- Added the Image/Properties dialog, which allows stack slice spacing and frame rate to be set. (q)
- Stack slice spacing and frame rate are now saved in the TIFF header. (q)
- Image/Rotate/Flip Vertically is up to 10 times faster. (p)
- The Voxel Counter plugin counts the number of thresholded voxels in a stack.
- The Stack Inserter plugin inserts a stack (or image) into another stack.
- Added an example that shows how to use Java packages for plugin utility classes.
- The Twelve Bit Expander plugin unpacks 12-bit images.
- Tony Parker has written a plugin
that opens interfile format nuclear medicine image sets. He also makes available 92 lookup tables from the NucMed_Image program.
- Worked around a Mac OS 8/9 memory leak/crashing bug that was uncovered in v1.26n. (o)
- Image animation (e.g. Image/Run/Run Benchmark) is now faster when using JDK 1.3. (n)
- Thanks to Greg Joss, Analyze/Histogram now has a log scaling option. (n)
- Dialog boxes on the Macintosh no longer have extra space at the top. (n)
- Fixed a bug that caused an exception with Analyze/Analyze Particles when no image was open. (n)
- Submitted a bug report and test case to Apple regarding the poor performance of ImageJ on Mac OS X.
- Updated the Plasma plugin/benchmark.
- The RGB Stack Merge,
RGB Stack Splitter and
HSB Stack Splitter
plugins are now faster.
- Eugene Tkachenko contributed a plugin that merges up to four 8-bit stacks into one RGB stack.
- Amrit Aneja contributed a plugin that copies/pastes images to the system clipboard (requires JDK 1.4).
- Thanks to code contributed by Heinz Klar, the Median filter is much faster and the Median, Minimum, and Maximum filters work with images outside the range 0-255 and with non-integer radii. (k)
- Added the Process/Filters/Show Circular Masks command that uses a stack to display one hundred of the masks used by the Median, Minimum, Maximum and Mean filters. (k)
- Thanks to code contributed by Jason Orendorff, the number of zoom tool magnification levels increases from 11 to 21. (k)
- Jim Ekstrom is using ImageJ with his
"Ugly Bug" contest.
- The Path Writer plugin saves ROIs as a list of evenly spaced points.
- Added constructors to the FloatProcessor that accept int and double arrays. (j)
- Image/Rotate/Arbitrarily now now does 180 degree rotations correcly. (j)
- Nick Linnenbrugger contributed the FFTJ and DeconvolutionJ plugins.
- Kas Thomas contributed the Color Picker plugin.
- Added cyan, magenta and yellow LUTs to the Image/Lookup Tables submenu. (i)
- Tool changes are now recordable. (i)
- With single images, Analyze/Analyze Particles now displays the particle count and threshold levels when "Show Results" is not checked. With stacks, it always displays the particle count for each slice. (h)
- Daniel Sage and Michael Unser of the
Swiss Federal Institute of Technology Lausanne
have written a
describes how they use ImageJ to help teach image processing.
- Added Cut, Copy, Paste and Print commands to Plugins/Edit. (g)
- Fixed an OS X image window closing bug. (f)
- Line profile plots are now generated using bilinear interpolation. (f)
- The RGB Stack Browser plugin by Kunito Yoshida allows the user to browse each channel of an RGB stack.
- The ROI Importer plugin creates a freehand ROI from a text file list of coordinates.
- Fixed a bug in v1.26d that caused null pointer exceptions when processing byte images. (e)
- Added an "Vertical Profile" checkbox to Edit/Options/Profile Plot Options. (d)
- Added support for DICOM MONOCHROME1 Photometric Interpretation. (d)
- Most commands process stacks much faster. Edit/Invert, for example, inverts a 256x256x256x8-bit stack 13 times faster! (c)
- Image/Stacks/Plot Z-axis Profile now works with the "Limit to Threshold" option in Analyze/Set Measurements. (b)
- Newly opened image windows are less likely to extend off the bottom of the screen. (b)
- The state of "Scale When Converting" in Edit/Options/Miscellaneous is no longer saved to the preferences file. (b)
- The "Draw" and "Fill" options in Analyze/Tools/ROI Manager are now undoable. (b)
- Plugins/Compile and Run now uses the -deprecation option. (a)
- File/Save As/XY Coordinates now saves absolute coordinates instead of coordinates relative to the selection's bounding rectangle. (a)
- Plugins/Utilities/Commands is now faster. (a)
Complete Release Notes