1.53t 24 August 2022
- Thanks to Michael Schmid, the Analyze>Tools>Analyze Line Graph
command is greatly enhanced:
- Works on all image types.
- Spatial calibration is read correctly.
- Reads values for each x value in pixels.
- Without calibration, the values are pixel coordinates, not pixel coordinates + 0.5.
- Tries to follow the curves, even if curves cross each other.
- Plots (and lists) different curves as different data sets.
- Honors non-rectangular selections instead of deleting them.
- Produces somewhat usable output even without a selection or any editing.
- Thanks to Thomas Laurent, the String.format() macro function now
accepts a variable number of numeric arguments.
- Thanks to Stein Rorvik, the Image>Stacks>Tools>Reduce
command produces a virtual stack if the source is a virtual stack
created using File>Import>Image Sequence or
File>Import>Stack from List.
- Thanks to Nicolas De Francesco, the Image>Color>Invert LUTs
command (used by the "Channels" tool) works with non-linear LUTs.
- Thanks to Volko Straub, the Image>Stacks>Z Project
command ignores NaNs when doing "Average" projection of
32-bit stacks.
- Thanks to 'Danielle_Z', ImageJ now opens compressed BMP images.
- Thanks to Philippe Carl, the ROI Manager's "Labels"
checkbox is no longer enabled on Windows when clicking on
"Show All" and ROIs are now automatically updated in the ROI Manager
after being modified by holding down the shift or alt key.
- Thanks to Dennis Chang and Michael Schmid, added the is("FFT")
macro function.
- Thanks to 'Leonicolash' and Volker Backer, fixed a bug that
caused the Table.sort() macro function to fail after
using saveAs("Results", path).
- Thanks to Daniel Leswasserman, fixed a bug that sometimes caused
the "Dir:" field of the File>Import>Image Sequence dialog
to be too wide.
- Thanks to Michael Schmid, fixed a bug that caused the
Roi.getImageID() method to throw a NullPointerException.
- Fixed a bug that caused sample images to not open
on Windows 10 with Java 1.8.0_172.
- Thanks to Christophe Leterrier, fixed a bug that caused
32-bit to 16-bit conversions of multichannel images to not
work as expected.
- Thanks to Stein Rorvik, fixed a bug that caused the
File>Import>Stack From List command to not
preserve EXIF data.
- Thanks to Stein Rorvik, fixed several bugs related to scaling of
stacks with overlays.
- Thanks to Fred Damen, fixed a 1.52u regression that caused
getStatistics().mean values of single point selections
to be incorrect.
- Thanks to Mark Hiner, fixed a 1.53h regression that sometimes
caused line selection bounds to be too large.
1.53s 19 May 2022
- Thanks to Stein Rorvik, added the
Edit>Selection>Translate command, the ROI Manager Scale and
Rotate commands, and the RoiManager.scale(), RoiManager.rotate(),
RoiManager.translate(), RoiManager.selectByName() and RoiManager.getIndex()
macro functions.
- Thanks to Fred Damen, added the Image>HyperStacks>Make Subset
command, an alias for the Image>Stacks>Tools>Make Substack
command.
- Thanks to Fred Damen, GenericDialog sliders are mouse wheel controllable
and TextFields on Linux are not as tall.
- Thanks to Wilhelm Burger, the ClassChecker no longer
deletes files and only runs when the Compile and Run
command is used.
- Thanks to Stein Rorvik, added the Dialog.addImageChoice(label,default)
macro function.
- Thanks to Michael Schmid, fixed several plot legand issues
(example).
- Thanks to Laurent Thomas, units of imported tiffs are
converted to microns if the pixel width is Thanks to Lance Davidson, ImageJ now correctly opens CSV
files that start with a 0xFEFF character (zero width no-break space).
- Thanks to Tiago Ferreira, fixed a bug that caused commands
and keyboard shortcuts installed by StartupMacros.txt in the
Plugins>Macros menu to be deleted when a macro tool
was added to the toolbar.
- Thanks to 'DentedDuck', fixed a bug that caused the
Image>Transform>Rotate command to increase the image
width or height by one pixel if the angle was 0 or 90 degrees
and "Enlage image" was checked.
- Thanks to Norbert Vischer, fixed a bug that caused an
exception to occur when duplicating a stack and the "Range:"
field was empty.
- Thanks to Fred Damen, fixed a bug that caused the
Image>Stacks>Tools>Make Substack command
to not work correctly with stacks with nSlices=1 and
nFrames>1.
- Thanks to Michael Schmid, fixed a bug that caused point
selection bounds to be too wide and tall by 1 pixel
(example).
- Thanks to Stein Rorvik, fixed a bug that caused the
toString(number,decimalPlaces) macro function to not work
as expected.
- Thanks to Ellie Cho and 'Research_Associate', fixed a 1.53h
regression that caused ROIs to not be drawn on images
displayed using setBatchMode("show").
1.53r 21 April 2022
- Added a "Help" button to the Channels dialog.
- The Image>Type>RGB Stack command converts
multi-channel composite images into RGB stacks
(example).
- Set the "ClipWhenSumming" image property "true" and the
Image>Stacks>Z Project command will clip at 255
when summing RGB stacks
(example).
- Added the Image>Color>Invert LUTs command.
- Thanks to Bram van den Broek, restored the "Don't reset range"
option to the Threshold dialog.
- Thanks to Alan Brooks, the "Fill with background color"
option of the Image>Transform>Rotate command
is now available with 16 and 32 bit images.
- Thanks to Philippe Carl, press shift+alt+n to create a
text window with "Run" and "Install" buttons, and a language
drop down menu.
- Thanks to Stein Rorvik, added the ImageJ.getStatusBarText() method.
- Thanks to Wilhelm Burger, added versions of the ImageProcessor
getColumn() and putColumn() methods that accept float[] arguments.
- Thanks to Alan Brooks, added the
ImageProcessor.setBackgroundColor(Color) method.
- Thanks to Stein Rorvik, fixed a bug that caused values
to not be displayed correctly in Image>Math> dialogs
if "Decimal places" in the Analyze>Set Measurement
was set to 9.
- Thanks to Abbas Haghshenas and Nicolas De Francesco, fixed
a 1.54p regression that caused the "OK" button in dialog boxes
to be left-aligned on Windows.
1.53q 30 March 2022
- Thanks to Kevin Terretaz, added the More>Invert LUTs command
to the "Channels" dialog.
- Thanks to Olivier Burri, ImageJ calculates the perimeter of a
"polygon" ROI the same way as a "traced" ROI if it appears to have
been created by edge tracing.
- Thanks to 'muniak', the Process>Enhance Contrast
dialog displays values using 2 decimal places.
- Thanks to Norbert Vischer, replaced, in the ImageJ source,
deprecated new Integer(intOrString) and new Double(intOrString)
constructors with Integer.valueOf(intOrString)
and Double.valueOf(intOrString).
- Thanks to 'TMC', added the showRow() and showCell() methods
to the TextPanel class
(example).
- Thanks to Fred Damen, fixed a bug that caused bin starts in tables
created by clicking on "List" in histogram windows to be rounded
to integers.
- Thanks to Herbie Gluender, fixed a bug that caused Undo of rotated
images with overlays to not work as expected.
- Thanks to Michael Schmid, fixed a regression that caused some
PNG images to open as stacks.
- Thanks to Christophe Leterrier, fixed a 1.53p regression that caused the
run("Table...",options) macro function to fail.
1.53p 4 March 2022
- Thanks to Stein Rorvik, Analyze>Set Scale,
when there is a rectangular selection, sets "Distance in pixels" to the
largest of the selections' width and height.
- Thanks to Ron DeSpain, drag and drop sets the default path to the
source folder. The default path is listed in the
Plugins>Utilities>ImageJ Properties output
as "Current dir".
- Thanks to Alan Brooks, the "B&C" dialog now uses scientific
notation for small (less than 0.001) values.
- Thanks to Michael Schmid, the macro line number is added to the
"Exception" window when a macro causes an exception
(example).
- Thanks to James Manton, increased MAX_CHANNELS (maximum number
of image channels in composite mode) from 7 to 8.
- Thanks to 'JWinchester', added the recordable File.openSequence(path,options)
macro function.
- Added the Roi.setUnscalableStrokeWidth() macro function.
- Thanks to Carl Priddy, added the Table.columnExists() macro function.
- Thanks to Michael Schmid, added the ResultsTable.setValues()
method.
- Thanks to Peter Lunding Jensen, fixed bugs that caused
the File>New>Hyperstack command to incorrectly
label RGB hyperstacks.
- Thanks to 'ALisboa', fixed a bug that caused the
File>Import>Image Sequence command
to throw an exception if the directory path was
invalid.
- Fixed bugs that caused saved sub-pixel resolution rounded rectangle
and oval ROIs to not be reopened correctly
(example).
- Thanks to Michael Schmid, fixed a bug that caused
"Synchronize Windows" to throw a NullPointerException when
using the "Close All" command.
- Thanks to Michael Schmid, fixed a bug that caused
zero-length lines and isolated points in lines to not
be shown in plots.
- Thanks to Michael Mell, fixed a bug that caused
ROIs in an overlay on a single channel 3D image to not
be displayed correctly if the position was set using
roi.setPosition(c,z,t).
- Thanks to Kenta Shimamoto and Christoph Gohlke,
fixed a bug that caused tiff images larger than 2 GB
to open upside down.
- Thanks to Thomas Laurent, fixed a bug that caused
a double-click on the rectangle ROI icon in the toolbar
to display both the "ROI Defaults" dialog and
the right-click menu.
- Thanks to Thomas Laurent, fixed a bug that caused
the IJ.openUrlAsString() method to not correctly interpret
special characters
- Fixed a 1.53j regression that caused activation
of ROIs in an overlay by double clicking on a row
in an "Overlay Elements of..." table to not work
as expected.
- Thanks to 'hwada', fixed a 1.53i regression that
caused an extra click to be needed to activate and move
an ROI in an overlay with labels.
- Thanks to Gabriel Landini, fixed a 1.53g regression that caused
the File>New>Image command to not
work as expected when creating stacks and "Fill with" was
"white" or "ramp".
1.53o 11 January 2022
- Thanks to Christophe Leterrier and Peter Haub, added
"Composite Sum", "Composite Max", "Composite Min" and
"Composite Invert" as choices in
the Image>Color>Channels Tool dialog. "Composite Min" and
"Composite Invert" are useful for displaying composite images with inverted LUTs
(example image,
example macro).
- Thanks to Jerome Mutterer, added support for Results Table and ROI Manager
customizable actions
(example).
- Thanks to Fred Damen, the Image>Adjust>Window/Level
and Analyze>Histogram windows use scientific notation as needed
to display small values.
- Thanks to Stein Rorvik, Edit>Selection>Specify
respects the image origin when "Scaled units" is checked
in the dialog.
- Thanks to Stein Rorvik, ImageJ looks for the preferences file ("IJ_Prefs.txt")
in the current directory, the ImageJ directory and the username/.imagej directory
(username/Preferences on MacOS).
- Thanks to Kimberly Meechan and Jan Eglinger, ImageJ restores
the original look and feel after temporarily using the system
look and feel with Windows dialogs.
- Thanks to Stein Rorvik, the count field in the
Process>Binary>Options dialog is saved
in the preferences file.
- Thanks to Stein Rorvik, added a "Create new stack" checkbox
to the Process>Binary>Make Binary
and Convert to Mask dialog boxes.
- Thanks to Stein Rorvik, added the getDir("preferences") macro function.
- Thanks to Fred Damen, added the ImagePlus.setDefaultDisplayRange()
method
(JavaScript example).
- Thanks to Michael Schmid, fixed a bug that caused histograms
of thresholded 16-bit and 32-bit images to be displayed incorrectly
if the "Limit to threshold" measurement option
was enabled.
- Thanks to Stein Rorvik, fixed a bug that caused the loss of
density calibration with virtual stacks.
- Thanks to Kees Straatman, fixed a bug that caused the
IJ.openImage() method to not work with images opened using
Bio-Formats. As a result, the Open Next, Import>Image Sequence
and Process>Batch> commands now work with images
opened using Bio-Formats.
- Thanks to Michael Cammer, fixed a bug that caused the
Table.deleteRows() macro function to not work as expected
with tables not named "Results".
- Thanks to 'yogurt', fixed a bug that caused unexpected
popup menus when using the selection brush tool.
- Thanks to Christian Tischer, fixed a bug that caused some
dragged and dropped "https://" URLs to not open.
- Thanks to Hidenao Iwia, fixed a bug that caused
GRAY12_UNSIGNED images to not open correctly as
FileInfoVirtual stacks.
- Thanks to Stein Rorvik, fixed a bug that caused the
showMessageWithCancel() macro function to fail when run
from the command line.
- Thanks to Fred Damen, fixed a bug that caused slice labels
of one slice stacks to not be displayed in the
Image>Show Info window.
- Thanks to 'IztokD', fixed a regression that caused some
PNG images to open as stacks.
- Thanks to 'CellKai', fixed a 1.53d regression that caused the
RoiScaler.scale() method to sometimes not work as expected.
- Thanks to 'odinsbane', fixed a 1.53m regression that
caused exceptions to sometimes not be shown.
- Thanks to 'chin', fixed a 1.53i regression that caused the
roiManager("Show All") macro function to not work in
batch mode.
1.53n 7 November 2021
- Thanks to Stein Rorvik, added a "Raw values" checkbox
to the Image>Adjust>Threshold dialog
- Thanks to 'Sethur', added a DICOM preference
allowing fixed scaling across slices via RescaleSlope
and Intercept.
- Thanks to Norbert Vischer, added a "Cancel" button
to the waitForUser() dialog.
- Thanks to Christopher Schmied, histogram plot
outlines are drawn in dark blue to help distinguish the
outline from the plot.
- Thanks to Michael Schmid, restored the ability
to select the starting and ending frame in the
File>Import>AVI dialog.
- Thanks to Joseph Chen, removed the "Don't reset range"
checkbox from the Image>Adjust>Threshold dialog.
- Thanks to Jerome Mutterer, added the Math.constrain(n,min,max)
and Math.map(n,low1,high1,low2,high2) macro functions
(example tool).
- Thanks to Peter Bankhead, the ImagePlus(String,Image)
constructor now supports multi-band
BufferedImages.
- Thanks to Michael Schmid, fixed bugs and improved
the documentation of the Colors class.
- Thanks to Michael Cammer, fixed a bug that
caused the border color of composite images to
change to the color of the channel being displayed.
- Thanks to Michael Schmid, fixed a bug that
caused macros to fail due to a race condition
when converting stacks to hyperstacks.
- Thanks to Stanislav Chizhik, fixed a bug that
sometimes caused File>Import>Image Sequence
to open images as the wrong type when
using a filter.
- Thanks to Romain Guiet, fixed a bug that caused
the Image>Scale command to not work
correctly with hyperstacks.
- Thanks to Stein Rorvik, fixed a 1.53m regression
that caused macros importing an image sequence to
sometimes not open all images in a folder.
- Thanks to Michael Schmid, fixed a 1.53m regression
that caused image stacks to open slowly on Windows
in batch mode.
- Thanks to Stein Rorvik and Michael Schmid, fixed a 1.53m
regression that caused macro statements like
run("Macro...", "code=[...] stack") to fail.
- Thanks to Herbie Gluender, fixed a 1.53m regression that
caused the Image>Adjust>Brightness/Contrast
dialog to not work as expected with 32-bit images
containing NaNs.
1.53m 28 September 2021
- Thanks to Zoltan Kis, the File>Import>Image Sequence
dialog now displays the number of images that will be opened.
- Thanks to Norbert Vischer, exceptions on the Event Dispatch Thread
are now reported in the Log window.
- Thanks to Remi Berthoz, the Analyze>Tools>Scale Bar
command now has the ability to draw both vertical and/or
horizontal scale bars.
- Thanks to Stein Rorvik, added a "Colors..." command to the
Color Picker dropdown menu and made most of the commands in
that menu recordable.
- Thanks to Esteban Fernandez, added a "Fill color:"
field to the Image>Stacks>Images to Stack
dialog box.
- Thanks to Barry DeZonia, the findMinAndMax() methods
in the Short/Int/Float processors are now faster
(Plugins>Utilities>Benchmark
runs 3% faster).
- Thanks to Michael Schmid, added support for
drag and drop to JFileChooser dialogs.
- Thanks to Nicolas De Francesco, updated the
Edit>Selection>Fit Rectangle command so that
it produces more predictable results.
- Thanks to Philippe Carl, File>Import>Image Sequence
no longer limits the number of files that can be
imported to 40 when "Open as separate images"
is enabled.
- Thanks to Fred Damen, improved recording of the
ROI Manager's "Open..." and "Save..." commands, and
made the open(path) and save(path) methods public.
- Thanks to Michael Schmid, the
File>Import>Image Sequence command no
longer creates excessive image IDs.
- Thanks to Michael Schmid, added the FolderOpener.openProcessor()
method, used by the FileInfoVirtualStack class.
- Thanks to Norbert Vischer, fixed a bug that caused the
Process>Filters>Convolve command to sometimes not
be correctly recorded.
- Thanks to Fred Damen, fixed a bug that caused a null pointer
exception when the File>Import>Results dialog
was canceled.
- Thanks to Ved Sharma, fixed a bug that caused an invalid
macro error when assigning a string value returned by a user
defined function to an array element.
- Thanks to Fred Damen, fixed a bug that caused the RoiManager.save()
method to always return true.
- Thanks to Ved Sharma, fixed a bug that caused the
ROI Manager's "OR (Combine)" command to not work as
expected if the first ROI was composite.
- Thanks to Philippe Carl, fixed a bug that caused the
File>Import>Image Sequence command to not
work as expected when importing stacks and the
"Open as separate images" option was enabled.
- Thanks to Philippe Carl, fixed a bug that caused the
Image>Overlay>Flatten command to not work
with ROIs, or the ROI Manager in "Show All" mode, on
composite images.
- Thanks to Rodrigo Goncalves, fixed a bug that caused
the File>Save As>Image Sequence command to
display multiple error messages when the specified directory
did not exist.
- Thanks to Herbie Gluender, fixed a bug the caused the
exit(msg) macro function to fail when the argument was a
number or a call to a user-defined function.
- Thanks to Jerome Mutterer, fixed a typo in
OpenDialog.java that caused the GitHub version of ImageJ
to fail to compile.
- Thanks to Daniel Nebdal, fixed a bug that caused the
Plugins>Macros>Edit command to not open
".py" and ".bsh" files.
- Thanks to Remi Berthoz, fixed a bug that caused the
Image>Type>RGB Stack command to not work
correctly with RGB stacks that had multiple slices
and multiple frames.
- Thanks to Stein Rorvik, fixed a bug that caused
the Property.setSliceLabel() macro function to sometimes
not work as expected with single images.
- Thanks to Ved Sharma, fixed a regression that caused the
roiManager("Set Fill Color",color) macro function to fail when
used with a text selection.
- Thanks to 'natalia', fixed a 1.52p regression that caused
FITS images to open flipped vertically.
- Thanks to "J Xiong", fixed a regression that caused the
particle analyzer to not work the same as it did in ImageJ 1.52
with binary images that were not thresholded and the "Black background"
options was not set.
- Thanks to Hyung-song Nam, fixed a 1.53f regression that caused
menus to unexpectedly popup when using the "hand" tool to
scroll through images.
1.53k 6 July 2021
- Thanks Mike Nelson, 16-bit images are
inverted using the full pixel value range (0-65535) or, if set,
using the "Unsigned 16-bit range" in the "Set" option of the
Image>Adjust>Brightness/Contrast dialog.
- Thanks to Alan Brooks, added the macOS-specific
MacAdapter9 plugin, which, on Java 9 or later,
supports drag and drop on the ImageJ.app and the
"About ImageJ" command.
- Thanks to Romain Guiet, the ROI Manager's
"Associate 'Show All' ROIs with slices" option is
now enabled by default.
- Thanks to Gilles Carpentier, the particle analyzer now assumes
the threshold is 255 unless "Black background" is not set,
the image does not have an inverted LUT and fewer than
half the pixels have a value of zero, in which case
the threshold is set to zero.
- Thanks to 'pdd2110', added the Property.setSliceLabel(label)
macro function.
- Thanks to 'John D.', added the GenericDialog.addButton() method
(example).
- Thanks to 'Oodegard', fixed a bug that caused the
"Auto-next slice" option of the point tool to not
work as expected with hyperstacks.
- Thanks to Michael Schmid, fixed a bug that caused
NaN values in tables read from a file to be
strings instead of numbers.
- Thanks to Gabriel Landini and Michael Schmid, fixed a bug
that caused the "Top Hat" filter to fail when applying it to a
stack one slice at a time.
- Thanks to Laurent Thomas, fixed a bug that caused the
Image>Stacks>Set Slice command to not
work as expected with hyperstacks.
- Thanks to Laurent Thomas, fixed a bug that caused hyperstacks
to be displayed incorrectly if the Z or T sliders where
moved quickly and the images were slow to load.
- Thanks to Michael Schmid, fixed a bug that sometimes caused
the WindowManager.getIDList() method to throw an exception.
1.53j 13 May 2021
- Thanks to 'VolkerH', the table created by
Image>Overlay>List Elements now
displays row numbers and arrow selection 'X' and 'Y'
values are the coordinates of the arrow tip.
- Thanks to Stein Rorvik, added the Color.setForegroundValue()
and Color.setBackgroundValue() macro functions and the
Toolbar.setForegroundValue(), Toolbar.setBackgroundValue(),
ImageProcessor.setGlobalForegroundColor() and
ImageProcessor.setGlobalBackgroundColor() methods.
- Thanks to Norbert Vischer, added the IJ.checksum() macro
function, which returns the MD5 (or SHA-256) checksum from
a string or file
(example).
- Thanks to Michael Schmid, added the
Fit.doWeightedFit(equation,x,y,weights[,initialGuesses])
macro function.
- Thanks to Norbert Vischer, added the Plot.removeNaNs macro function.
- Thanks to Laurent Thomas, added support for scrollbars in
GenericDialog TextAreas.
- Thanks to Fred Damen, added the Zoom.in(imp), Zoom.out(imp),
Zoom.unzoom(imp) and Zoom.maximize(imp) methods.
- Thanks to John Dunsmuir, added the PointRoi.addPoint(x,y,position) method.
- Thanks to Fred Damen, fixed bugs that caused programmatic image
window zooming to not work reliably
(example).
- Thanks to Michael Schmid, fixed a bug with HTMLDialogs that
caused the initial scroll position to be at the end when displaying
more text than what fits in the window.
- Thanks to 'Sethur', fixed bugs that caused DICOM
files using newer VRs (from 2014 and later), such as
UC and UR, to fail.
- Thanks to Bruno Vellutini, fixed a bug that caused images rotated
interactively using the "Enlarge image" and "Preview" options to not
have the grid lines removed after the rotation.
- Thanks to Jerome Mutterer, fixed a bug that caused the
Prefs.savePreferences() method to throw a null pointer
exception if the "ImageJ" window was not open.
- Thanks to Stein Rorvik, fixed a bug that caused the slice
label to be incorrect after importing an image sequence and
"Start" was greater than 1 and "Count" was 1.
- Thanks to Stein Rorvik, fixed a bug that caused
the Images to Stack command to ignore slice labels
when the "Use titles as labels" option was not enabled.
- Thanks to 'ghf', worked around a Fiji bug that caused the
File>Import>Image Sequence command to fail
if the folder contained a ".h5" file.
- Thanks to Jerome Mutterer, fixed bugs that caused the
Stack.setDisplayMode(), Stack.setSlice(), Stack.setFrame()
and Stack.setPosition() macro functions to not work as expected
in batch mode, and the ImagePlus.setDisplayMode(),
ImagePlus.setZ(), ImagePlus.setSetT() and
ImagePlus.setPosition() methods to not work as expected when
the image was not displayed.
- Thanks to Nicolas Montes, fixed a bug that caused the
particle analyzer to throw an exception when both the
"Composite ROIs" and "Show: Outlines" options where used.
- Thanks to Christian Kremser, fixed a 1.53i regression
that caused macro statements like "n=Dialog.getNumber()+1"
to generate and error.
- Thanks to Christian Tischer, fixed a regression that
caused the ROI Manager to not set the hyperstack position
of ROIs without a c,z,t position.
1.53i 24 March 2021
- Thanks to Jerome Mutterer, added the
"Apply LUTs" checkbox to the command finder
(Plugins>Utilities>Find Commands).
- Thanks to Norbert Vischer, the current line number,
or selection range, in Editor, Table or Log windows,
is displayed in the status bar. The total number of lines is
displayed after Select All.
- Thanks to Norbert Vischer, ImageJ now corrects the orientation of
phone camera photos. Does not work on Fiji because it is
missing Exif_Reader.jar.
- Improved the Plugins>Utilities>Benchmark command. It now
suppresses subordinate status bar messages and displays
subordinate progress bars as dots.
- Thanks to Peter Haub, the particle analyzer displays
"ParticleAnalyzer: threshold has not set; assumed to be min-max"
in the Log window if it was not called from a macro and a
threshold was not set.
- Thanks to Laurent Thomas, File>Save As>Image Sequence,
when "Use slice labels as names" is enabled, now supports file names as
long as 111 characters, excluding the extension.
- Thanks to Michael Schmid, ImageJ displays "horizontal" in the
image info line of column average plots and "vertical" with
row average plots.
- Thanks to Jerome Mutterer, added the showStatus(message,options)
macro function and the IJ.showStatus(message,options) method
(example).
- Added the Overlay.update(index) macro function.
- Added the ImagePlus.setBorderColor() method,
used by Image>Color>Split Channels to
colorize image borders.
- Thanks to Laurent Thomas, added the ImageStack.getShortStackLabel(n,max),
Zoom.toSelection(imp), Zoom.set(imp,mag) and Zoom.set(imp,mag,x,y)
methods.
- Thanks to Herbie Gluender, fixed a bug that caused the status bar
to stop being updated after activating an overlay selection.
- Thanks to Fred Damen, fixed a bug with one slice stacks that caused the
slice label to not be displayed on the image info line or in the
Image>Show Info window.
- Thanks to Antoneta, fixed a bug with the Flatten command that caused
the counter information of multi-point selections on stacks to be lost.
- Thanks to Herbie Gluender, fixed a bug that caused unexpected overlay
entries after running the particle analyzer with the "Add to manager" option
in a batch mode macro.
- Thanks to Norbert Vischer, fixed a bug that caused string functions
added in ImageJ 1.52t (s.contains(), s.endsWith(), s.indexOf(), s.lastIndexOf(),
s.lengths.startsWith()) to return a string instead of a number when used
in an assignment statement.
- Thanks to Robert Haase, fixed a bug with the roiManager("select",index)
macro function that caused it to sometimes restore ROIs at the
wrong position.
- Thanks to Laurent Thomas, fixed a bug that caused the
ContrastEnhancer.stretchHistogram() method to not work as
expected with stacks.
- Thanks to Michael Schmid, fixed a bug that caused
WaitForUserDialogs to not be scaled on high-resolution
screens.
- Thanks to Stein Rorvik, fixed a macro interpreter bug that caused
if statements using string functions to sometimes fail
(e.g., "if (getTitle.length>10) ...").
- Thanks to Norbert Vischer, fixed a bug that caused the
first column of tables copied to the clipboard to be missing
if the table did not have row numbers and the
"Copy row numbers" option in
Edit>Options>Input/Output was not enabled.
- Thanks to Shayna Sosnowik, fixed a 1.53g regression that caused
the "Properties..." command in the ROI Manager to not work as
expected when changing the stroke color.
- Thanks to Stein Rorvik, fixed a 1.53i regression that caused
the str.trim() macro function to sometimes fail.
1.53h 04 February 2021
- Thanks to Laura Shankman, added the Image>Overlay>Measure Overlay
command.
- Thanks to Jerome Mutterer, added the Help>Examples>Macro>Colors of 2021
example, which runs more smoothly with ImageJ 1.53h20 or later, where ROIs are not
drawn in batch mode.
- Added the Help>Examples>JavaScript>Dialog Demo and
Help>Examples>Macro>Save All Images examples.
- Thanks to Christophe Leterrier, Image>Type>RGB Color
converts hyperstacks of HSB stacks to stacks of RGB images.
- Thanks to Alex Zwetsloot, line selections are no longer activated by double clicks
with the segmented and freehand line tools.
- Thanks to Norbert Vischer, added the Color.set(string), Color.set(number),
Color.foreground, Color.background, Color.setForeground(r,g,b),
Color.setBackground(r,b,g), Color.setForeground(string),Color.setBackground(string),
Color.toString(r,g,b), Color.toArray(color), Color.setLut(reds, greens, blues) and
Color.getLut(reds, greens, blues) macro functions.
- Thanks to Raniere Silva, added the Overlay.xor() macro function.
- Added the Overlay.fill() macro function.
- Thanks to Stein Rorvik, added the File.isFile() macro function.
- Thanks to Raniere Silva, added the getDir("cwd") ("current working directory")
macro function.
- Added the Roi.getFloatBounds() and Image.title macro functions.
- Thanks to Alan Brooks, added the Toolbar.setIcon() method
(example1,
example2,
example3,
example4.
example5).
- Added the Overlay.xor() and Roi.xor() methods.
- Thanks to Robert Kasumba, added the OverlayBrushTool.setWidth() method.
- Thanks to Laurent Thomas, added the getColumn(String), getColumnAsStrings(String)
and getActiveTable() methods to the ResultsTable class.
- Thanks to Dyuks, fixed a bug that caused the TIFF reader to sometimes throw
an exception when opening LZW-compressed 16-bit TIFFs.
- Thanks to Michael Schmid, fixed a bug that could cause the JpegWriter
to throw a NullPointerException if JAI ImageIO was installed.
- Thanks to Michael Cammer, fixed a bug that caused the selectWindow(title)
macro function to not work with minimized windows on Windows.
- Fixed a bug that caused all tools to stop working after attempting
to use the polygon, segmented line or angle tool on
ImageJ.JS.
- Thanks to Gabriel Landini, fixed a bug that caused the B&C tool
to sometimes perform an Undo operation on RGB images.
- Thanks to Raniere Silva and Jan Eglinger, fixed a bug that
caused an exception when saving the table created by
Image>Overlay>List Elements in .csv format.
- Thanks to Raniere Silva, fixed bugs that caused the open(path)
and roiManager(“Open”,path) macro functions, in macros run
from the command line, to not work as expected when ‘path’
was just a file name.
- Thanks to Michael Schmid, fixed bugs that caused the roi.getBounds()
method and getSelectionBounds() macro function to not work
as expected with polyline, point and straight line selections on
images zoomed more than 150%.
- Thanks to Christian Tischer, fixed a bug that caused the
Image>Overlay>List Elements command to incorrectly
report positions of time series overlays.
- Thanks to Laurent Thomas, fixed a bug that sometimes caused
GenericDialogs to not open URLs bound to "Help" buttons.
- Thanks to Jan Eglinger, fixed a bug that caused the selection
brush tool to behave inconsistantly when the brush width was odd
and the image was hightly magnified.
- Thanks to Christian Tischer, fixed a bug that caused overlay
calibration bars to be displayed incorrectly on images zoomed
less than 100%.
- Thanks to Norbert Vischer, fixed a bug that caused the
selectWindow("Results") macro function to sometimes not
work as expected.
- Fixed a 1.53h17 regression, caused by building ij.jar for Java 8,
that prevented Fiji from launching.
- Thanks to Dominik Schienstock, fixed a 1.52q regression that
caused some filters to throw exceptions in headless mode.
1.53g 4 December 2020
- Thanks to Jerome Mutterer, added a "Run" button to Editor
windows when the file name ends with ".ijm", ".js", ".bsh" or ".py".
- The "Overlay Masks" option in the particle anayzer now
displays masks in colors taken from the Glasbey LUT.
- Thanks to J Xiong, added "Overlay" and "Composite ROIs"
checkboxes to the particle analyzer
(example).
- Thanks to Michael Doube, added an IntProcessor class that provides
support for signed 32-bit int images
(example).
- Thanks to Christian Tischer, the Recorder supports Python.
- Thanks to 'Eljonco', the "ExpandableArrays" macro option
is now enabled by default.
Thanks to Peter Haub, added the String.pad(n,length)
macro function.
- Thanks to Wilhelm Burger, added the addEnumChoice() and
getNextEnumChoice() methods to the GenericDialog class
(example).
- Thanks to 'davidC', added the ij.gui.HistogramPlot class.
- Thanks to Stein Rorvik, added the ImageCanvas.setLongClickDelay()
and Toolbar.setLongClickDelay() methods.
- Thanks to 'Dr. Njitram', added the recordable
SubstackMaker.run(imp,rangeOrList) method.
- Thanks to Albert Cardona, modified the ImageJ.keyPressed() method
so that, if the KeyEvent is consumed, it returns immediately.
- Thanks to Wei Ouyang, replaced the "Duplicate..." command
in the default image contextual menu with "Duplicate Image",
which ignores any selection and duplicates the entire image.
- Thanks to Stein Rorvik, fixed a bug that sometimes caused images
to be incorrectly added to the Window menu.
- Thanks to Stein Rorvik, fixed a bug that caused the
File>Show Folder>Image command to not
work with stacks opened using
File>Import>Image Sequence.
- Thanks to 'muniak' and 'mountain_man', fixed a bug that
caused the Scaler.resize() method to return an image with
a calibration of Inf x Inf.
- Thanks to Stein Rorvik, fixed a bug that caused a list of 12 'w' letters
to appear after the Group entry in the ROI Properties dialog when it
was called from a macro.
- Thanks to 'davidC', fixed a bug that caused batch mode macros that
created hundreds of histograms to fail.
- Thanks to 'chrk139', fixed a bug that caused the drawOval() and fillOval()
macro functions to not work for images larger than 2^29 pixels.
- Thanks to Laurent Thomas, fixed a bug where changing
the group attribute from a group>0 to 0 in
the ROI Manager>Properties dialog did
not work as expected.
- Thanks to Gilles Vanwalleghem, fixed a bug that caused the
run("Reduce Dimensionality...") macro function to throw a
null pointer exception in Fiji headless mode.
- Thanks to Laurent Thomas and Hollandi Reka, fixed a bug
that caused the ROI group of saved composite selections
to not be restored.
- Thanks to Martin Hohne, fixed a bug that caused the getValue("X")
and getValue("Y") macro functions to not work as expected with
line selections.
- Thanks to J Xiong, fixed a v1.50 regression that caused the
particle analyzer to not work as expected when when using the
"Exclude on edges" option and a composite selection.
- Thanks to Fred Damen, fixed a 1.53c regression that caused
the GenericDialog.getFont() method to sometimes return null.
- Fixed a regression that caused the particle analyzer to
sometimes fail on MacOS.
1.53f 25 October 2020
- Thanks to Wei Ouyang, tool bar and image popup menus are
triggered by long presses in addition to right clicks, needed
because right clicks are not normally possible when
Image.JS
is running on Android and iOS devices.
- Thanks to Wei Ouyang, added a popup menu to the
magnifying glass tool icon.
- Added a popup menu triggered on a right click or
long press inside a selection.
- Updated the built in toolbar "Dev" menu.
- Thanks to Michael Schmid, the text in a text selection can
be edited in the Edit>Selection>Properties
dialog.
- Thanks to Stein Rorvik, the File>Import>Image Sequence
dialog is used when drag and dropping a folder on the
"ImageJ" window.
- Thanks to Michael Schmid and Thomas Fischer, Undo works with
overlays when translating and rotating images, and the "Overlay only"
checkbox is only shown in the Translate dialog when there
is an overlay.
- Thanks to Robert Haase, added the Edit>Options>Fresh Start
command, which closes all images, empties the ROI Manager, clears the
Results table and enables the "Black background" option.
- Thanks to Conner Phillips and Stein Rorvik, the Reslice command
is faster on Windows when re-slicing from "Left" or "Right" and it
uses an ordinary progress bar when run from a macro.
- Thanks to Stein Rorvik, added an "Open as separate images" checkbox
to the File>Import>Image Sequence dialog.
- Thanks to Stein Rorvik, added "Foreground..." and "Background..." entries
to the color picker tool popup menu.
- Thanks to 'MIKEIII' and Dmitry Fedorov, added the Image.width, Image.height,
Image.copy and Image.paste(x,y) macro functions
(example).
- Thanks to Stein Rorvik, added the Array.filter(arr,str),
Math.toRadians(degrees) and Math.toDegrees(radians) functions.
- Thanks to Nima Hojat, added the ResultsTable.addRow()
method. For an example, run
Help>Examples>JavaScript>Sine/Cosine Table.
- Thanks to Philippe Carl, fixed a bug that caused the
RoiManager.getSelectedIndexes() method to sometimes not
work as expected.
- Thanks to Christian Tischer, fixed a bug that slowed saving of
virtual stacks in TIFF format.
- Thanks to Thomas Fischer, fixed a bug that caused the
dynamic "Value" and "Count" values in HIstogram windows
to sometimes not be displayed correctly.
- Thanks to Gaurav Joshi, fixed a bug that caused the
Ctrl+F (Edit>Fill) keyboard shortcut on Windows, when
used on a stack, to not display the "Proces Stack?" dialog.
- Thanks to 'Quiroz-1', fixed a 1.53e regression that caused
the imageCaculator() macro function do somethimes not
work as expected.
- Thanks to Pradeep Rajasekhar and Jan Eglinger, fixed a 1.52
regression that caused the Analyze Skeleton plugin to output
incorrect Results tables.
- Thanks to 'tongtao', fixed a regression that caused the
Edit>Copy to Image Info command in the text
editor to fail.
- Thanks to Stein Rorvik, fixed a 1.53c regression in the AVI Reader
that caused it to throw a null pointer exception.
- Thanks to Eric Perlman, fixed a 1.52 regresion that caused the
IJ.getImage() method to sometimes display model error dialogs.
1.53e 16 September 2020
- Thanks to Wei Ouyang, ImageJ now
runs in web browsers
(Chrome or Firefox).
- Thanks to Michael Schmid, the color picker tool has
a new icon and a right click drop down menu.
- The "Black background" option is no longer
saved in the preferences file. Add
setOption("BlackBackground",true) to Edit>Options>Startup
to have it set 'true' on startup.
- Thanks to Kees Straatman, improved recording of the
Edit>Selection>Add to Manager command.
- Thanks to Michael Ellis, added a module-info.java file,
used by the Java Module System, to the ImageJ source.
- Thanks to 'mkhapp', added the RoiManager.selected macro
function, which returns the number of selected ROIs in the
ROI Manager
(example).
- Thanks to Fred Damen, added the ImagePlus.copyToSystem() method.
- Thanks to Philippe Carl, fixed a bug that allowed multiple copies
of the Color Picker to be opened.
- Thanks to 'Ben', fixed a bug that caused the Table.get()
macro function to return strings instead of numbers.
- Thanks to Fred Damen and Michael Schmid, fixed a bug
that caused the run("Copy to System") macro function to
sometimes copy the wrong image to the system clipboard.
- Thanks to Fred Damen, fixed a bug that caused unreliable
zooming of images with selections when using the arrow keys
while holding the shift or control key down.
- Thanks to Fred Damen, fixed a bug that caused the
img3=ImageCalculator.run(img1,img2,operation) method
to return null if the 'operation' string did not contain
'create' or '32-bit'.
- Thanks to Martin Hohne, fixed a 1.53c regression that caused
the Counter popup menu in the Point Tool options Dialog
to not work as expected after switching to a different image.
- Thanks to Robert Svoboda, fixed a 1.53d regression on
Windows that could cause the getDirectory() macro function
to throw an exception or crash ImageJ.
- Thanks to Stein Rorvik, fixed a 1.53d regression that could cause
the run("Image Sequence...",options) macro function to fail.
1.53d 19 August 2020
- Added drag and drop support to GenericDialog directory
and file fields, based on code from Fiji's GenericDialogPlus.
- The File>Import>Image Sequence and
File>Save As>Image Sequence comnands get the
directory using the new GenericDialog.addDirectoryField() method,
which is based on the very useful method with the same name
in Fiji's GenericDialogPlus class.
- The File>Import>AVI comnand gets the path to
the AVI file using the new GenericDialog.addFileField() method,
which is also from Fiji's GenericDialogPlus class.
- Thanks Michael Schmid, added the
Process>Filters>Top Hat filter.
- Thanks to William Berndt, added the Image>Type>HSB (32-bit)
command.
- Thanks to Laurent Thomas, added the More>>Multi Crop
command to the ROI Manager.
- Thanks to Zeynab Mousavi, the Edit>Selection>Scale
command uses the centroid instead of the center of the bounding
rectangle when "Centered" is checked in the dialog.
- The Help>About ImageJ window is larger
and the text is drawn in an overlay.
- Thanks to Peter Bankhead, the MacAdapter class is now in the ij.plugin package.
- Thanks to Norbert Vischer, legend labels can be indexed or hidden
in the plot window More>>Legend... dialog.
- Thanks to Curtis Rueden, the sample images are
now loaded from https://imagej.net/images/.
- Thanks to Jerome Mutterer, the Color Picker now has a clipboard-copyable
TextArea containing the selected color in hex format.
- Thanks to Jeff Hardin, the Image>Hyperstacks>Stack to Hyperstack
command now works with virtual stacks not in CZT order.
- The Threshold tool's "Set" function disables
"Don't reset range" if the values set are outslide
of the current display range.
- The ImageStack class now accepts images of different types. Images
are converted to the type specified by the setBitDepth() method or to the
type of the first image added.
- Added the Dialog.addDirectory() macro function
and the GenericDialog.addDirectoryField() method
(example).
- Added the Dialog.addFile() macro function
and the GenericDialog.addFileField() method.
- Added the Dialog.addImageChoice() macro function
and the GenericDialog.addImageChoice() method.
- Added the Overlay.cropAndSave() macro function
and the ImagePlus.cropAndSave() method
(example).
- Thanks to Laurent Thomas, added the RoiManager.multiCrop()
macro function and RoiManager.multiCrop() method.
- Thanks to Philippe Carl and Michael Schmid, added the
LutLoader.getLut() method. For an example, run
Help>Examples>JavaScript>Show all LUTs.
- Thanks to Philippe Carl, added the String.format() macro
function.
- Thanks to Laurent Thomas, added the ImagePlus.crop(Roi[]),
Overlay.createStackOverlay(Roi[]) and ImageStack.create(ImagePlus[])
methods. For an example, run
Help>Examples>JavaScript>Crop Multiple Rois.
- Added the FolderOpener.open(path, width, height, options)
method, which opens a stack, or virtual stack, from a folder of
images that may differ in size.
- Added the ImageStack.setBitDepth() method.
- Thanks to Aryeh Weiss, added the HyperStackConverter.toStack()
method
(example).
- Added the StackWriter.save() method.
- Thanks to 'bio7' and David Gault, fixed bugs that caused
IJ.isJava18() to return false and JavaScript to not work when
running Java 14 or later.
- Thanks to Vivek Gupta, fixed a bug that caused the
run("Add Selection...") macro function to ignore the
current selection's position.
- Thanks to Michael Cammer, fixed a bug that caused the contrast to constantly
change when scrolling through a stack and the Threshold window is open.
- Thanks to Gilles Carpentier, fixed a bug that caused
the Duplicate command to propose an incorrect name
when duplicating an image whose name ends in "-n",
where 'n' is a digit.
- Thanks to Gabriel Landini and Michael Schmid, fixed a bug
that caused the File>Show Folder> commands
to not work on some Linux systems.
- Thanks to 'Nhaz', fixed a bug that caused the Fit.doFit(() macro
function to fail with equations containing "Math.erf()".
- Thanks to Michael Schmid, fixed preview and
parallelization bugs in the RankFilters (Median, Mean, Minimum, etc.).
- Thanks to Herbie Gluender, fixed a bug that caused
Table.* macro functions to ignore custom tables
not displayed in the active window.
- Thanks to Philippe Carl and Michael Schmid, fixed a bug that
caused the High Resolution Plot command to not be
correctly recorded in Java(script) mode.
- Thanks to Gabriel Landini, fixed the
Process>Shadows>Shadows Demo command,
which was too fast on modern computers.
- Thanks to Jerome Mutterer, fixed a bug that sometimes
caused point measurements to not work as expected
(example).
- Fixed issues with script-mode recording of file paths on Windows.
- On Macs, fixed a bug that caused the ImageJ>About ImageJ
window to open slowly.
- Thanks to Michael Cammer, fixed a bug that caused the
s2=replace(s,s1,s2) and s2=s.replace(s1,s2) macro functions to fail
when 's1' was a single regular expression special character
and 's2' did not have a length of one.
- Thanks to Philippe Carl, fixed a bug that caused the
Image>Stacks>Tools>Concatenate command
to not preserve the "Info" properties.
- Fixed a 1.52r regression that caused ImageJ to hang
when saving images with fewer than 4 pixel in TIFF format.
- Thanks to Jan Brocher, fixed a 1.52u regression that caused
the Edit>Selection>Enlarge command to not work
as well as before.
- Thanks to 'jerr', fixed a 1.52 regression that made it impossible
to set the threshold by changing the textfield values.
- Thanks to 'Emil' and Pete Bankhead, fixed a 1.53c regression
that caused the Analyze>Plot Profile command not work as
expected with segmented and freehand line selections on
spatially calibrated images.
- Thanks to Zeynab Mousavi, fixed a 1.52 regression that caused
the getResults() macro function to unexpectadly cause a
"No results found" error
(example).
- Thanks to Sumin Kim, fixed a 1.52t regression that caused
Stack to Images image titles to not be the same as
before for stacks with names containing spaces.
1.53c 26 June 2020
- Added the Help>Examples>Tools>
submenu with five tools: Circle Tool, Star Tool, Point Picker,
Big Cursor and Annular Selection. These tools use
the new "//@AutoInstall" directive that automatically
adds them to the toolbar.
- Added the "//@AutoInstall" and "//@AutoInstallAndHide"
directives for automatically installing macros and tools
in newly opened .ijm and .txt files.
- Thanks to Louise Bishop, delete multiple points from
a multi-point selection by creating a new area selection
while holding down the alt key.
- Thanks to Gabriel Landini, the LUT name is saved
as an image property and displayed when you
type "i" (Image>Show Info).
- Added support for 24x24 macro tool icons. The Big Cursor
and Annular Selection tools are examples.
- Double click on an overlay selection to activate it.
- Thanks to Christophe Leterrier and Christian Goosmann,
the Image>Scale, Image>Adjust>Size,
Image>Transform>Rotate, Translate,
Rotate 90 Degrees Right and Rotate 90 Degrees Left
commands now work with overlays.
- Thanks to 'Emma', added sliders and an "Overlay only"
option to the Image>Transform>Translate command.
- The Color Picker is improved, including a new tool icon.
- Toolbar buttons are one pixel larger, making the "ImageJ"
window 20 pixels wider.
- Tool icons are bolder when the GUI scale is greater
than 1.0 and less the 1.5.
- Added a "Reset" button to the Edit dialog of the
Plugins>Utilities>Commands window.
- Thanks Jerome Mutterer, added the rainbow progress bar
easter egg, activated by switching to the angle tool and running
a command that uses a progress bar (e.g., a radius 50 median
filter on a 1000x1000 image).
- Thanks to Fred Damen, the Compile and Run
command now looks for library JAR files in both
plugins/jars and plugins/lib.
- Added the getDir("file") macro function, which returns the
directory of the most recently opened or saved file.
- Thanks Jerome Mutterer, added the Overlay.activateSelectionAndWait()
macro function.
- Thanks to 'Eljonco', added the RoiManager.getName() macro function.
- Thanks to Laurent Thomas, added the RoiManager.setPosition()
macro function and method.
- Thanks to 'quatreulls', added the Table.saveColumnHeaders(boolean)
macro function and ResultsTable.saveColumnHeaders(boolean) method.
- Thanks to Laurent Thomas, added the ImagePlus.crop(Roi[]) and
ImagePlus.crop(Roi[],options) methods
(JavaScript example).
- Thanks to Bill Christens-Barry, added the TextWindow.setFont(name,style,size)
method for setting the font used in the Log window. For monospaced text, set
'name' to "Monospaced"
(example).
- Thanks to Gilles Carpentier, fixed a bug that caused NaN results
when measuring line selections created by Edit>Selection>Area to Line
from particle analyzer selections touching the right or
bottom edge of the image.
- Thanks to Norbert Vischer, fixed bugs that caused hyperstacks
with a "select all" selection to not be correcty copied to
the system clipboard.
- Thanks to Joe Want, fixed a bug that caused the macro interpreter to
sometimes generate an invalid "Numeric return value expected" message.
- Thanks Jerome Mutterer, fixed a bug that caused the
Roi.activateSelection(index) macro function to not work as expected
when called twice with the same index.
- Worked around a Java 8/Windows 10 bug that caused the
"ImageJ" window menu bar font size to become very small
after increasing the GUI scale.
- Thanks to Romain Guiet and Jan Eglinger, fixed a bug that caused
the multi-point tool to always reset the counter to 0.
- Fixed a bug that caused the Edit>Selection>Fit Spline
command to leave an incomplete progress bar.
- Fixed a bug that caused the Editor's Compile and Run "Save as" dialog
to sometimes not default to a folder inside the plugins folder.
- Thanks to Laurent Thomas, fixed a bug in ROI Manager>Properties
that caused it to not change the position of multiple ROIs.
- Thanks to Michael Schmid, fixed a bug that could cause an
exception with plugins using a DialogListener.
- Thanks to Michael Schmid, fixed a bug that could cause the
"Label Points" checkbox in Point Tool Options dialogs to be ignored.
- Thanks to Christian Tischer, fixed a bug that caused the macro
interpreter to not generate an "Undefined variable" error with
statements like "v=v+1".
- Thanks to Garbriel Landini, fixed a 1.52m regression that caused
histogram peaks to extend above the frame.
- Thanks to Stein Rorvik, fixed a 1.52u regression that caused
File>Import>Image Sequence to display unexpected
error messages in the Log window.
1.53b 31 May 2020
- Thanks to Jerome Mutterer, added the "Overlay Editing Tools"
toolset and the "Label Maker" tool to the toolbar's ">>"
menu. Shift click on a toolset or tool in the ">>" menu to
view the macro source code.
- Thanks to Laurent Thomas, added the
Edit>Options>Roi Defaults command, which
adds support for ROI group names. Double
click on the rectangle tool to run this command.
- The group name, "Stroke Color:" field and the selection color
are dynamically updated as the group number is changed in the
Edit>Selection>Properties dialog.
- Thanks to Jerome Mutterer, added support for
tool icons read from image files located in the
macros/toolsets/icons/ folder. The syntax looks like
macro "Test Tool - icon:833.png" { }.
- Thanks to Erod Baybay, added the Roi.setPosition(slice) macro function.
- Thanks to Jerome Mutterer, added the Overlay.indexAt(x,y),
Overlay.removeRois(name) and Overlay.getBounds(index,x,y,width,height)
macro functions.
- Thanks to Stein Rorvik, added the Roi.setJustification(str),
Roi.setFontSize(size), Property.setList(str) and Property.getList
macro functions.
- Added the setOption("InterpolateLines",boolean) macro function.
- Thanks to Adrian Martin, added the setOption("FlipFitsImages",true)
macro function.
- Thanks to Laurent Thomas, added the Roi.getGroupNames
and Roi.setGroupNames() macro functions.
- Thanks to Jan Eglinger, moved initialization of the okay and cancel
buttons in GenericDialog into the constructors.
- Thanks to Hidenao Yamada, fixed a bug that caused the
FileInfoVirtualStack.deleteLastSlice() method to not work.
- Thanks to Tom Kazimiers, fixed spelling of the ARTIST tag
in the TiffDecoder.
- Thanks to Jerome Mutterer and Michael Schmid, fixed a rounding
error that caused the Measure command to not correctly
measure point selectons with non-integer coordinates.
- Thanks to Herbie Gluender, fixed bugs that caused the
Rename, Duplicate, Sort and Plot Results table commands
to not work if the table did not contain a ResultsTable object.
- Thanks to Norbert Vischer, fixed a bug that caused the
Stack to Hyperstack command to throw an exception.
- Thanks to 'Hayato', fixed a bug that caused the
roiManager("measure") macro function to be slow on
Windows when measuring thousands of ROIs.
- Thanks to Gilles Carpentier, fixed a bug that caused the
Stack to Hyperstack command to unexpectedly display
the output image in batch mode.
- Thanks to Madison Williams, fixed a 1.52o regression that caused tables
created by the Cell Counter plugin to be empty.
- Thanks to Ron DeSpain, fixed a 1.52u regression that caused
incorrect positions to be shown in the status bar after using the
arrow keys to move line selections.
- Thanks to Stein Rorvik, fixed a 1.52t regression that caused
the TextRoi.setJustification() method to sometimes not work
as expected.
- Thanks to 'hwada', fixed a 1.52t regression that changed the order
of the points returned by Line.getFloatPolygon().
1.53a 4 May 2020
- Thanks to Michael Ellis, added support for saving and restoring
persistent image properties via the Property.set(key,value) and
Property.get(key) macro functions and the setProp(key,string),
getProp(key), setProp(key,double) and getNumericProp(key)
methods in the ImagePlus class
(JavaScript example).
- Removed file sizes from entries in the File>Open Samples> submenu.
Macros that use the old entries (e.g. "Blobs (25K)") continue to work.
- Thanks to Laurent Thomas, the Overlay and RoiManager classes are now iterable.
Plugins can use "for (Roi roi : rm)" instead of "for (int i = 0; i != rm.getCount(); i++)".
In JavaScript, use "for each (roi in rm)"
(example).
- Thanks to Norbert Vischer, added the [&n] macro shortcut notation
that allows shortcuts to be used on both numerical
keypads and normal (laptop) keyboards.
(example).
- Thanks to Richard Boardman, increased the BufferedOutputStream
buffer size in the FileSaver class to 32K and added the static
FileSaver.setBufferSize(int) method.
- Thanks to Michael Schmid, added the Plot.setOptions() macro function.
See Help>Examples>Plots>Plot Results for an example.
- Added the Property.get(key), Property.set(key,value), Property.getInfo,
Property.getSliceLabel, Property.setSliceLabel(string) and
Property.getDicomTag(string) macro functions.
- Thanks to Michael Schmid, added the Plot.getCurrentFont(),
Plot.getDefaultFont() and Tools.getNumberFromList() methods.
- Thanks to Herbie Gluender, added the GenericDialog.getLabel()
and FHT.getRawPowerSpectrum() methods.
- Thanks to Kenneth Sloan, added the ImageProcessor.getForegroundValue()
method.
- Thanks to Curtis Rueden, added the GUI.getParentFrame() method
and made GenericDialog.getParentFrame() private again.
- Thanks to Hidenao Yamada, fixed a bug that caused
the getDirectory() and getFileName() methods of the
FileInfoVirtualStack class to always return null.
- Thanks to Norbert Vischer, fixed a bug that caused
the File>Import>Image Sequence command
to not ignore subdirectories.
- Thanks to Michael Cammer, fixed a 1.52v regression that caused
recording to not work correctly when Preview was checked in a filter dialog.
- Fixed a 1.52o regression that caused the
Help>Examples>JavaScript>FFT Filter
script to display an error message.
- Thanks to 'Eljonco', fixed a 1.52v regression that caused the Threshold tool to
sometimes freeze ImageJ.
1.52v 11 April 2020
- Thanks to Norbert Vischer, macro error messages include the call stack.
(example).
- Added a "Set default directory" code choice to the
Edit>Options>Startup dialog.
- Thanks to Laurent Thomas, the RoiManager class is now iterable.
- The run("Viridis") macro function now works on Fiji
(example).
- Thanks to Fred Damen, Java compiler error messages use the default editor font.
- Thanks to Fred Damen and Michael Schmid, added the Math.erf(x) macro function.
- Added the Overlay.useNamesAsLabels(boolean) macro function
(example).
- Thanks to Michael Schmid, added the Fit.getEquation(index,name,formula,macroCode)
macro function
(example).
- Thanks to 'Odinsbane', added the ByteProcessor.skeletonize(foreground)
method, where 'foreground' is either 0 or 255.
- Thanks to Laurent Thomas, added the ResultsTable.getResultsTable(title) method.
- Thanks to 'Max1', fixed a bug that caused the
Edit>Selection>Scale command to not maintain
the selection name, group, fill color, point type and point size.
- Thanks to 'Odinsbane', fixed a bug that caused the ByteProcessor.skeletonize()
method to not work correctly with objects touching the image edge.
- Thanks to Stefan Helfrich and Olivier Burri, fixed a bug that caused the
position of ROIs added to the ROI Manager using RoiManager.setRoi()
to sometimes change.
- Thanks to Michael Schmid, fixed a bug that sometimes caused
GenericDialogs to throw an exception.
- Thanks to Jeremy Adler, fixed a bug where changing the LUT
resets the display range.
- Thanks to 'Sh_Ty', fixed a bug the caused the
Analyze>Tools>Calibration Bar command to throw
an exception in headless mode.
- Thanks to Michael Schmid, fixed a bug that caused
plots with custom symbols to use the wrong color
or generate an error.
- Thanks to Nicolas De Francesco, fixed a 1.52u regression that caused
incorrect straight line length measurements with spatially calibrated images.
- Thanks to Peter Haub, fixed a 1.52u regression that caused the cursor
position to not be aligned with the drawing position when creating
a polygon ROI.
- Thanks to 'Professor_OAT', fixed a 1.52s regresson that caused the
deleteRows() macro function to throw an exception when deleting
rows in a non-numeric table.
1.52u 17 March 2020
- ROI enhancements, thanks to Michael Schmid:
- Line and point selections have integer coordinates at
pixel centers when displayed at high magnification. Area selections
have integer coordinates at the top-left corner of pixels.
- All interactively created ROIs, except rectangles and ovals, are created
with subpixel resolution when the magnification is above 150%.
- Removed the "Sub-pixel resolution" option from the
Edit>Options>Plots dialog.
- The Line to Area command is faster and more accurate
- The Straighten command is more accurate.
- The Image>Info command displays more
information about ROIs.
- Long-click to select ROIs from overlays now also works
with lines.
- The Measure command uses Line to Area instead of
Straighten to get statistics from segmented and freehand lines
with a width geater than one.
- Fixed a bug that could (rarely) cause an exception during
"wipe back" when drawing a polygon or polyline. In "wipe back"
mode, the mouse behaves like an eraser when
moved backwards with alt key down.
- Thanks to Nicolas De Francesco, added the
Edit>Selection>Fit Rectangle command.
- Thanks to 'Dcolam' and Jan Eglinger, the
Edit>Selection>Enlarge command no
longer has a 255 pixel limit.
- Thanks to Peter Bankhead, the default TIFF reader uses the HandleExtraFileTypes
plugin when it is unable to open a file. As an example, .svs files dragged and dropped
on the "ImageJ" window are now opened by the Bio-Formats plugin.
- Added the Help>Examples>JavaScript>Overlay Text example.
- Thanks to Laurent Thomas, added a
"Install Keypad Shortcuts" command to the
ROI Menu tool. Add
call("ij.plugin.MacroInstaller.installFromJar", "/macros/RoiMenuTool.txt+");
to the Edit>Options>Startup dialog
to have the shortcuts automatically installed on startup.
- Thanks to Laurent Thomas, the commands in the
ROI Menu tool and the "Group" setting in the ROI Manager's
Properties dialog are recordable.
- Added the
Math.abs(n), Math.acos(n), Math.asin(n), Math.atan(n), Math.atan2(n1,n2), Math.ceil(n),
Math.cos(n), Math.exp(n), Math.floor(n), Math.log(n), Math.log10(n), Math.min(n1,n2),
Math.max(n1,n2), Math.pow(n1,n2), Math.round(n), Math.sin(n), Math.sqr(n),
Math.sqrt(n) and Math.tan(n) macro functions.
- Added the RoiManager.setGroup(group) and
RoiManager.selectGroup(group) macro functions.
- Thanks to Ken Gilbert, added the getValue("image.size")
macro function.
- Thanks to Laurent Thomas, added the setOption("WaitForCompletion",false)
macro function, which causes the next exec() call to return an empty string and
not wait for the command being executed to finish.
- Thanks to Nortbert Vischer, added the Array.sort(array1,array2,array3...)
macro function
(example).
- Thanks to Volker Backer, added the ImagePlus.resize()
method, which is recorded by the Image>Scale
and Image>Adjust>Size commands.
- Thanks to Fred Damen, added the Plot.setWindowSize() method.
- Thanks to Lewis Muir, fixed a bug the caused the Pixel Inspection Tool's
red selection box to be included with the image when saving in
GIF, JPEG or PNG format.
- Thanks to 'cooketho', fixed a bug that caused the
Edit>Copy to System command to sometimes not work
as expected with composite images.
- Thanks to Fred Damen, fixed bugs that caused the
TextRoi.setJustification() and TextRoi.drawPixels() methods
to not work as expected.
- Thanks to Nicolas De Francesco, fixed a bug that caused
empty tables to not be opened correctly.
- Fixed a bug that caused the Color Picker to not work
correctly if the GUI scale was greater than one.
- Thanks to Michael Schmid, fixed a bug that could cause
a thread deadlock in plugins using the ImageListener interface.
- Thanks to Michael Schmid, fixed a bug that caused the
"List coordinates" option in the Edit>Selection>Properties
dialog to ignore the "Origin" setting in the
Image>Properties dialog.
- Thanks to 'sebi06', fixed a 1.52p regression that caused the
particle analyzer to thow an exception in headless mode.
1.52t 30 January 2020
- Thanks to Laurent Thomas, added a "Group" field to the
Edit>Selection>Properties dialog and an
"ROI Menu" tool to the toolbar's >> menu.
- Thanks to Norbert Vischer, added support for superscripts and
subscripts in plot axis labels
(example).
- Thanks to Norbert Vischer, added a "Separate Image" option to the
"Location:" menu of the Analyze>Tools>Calibration Bar dialog.
- Selection handles are larger.
- Added a "Bolder selections" ("Roi.setDefaultStrokeWidth(2);") code
choice to the Edit>Options>Startup dialog.
- Thanks to Mark Rivers, the Help>Examples>JavaScript>TeraByte VirtualStack
example now generates test patterns and supports multiple image types.
- Thanks to Laurent Thomas, added the Roi.getDefaultGroup,
Roi.setDefaultGroup(group), Roi.getGroup, Roi.setGroup(group),
Roi.getDefaultStrokeWidth and Roi.setDefaultStrokeWidth()
macro functions, and the corresponding Roi class methods.
- Added the following macro language string functions, where
's' is a string variable:
s.charAt(i), s.contains(s2), s.endsWith(s2), s.indexOf(s2), s.lastIndexOf(s2),
s.length, s.matches(s2), s.replace(s1,s2), s.startsWith(s2),
s.substring(i1,i2), s.substring(i), s.toLowerCase,
s.toUpperCase and s.trim.
- Thanks to Stephen Royle, fixed a bug on macOS that caused
the command-h keyboard shortcut (ImageJ>Hide ImageJ)
to not work.
- Thanks to Mark Rivers, fixed a bug that caused the cursor
location and pixel value to not be displayed in the status bar
for animating stacks.
- Thanks to Jeff Spector and Michael Schmid, fixed a bug that
caused the Edit>Selection>Line to Area command
to not work as expected.
- Thanks to Norbert Vischer, fixed a bug that caused a
misleading error message to be displayed when using the
saveAs(format,path) macro function to save in "jpg", "png" or "gif"
format and the file path was incorrect.
- Thanks to Michael Schmid, fixed a bug that caused macro
recording to not work correctly if "Non-blocking filter dialogs" was
enabled in the Edit>Options>Misc dialog.
- Thanks to Michael Kaul, fixed a bug that caused the
GenericDialog.addSlider() method to not use enough
digits to the right of the decimal point if the value
of the 'stepSize' argument was very small.
- Thanks to Michael Schmid, fixed several live profile
plot and LineWidthAdjuster bugs.
- Thanks to Norbert Vischer, fixed a bug that caused the
Image>Overay>Flatten command to throw
an exception when flattening hyperstacks.
- Thanks to Michael Schmid, fixed a bug that caused dialogs
with only buttons to put the focus on the first button, which is not the
"OK" button on MacOS and Linux.
- Thanks to John Fozard and 'mountain_man', fixed a bug
that caused angle measurements of lines a few pixels
in length to be incorrect.
- Thanks to 'SarenT', fixed a bug that caused the
ImagePlus.getShortTitle() method to truncate file names
containing spaces.
- Thanks to Norbert Vischer, fixed a bug that caused
a "Has Calibration Bar" error when attempting to adjust
brightness and contrast after clicking on "Cancel" in
the Analyze>Tools>Calibration Bar dialog.
- Thanks to Fernando Garcia-Polite, fixed a 1.52q regression
that caused the run("Point Tool...",options) macro function
to no longer work.
- Thanks to Michael Schmid, fixed a 1.52q regression
that caused duplicate recordinging of non-blocking dialogs.
- Thanks to Dorai Iyer, fixed a 1.52s regression that caused characters
entered using the text tool to sometimes be repeated.
- Thanks to Rodrigo Goncalves and Curtis Rueden, fixed a
1.52q regression that caused the "Movie (FFMPEG)"
plugin to throw a NullPointerException.
1.52s 10 December 2019
- Thanks to 'LPUoO', added the Plugins>Utilities>Commands
command, which opens a list of commonly and recently used
commands.
- By default, image windows now open just below the "ImageJ" window.
- Thanks to Norbert Vischer, adding an exclamation mark to
showStatus() messages avoids status bar flicker
(example).
- Thanks to Michael Schmid, the Process>Filters>Convolve
dialog displays feedback on the kernel as it is modified.
- Added the Macros>Set as Repeat Command
command to the macro editor. After running this command,
the selected macro code will run each time you press 'r', the
shortcut for the Process>Repeat Command command.
- Thanks to Jerome Mutterer, added a "Splash Screen" code
choice to the Edit>Options>Startup dialog.
- Changed the shortcut for Process>Repeat Command
to 'r' and the shortcut for File>Revert to shift-r.
- Added a "Reuse 'FFT of...' window" option to the
Process>FFT>FFT Options dialog.
- Thanks to Peter Haub, chroma subsampling is disabled when saving in
JPEG format if the Quality setting (Edit>Options>Input/Output)
is 90 or higher, resulting in higher quality images but larger file sizes.
- Thanks to Karen Collins, improved the FITS Writer.
- Added the Help>Examples>JavaScript>JPEG Quality Plot
example.
- Removed the obsolete "Draw grid lines" option from the
Edit>Options>Plot dialog.
- Thanks to Michael Schmid, the ImagePlus.updateAndDraw()
method adds a scroll bar to the image window if the stack size
has changed to greater than one.
- Thanks to Stein Rorvik, added the File.getDefaultDir,
File.setDefaultDir(path), String.trim(string) and String.join(array)
macro functions.
- Thanks to Peter Haub, added the JpegWriter.disableChromaSubsampling()
method
(example script).
- Added the ImageProcessor.setFontSize() and Plot.setFontSize() methods.
- Thanks to 'kefe' and Herbie, fixed a bug that caused the Stack to Images
command to use slice labels as image titles even when
they contained "/", "\" or ":" characters.
- Thanks to 'sudgy' and Jan Eglinger, fixed a bug the caused iteration
over the points contained in an ROI to throw an exception for rectangular ROIs.
- Thanks to Norbert Vischer, fixed a bug that caused the options dialogs
for the Rounded Rectangle, Multi-point and Arrow tools to generate
"Duplicate keyword" errors when the Recorder was running.
- Thanks to Peter Haub, fixed a bug that caused the Image Calculator
to not work as expected with RGB images when using the
"Difference" operator and the "32-bit (float) result" option was enabled.
- Fixed a bug that caused the "Font size" setting in the
Edit>Options>Plots dialog to be ignored.
- Thanks to Stein Rorvik, fixed a bug that caused the
run("Calibration Bar...",options) macro function to ignore calls to
setOption("AntialiasedText",boolean).
- Thanks go Sethur, worked around a Windows 10 and OpenJDK
bug that caused the "thumb" on scrollbars to be hard to see.
- Thanks to Stein Rorvik, fixed a bug that caused the
Analyze>Set Scale command to not be correctly
recorded.
- Thanks to Sethur, fixed a bug that caused the
Image>Stacks>Tools>Substack Maker
command to not carry over the calibration of hyperstacks.
- Thanks to Sethur, fixed bugs that caused the
DICOM reader to not correctly open multi-frame DICOMs,
and 16-bit signed DICOMs, with RescaleSlope=1
and RescaleIntercept!=0.
- Thanks to Stein Rorvik, fixed a macro interpreter bug
that prevented array functions like newArray() and split() from
being used as arguments to user-defined functions.
- Thanks to Stein Rorvik, fixed a bug that caused the
Window menu to not be updated when saving a table.
- Thanks to Stein Rorvik, fixed a bug that caused the
Image>Transform>Translate command
to ignore overlays.
- Thanks to Stein Rorvik, fixed a bug that caused right
justified text in overlays to not be translated correctly.
- Thanks to Stein Rorvik, worked around a Java bug
that caused the OpenDialog.setDefaultDirectory(path) method to
sometimes not work as expected on Windows when the path
used "/" separators.
- Thanks to Stein Rorvik, fixed a bug that caused macros
calling open("") to not be aborted when the user clicked
"Cancel" in the file open dialog and "Use JFileChooser to open/save"
was enabled in the Edit>Options>Input/Output dialog box.
- Thanks to Nicolas De Francesco, fixed a bug that caused
Process>FFT>Custom Filter to only process
the current stack slice even though "Process entire stack"
was checked in the dialog box.
1.52r 26 October 2019
- Plot enhancements, thanks to Michael Schmid:
- The More>> menus have immediate preview.
- New More>>Use Template menu (also with immediate preview),
useful for creating plots with the same style.
- Clicking into a rectangular area next to an axis shows the
corresponding axis dialog.
- When adding a curve to a "Live" plot, it remains when the plot is
updated.
- Thanks to Jan Eglinger, saving TIFF images and stacks to
network drives is up to 10 times faster.
- Thanks to Marcel Boeglin, the title of the selection list created by
Image>Overlay>List Elements includes the image
name. And, when you double click on a line, the image associated
with the list is activated, the corresponding selection is activated and
stacks are set to the selection position.
- Thanks to Michael Schmid, Process>Filters>Gaussian Blur
now uses a Thread Pool, reducing overhead and making it
faster for small images.
- Thanks to Stein Rorvik, you can now separately view and set
the X, Y and Z dimension units in the
Image>Properties dialog box.
- Thanks to Ryan Siu, the double click interval used to
complete a polygon selection is reduced from 500ms to 250ms and
a confirmation dialog is displayed when completing the selection
and there are more than 25 points.
- Thanks to Stein Rorvik, the slider in the Image>Transform>Rotate
dialog now shows the angle using two decimal places and the slider arrows
increment/decrement by 0.1 degrees. Use the keyboard arrow keys
as a shortcut to finely adjust the angle.
- Thanks to 'felix.b', labels of multi-point tool markers get
larger as the markers get larger and there are two new marker
sizes ("XXL" and "XXXL").
- Thanks to Stein Rorvik, the Image>Adjust>Coordinates
command can now be used to set the Z unit.
- GenericDialogs display an error message if show() is called
instead of showDialog().
- Added the getDir("downloads") macro function and
the IJ.getDir("downloads") method.
- Thanks to Stein Rorvik, added the Roi.getPosition(channel,slice,frame),
Roi.setPosition(channel,slice,frame),
Stack.setXUnit(), Stack.setYUnit(),
Stack.setUnits(x,y,z,time,value), Stack.getOrthoViews(x,y,z),
Stack.getOrthoViewsIDs(xy,yz,xz), File.getDirectory(path)
and File.getNameWithoutExtension(path) macro functions.
- Thanks to Leroy Olivier, added the Stack.getPointPosition(index)
macro function.
- Added the IJ.openAsByteBuffer() method
(example).
- Thanks to Michael Schmid, fixed a bug that caused the
getInfo("window.title") macro function to not work as expected
after opening a large text file using open("/path/to/largeFile.txt").
- Thanks to Stein Rorvik, fixed a bug that caused
min/max values of calibrated 16-bit images to be shown without
decimals in the "B&C" dialog.
- Thanks to Deborah Schmidt, fixed a bug that caused Fiji users to not
be able to update via HTTPS through a proxy.
- Worked around a macOS bug that caused the keyboard
arrow keys to not function as shortcuts for the
increment/decrement arrows in GenericDialog sliders.
- Thanks to Marcel Boeglin, fixed a bug that could cause the
particle analyzer to throw an exception when creating an
overlay and no particles were detected.
- Thanks to Noreen Walker, fixed a bug that caused the
image type to unexpectadly to change to COLOR_256 when
using the "glasbey" LUT.
- Thanks to 'mountain_man', fixed a bug
that caused images to not be displayed correctly
if a LUT was applied before the image was shown.
- Thanks to 'mountain_man', fixed a bug
that caused 8-bit PNG images with LUTs to
open as type COLOR_256.
- Thanks to Jan Brocher, fixed a bug that caused the
Edit>Selection>Create Selection command
to ignore the "Black background" setting with
non-thresholded binary images.
- Thanks to 'mountain_man', fixed a bug that caused
ImageJ to not be be able to open TIFF files saved
without a file path.
- Thanks to Birgit Moeller, fixed a bug that caused the
"Label" column to not be sorted when using the "Sort"
command in Results tables.
- Thanks to lguerard and mountain_man, fixed a
bug that caused an ROI's hyperstack position
to be lost when adding it to the RoiManager.
- Thanks to Philippe Carl and Michael Schmid, fixed a bug
that caused OvalRoi.getMask() to sometimes
return a zero-width mask.
- Thanks to Francois Gannier and Michael Schmid, fixed a
1.52o regression that caused the "Log" window to unexpectedly
become the active window.
1.52q 13 September 2019
- Thanks to Michael Schmid, added the "Non-blocking filter dialogs"
option to Edit>Options>Misc. The Convolve,
Mean, Median, Minimum, Maximum, Variance and Image>Math
commands use NonBlockingGenericDialogs when
this option is enabled.
- "Save changes?" dialogs on Windows and Linux now
use "Don't Save", "Cancel" and "Save" buttons.
- Thanks to Norbret Vischer, added the
Dialog.addMessage(string,fontSize,fontColor)
macro function
(example).
- Thanks to Noreen Walker, the Image>Stacks>Statistics
command and the StackStatistics class now calculate the median
of non-float images.
- Drag and drop opening of images, tables and LUTs is recorded.
- Thanks to Michael Schmid, added the Plot.showValuesWithLabels()
macro function and the Plot.getResultsTableWithLabels() method.
Both create tables that use legend labels and/or axis labels as
column headings. The List, Save Data and Copy All Data
plot window commands also now use labels.
- Thanks to Jerome Mutterer, added the getValue("Length")
macro function.
- Thanks to Jerome Mutterer, added the IJ.pad(string,digits)
macro function and method.
- Thanks to Michael Schmid, the ImagePlus lock() and unlock()
methods now support multiple lock/unlock operations by the
same thread.
- Added the IJ.getValue(imp,measurement) method, where
'measurement' is "Area", "Mean", "StdDev", etc.
- Thanks to Stein Rorvik, fixed a bug that caused
File>Import>Image Sequence to not
correctly handle RGB48 images when "Use virtual stack"
was enabled.
- Thanks to Francois Gannier, fixed a bug that caused the
unit to not be set when "Function:" was set to "None" in the
Analyze>Calibrate dialog.
- Thanks to 'Matthew', fixed bugs that cause the Table.deleteRows()
macro function and IJ.deleteRows() method to not update particle
analyzer overlays.
- Thanks to Norbert Vischer, fixed bugs that caused tables with
missing columns or rows to not be opened correctly.
- Thanks to Sara Vecchio and Michael Schmid, fixed a bug that
caussed the curve fitter to throw an exception if all data points
contained NaNs.
- Thanks to Robert Haase, fixed a bug that caused
Process>Find Maxima to throw an exception in
Fiji headless mode.
- Thanks to Stephen Royle, fixed a bug that caused the
run("Fill") macro function to ignore setColor(pixelValue) calls.
- Thanks to 'mendel', fixed a bug that caused
enlarged ROIs to be shifted if the polygon defining the
original ROI had points outside the filled polygon.
- Thanks to Michael Schmid, fixed a bug that could cause
ImageJ to freezes when running macros that manipulate stacks.
- Thanks to Norbert Vischer, fixed a bug that caused
the numeric field in GenericDialog sliders to be too
narrow when the maximum value was greater than 9999.
- Thanks to Norbert Vischer, fixed a bug that caused
the getValue(x,y) macro function to not interpolate when
x or y were real numbers.
- Thanks to Norbert Vischer, fixed a bug that caused
the getPixel(x,y) macro function to not return raw pixel values
when x or y were real numbers.
- Thanks to 'mountain_man', fixed a bug that caused
line selections to not be correctly converted to ShapeRois.
- Thanks to Jeremy Adler, fixed a regression that caused the
the makeSelection(10, xpoints, ypoints) macro function to
throw an exception.
- Thanks to Dan McDonald, fixed a regression that caused the
Raw File Opener to throw an exception.
- Fixed a 1.52a regression that caused tables created by
the gel analyzer to not have row numbers.
- Thanks to Hyung-song Nam and Curtis Rueden, fixed a
1.52o regression that caused the Channels tool on macOS
to become unresponsive.
- Thanks to Florian Jug, fixed a 1.52o regression that
caused the "Auto" button in the "B&C" tool to not have
focus on macOS.
1.52p 22 June 2019
- Thanks to Uwe Schmidt, improved the support for multiple screen setups:
- Placement of first image window is more predictable.
- Reliably determine the correct screen for a given location or window,
for example to determine if a window can be enlarged.
- If there is ambiguity about which screen to use, the one that contains
the main ImageJ window will be chosen. For example
Plugins>Utilities>Capture Screen and Windows>Tile
use the screen with the main ImageJ window.
- Dialogs are shown on the screen containing the main ImageJ window.
- Maximized image windows no longer revert to the main screen.
- Improved behavior of "+" (Image>Zoom>In) command.
- Code simplification, especially by removing special cases for Linux.
- ImageJ displays a warning dialog before deleting a multi-point selection.
- Thanks to 'alex', the FITS Reader no longer flips images vertically
so inspection of pixels will produce the expected values.
- Thanks to Jerome Mutterer, added the getValue(measurement)
macro function, where 'measurement' is "Mean", "Median", "Feret", etc.
(example).
- Added the getValue(x,y) macro function and
the ImageProcessor.getValue(x,y) method.
- Thanks to "Herbie", restored macro support for the
"lightGray", "darkGray" and "pink" named colors.
- Thanks to Somsubhro Chaudhuri, added the getValue("selection.angle")
macro function and the Rotator.getAngle() method.
- Added the getValue("selection.size") macro function.
- Added the setOption("CopyHeadings",boolean) macro function.
- Thanks to Stein Rorvik, added the Roi.setAntiAlias(boolean) macro function,
which can be used to control antialiasing when drawing selections
(example).
- Thanks to 'MLdish', added the ParticleAnalyzer.setSummaryTable() method
(JavaScript example).
- Thanks to Wilhelm Burger, added the Menus.add(menuPath,class)
method.
- Thanks to Philippe Carl, added the RoiManager.getErrorMessage() method.
- Thanks to Laurent Thomas, updated the Javadoc of the MaximumFinder.getMaxima()
methods to make it clearer that the npoints variable of the returned Polygon is the
number of maxima found, not the length of the xpoints variable.
- Made the Toolbar.builtInTools array public.
- Thanks to Mikael Eriksson, fixed a bug that caused the
particle analyzer's "Summary" table to not be accessible in macros
run from the command line using the -batch option.
- Thanks to Andrew Clark, fixed a bug that caused
Edit>Undo to delete all stack slices except the
current one after using the flood fill tool.
- Thanks to 'Nhthayer', fixed a bug that caused imageJ to
incorrectly read TIFF stacks created by the Python
tifffile package when the "imagej=True" option was used.
- Thanks to Marcel Boeglin, fixed a bug that caused
the Image>Adjust>Size command to throw
an exception with XYCT hyperstacks.
- Thanks to Francisco Romanos, fixed a bug that caused
the run("Scale...",options) macro function to ignore the
'interpolate' options keyword.
- Thanks to Glen MacDonald and Curtis Rueden, fixed a
bug that sometimes caused macros in the "More Tools" (>>)
menu to be sorted randomly.
- Thanks to Philippe Carl, fixed a bug that caused
ImagePlus.getStatistic() and ImageProcessor.getStatistic() to
not treat one point selections the same way.
- Thanks to Andrew Sonnier, fixed a bug that caused the
particle analyzer to not be recorded if the "In situ" option was used.
- Thanks to Mikael Eriksson, fixed a bug that caused the
run("Colors...",options) macro function to throw an
exception when called from a -batch command line macro.
- Thanks to Stein Rorvik, fixed a bug that caused
the Overlay.drawLine() macro function to not work
correctly when used in conjuction with Overlay.setColor()
and/or Overlay.setPosition().
- Thanks to 'Niederle', worked around a bug that caused
the run("Gamma...", "value=x.xx") macro function to fail in
Fiji headless mode.
- Thanks to 'fieryice12', fixed a bug that caused the
Plot.showValues macro function to fail in batch mode.
- Thanks to NorbertVischer, fixed a bug that caused
the Image>Duplicate command to throw
on exception if the ROI was outside the image.
1.52o 23 April 2019
- Added the Help>Examples>Macro>Curve Fitting
and Help>Examples>JavaScript>Curve Fitting examples.
- Thanks to Tiago Ferreira, stack and hyperstack scrollbars
now apply the Edit>Options>Appearance "GUI scale".
- Thanks to 'mountain_man', tables can be sorted alphabetically.
- Thanks to Neil Switz, the Process>FFT>Inverse FFT
command displays a warning message if the "FFT of ..." image
has been modified but no pixels have been set to 0 or 255.
- Thanks to Stein Rorvik, copies of IJ_Props.txt and/or IJ_Prefs.txt
in the ImageJ folder override the corresponding files in the default locations.
- Thanks to Stein Rorvik, the Table.update macro function is called
automatically when a macro finsihes and the Table.setSelection(),
Table.getSelectionStart and Table.getSelectionEnd functions no
longer require that a title be specified.
- Thanks to Philippe Carl, the isKeyDown() and setKeyDown() macro
functions now support the control key
(example).
- Thanks to Stein Rorvik, the setColor() and setLineWidth() macro functions
no longer abort the macro if no image is open.
- Thanks to Sian Culley, removed "Bridge" and "Lena" from the
File>Open Samples menu. Macros and scripts that use
these images will continue to work.
- Thanks to Stein Rorvik, the run("Apply LUT") macro function no longer
shows an error message with images that have a display range of 0-255.
- Thanks to NorbertVischer, Philippe Carl and Stein Rorvik, added the
Array.deleteValue() and Array.deleteIndex() macro functions
(example).
- Thanks to Stein Rorvik, added the Table.setLocationAndSize()
macro function.
- Thanks to Philippe Carl, added the Dialog.createNonBlocking() macro function
(example).
- Added the ImagePlus.crop(options) method, where 'options' can be
can be "stack", "slice" or a range (e.g., "20-30").
- Thanks to Stein Rorvik, fixed a bug the caused macros using a
function key shortcut to not work if the shift key was down.
- Thanks to Salim Kanoun, fixed a bug in the DICOM reader that caused
it to sometimes not correctly open PT DICOM stacks.
- Thanks to Stein Rorvik, fixed a rounding error with setMinAndMax()
on some density calibrated 8-bit images.
- Fixed non-macro recording of the Image>Duplicate command.
- Thanks to Norbert Vischer, fixed a bug that caused the
doWand(x,y,tolerance,"Smooth") macro function to cause
the macro language's &var variable passing method to fail.
- Thanks to Jan Eglinger, fixed a bug that caused log histogram plots
to be malformed if the line width was set to greater than 1.
- Thanks to Stein Rorvik, fixed a bug that caused the Table.title
and getInfo("window.title") macro functions to sometimes
not work with custom tables.
- Thanks to Stein Rorvik, fixed bugs related to saving and
opening empty tables.
- Thanks to Norbert Vischer, fixed a bug that caused the
Mac menu bar to disappear when activating the Channels,
ColorPicker, ContrastAdjuster and ThresholdAdjuster dialogs.
- Thanks to Norbert Vischer, fixed a bug that caused the
"Save changes?" dialog to not be the front-most window
when quitting ImageJ.
- Thanks to Tihamer, fixed a bug that caused the
CurveFitter.getResultString() method to fail if
there was a fitting error.
- Thanks to Ellen Arena, fixed 1.52m regression that caused
the Edit>Selection>Create Selection command
to not work as expected with non-thresholded images.
- Thanks to Laurent Thomas, fixed a 1.52n regression that caused the
MaximumFinder.getMaxima() method to always return 0 points.
- Thanks to Gabriel Landini, fixed a regression that could cause
the ImagePlus.setSlice() method to throw an exception.
1.52n 22 March 2019
- Thanks to Ellen T Arena, fixed a 1.52m regression that caused the
Edit>Selection>Create Mask command to not
preserve spatial calibration.
1.52m 20 March 2019
- ROI improvements thanks to Michael Schmid, including more accurate
Roi.contains, better ShapeRoi filling, improved ShapeRoi.clone(),
improved Roi Manager Split, better ShapeRoi length calculation,
more accurate perimeter for ovals and rounded rectangles,
more accurate MinFeret, removed point selection 32k slice limit,
ability to press ESC to abort creation of polygonROI,
and addition of Roi.getFeretPoints() macro function
(example).
- Thanks to Tiago Ferreira, the "GUI scale (0.5-3.0)"
setting in the Edit>Options>Appearance dialog
is now applied to almost all remaining dialogs and widgets,
including the Histogram and Plot Windows and the Threshold widget.
- Thanks to Norbert Vischer, added the File>Show Folder
submenu.
- Thanks to Norbert Vischer and Michael Schmid, changed
"Noise Tolerance" to "Prominence" and added a "Strict" option
to the Process>Find Maxima dialog.
- Thanks to Hidenao Yamada, the File>Import>Raw
command now uses long instead of int for the gap between images.
- Thanks to Stein Rorvik, Image>Stacks>Tools>Set Label
and Image>Stacks>Tools>Remove Slice Labels work
with single images.
- On macOS, the Help>Update ImageJ command
displays a message explaining how to work around Path
Randomization if the ImageJ home directory is read-only and
the file path starts with "/private/var/folders/".
- Thanks to Christophe Leterrier, the File>Import>Image Sequence
command now always sorts the files names on macOS.
- The File>Save As>Image Sequence command saves
single line slice labels when saving in TIFF format.
- Thanks to Norbert Vischer, the File>Revert command
now works with virtual stacks.
- Thanks to Alicia Daeden, the makeLine() and makePolygon()
macro functions no longer have a 200 point limit.
- Thanks to Steve Fallows, File>Import>Raw only
gets .raw file parameters from the filename when it uses 'x' delimiters.
- Thanks to Gilles Carpentier, added the is("line") and
is("area") macro functions.
- Thanks to Albert Cardona, added the ImagePlus.updateVirtualSlice()
method.
- Thanks to Michael Kaul, added the Plot.update() method.
- Thanks to 'cyrilturies' and Jan Eglinger, fixed a bug that caused
Results table labels to not be displayed for line measurements if no
measurement options were enabled in Analyze>Set Measurements.
- Thanks to Stein Rorvik, fixed rounding errors in the
Image>Scale command.
- Thanks to Norbert Vischer, fixed a bug that caused
the toolbar to be corrupted when opening an overlay
containing multi-point selections.
- Thanks to Norbert Vischer, fixed bugs that caused
numerous "//setTool()" statements to be recorded when opening
ROI sets or overlays that contain multi-point selections.
- Fixed a bug that caused multi-point selections to lose
their 'pointBeforeDeleting' property when saved and re-opened.
- Thanks to Michael Schmid, fixed a bug that caused
Process>Filters>Gaussian Blur to not be
multithread-safe.
- Thanks to Robert Lockwood, fixed a bug that caused the
File>Save command to not be correctly recorded.
- Thanks to Albert Cardona, fixed bugs that caused
Edit>Selection>Restore Selection, and setting an
ROI from the ROI Manager, to not emit an Roi MODIFIED event.
- Thanks to Dr-Frog and Jan Eglinger, fixed a bug that caused
the ImageProcessor.fillOutside(Roi) method to modify the Roi
passed as the argument.
- Thanks to Teresa Haider, fixed a bug that sometimes
caused Image>Transform>Bin
to not correctly display the output image.
- Thanks to Stein Rorvik, fixed a 1.52d regression that caused
File>Import>Image Sequence to use the image label
(if present) as the slice label instead of the filename.
- Thanks to Gilles Carpentier, fixed a 1.52k regression that
caused the particle analyzer to unexpectedly create composite ROIs.
- Thanks to Jan Eglinger, fixed a 1.52i regression that caused
macro string expressions like "s"+a[i]*n to generate an error.
1.52k 29 January 2019
- Thanks to Albert Cardona and Gabriel Landini, added the "GUI scale (0.5-3.0)"
option to the Edit>Options>Appearance dialog, which enables
scaling of text in GenericDialogs and in the Command Finder. It
also doubles the size of the tool icons if the scale is 1.5 or larger
and triples the size if the scale is 2.5 or larger.
- Thanks to Norbert Vischer, added clickable spaces between the four
arrow pairs in plot windows for quickly setting a single plot limit.
- Thanks to Stein Rorvik, ImageJ now displays a progress bar when
duplicating large (>200 megapixel) stacks.
- Michael Schmid contributed an improved version of the ThresholdToSelection
class (Edit>Selection>Create Selection) that always converts single
pixel wide lines to traced selections and is up to five times faster.
- Thanks to Tatsuaki Kobayashi, ImageJ can now open 32-bit float DICOM images.
- Michael Schmid contributed the FloatArray class, an extendable
float array.
- Thanks to Norbert Vischer, added the Table.setSelection(start,end,title),
Table.getSelectionStart(title) and Table.getSelectionEnd(title) macro functions
(example).
- Added the setOption("ScaleConversions",boolean) macro function.
- Thanks to Robert Haase, fixed a bug that caused the
Edit>Selection>Create Selection command to ignore the
"Black background" setting when processing non-thresholded binary images.
- Thanks to Johannes Wibisana, fixed a bug in the Particle Analyzer that
caused ROIs added to overlays and the ROI Manager to not exclude
interior holes.
- Thanks to Herbie, fixed a bug that caused the
Process>Binary>Make Binary command
to incorrectly set the threshold of 8-bit binary images.
- Thanks to Nicolas De Francesco, fixed a bug that caused
the LUT to not be saved in the TIFF header when saving
a single-channel image with a custom grayscale LUT.
- Thanks to Mark Mandelkern, fixed a bug that caused multi-image
DICOM files with RescaleSlope!=1.0 to open incorrectly.
- Thanks to Stein Rorvik, fixed a bug that caused the contrast
range to change when converting an 8-bit or 16-bit image to 32-bit.
- Thanks to Stein Rorvik, fixed a bug that caused the
Table.getColumn("Label") macro function to throw an exception.
- Thanks to Philippe Carl, fixed a bug that caused ImageJ to
freeze when opening the Interactive Interpreter on Windows using
the ctrl+j keyboard shortcut.
- Thanks to Jerome Mutterer, fixed a bug that caused ImageJ
to fail to open one column tables.
- Thanks to 'Bio7', worked around a bug that caused
toolbar popup menus to not work with OpenJDK 11 and 12 on Windows.
- Thanks to Ved Sharma, fixed a bug that caused the Histogram
command to not behave as expected when "Limit to Threshold" was
enabled in Analyze>Set Measurements and there
was an invisble threshold.
- Thanks to Norbert Vischer, fixed bugs in the toScaled(length)
and toUnscaled(length) macro functions.
- Thanks to J Xiong, fixed a 1.52j regression that caused the
Image>Overlay>From ROI Manager command
to throw an exception.
- Thanks to Philippe Carl, fixed 1.52j9 regression that made it
impossible to enter closing brackets into editor windows
using French keyboards.
- Thanks to Stein Rorvik, fixed 1.52j regression that
sometimes caused macro errors to be ignored
(examples).
- Thanks to 'yorgodillo', 'mountain_man' and Jan Eglinger, fixed a
1.52e regression that caused float to 8-bit conversions to be
done incorrectly.
1.52j 29 December 2018
- Added the Plugins>Macros>Interactive Interpreter command
(shortcut: "j"), which enables interactive editing and running
of macro and JavaScript code in an editor window
(example).
Type "js" in to switch the language to JavaScript.
- Thanks to Ved Sharma, point selections with more than 65,535 points
can now be saved and reopened
(example).
- Thanks to Philippe Carl, the status bar is updated when adjusting
elliptical and rotated rectangle selections.
- Thanks to Ilan Tal, added the "Ignore Rescale Slope"
checkbox to the Edit>Options>DICOM dialog box.
- Thanks to Michael Schmid, Image>Edit>Resize
can now convert a single image to a stack.
- Thanks to MichaelSchmid, improved the calculation of Feret
parameters for composite selections. FeretAngle is now reported
(within 0.5 deg), works with pixel aspect ratios different from one and is
more accuate due to use of 0.5 deg increments.
- Thanks to MichaelSchmid, the output of ROI Manager 'AND', 'OR'
and 'XOR' operations are, if possible, converted from composite ROIs
into simpler polygon ROIs.
- Thanks to Jerome Mutterer, errors in macro run() statements
are now reported using a "Macro Error" dialog that displays
the line number.
- Added the ImagePlus.plotHistogram() method. For examples,
run Help>Examples>JavaScript>Histogram Plots.
- Added the JavaScript-friendly ImageStatistics.histogram() method
(example).
- Added the Overlay.setLabelFontSize(size,options),
Overlay.setLabelColor(), Overlay.setStrokeColor()
and Overlay.setStrokeWidth() macro functions,
and corresponding Overlay class methods
(example).
- Thanks to Jerome Mutterer, added the setIgnoreErrors() and
getErrorMessage() methods to the Interpreter class
(example).
- Thanks to Michael Schmid, fixed a bug that caused
Image>Edit>Resize to not preserve stack lookup tables.
- Thanks to Stein Rorvik, fixed Orthogonal Views bugs that caused
freezing, dragging in XZ and YZ views to not work, missing density calibration
and incorrect behavior when "Rotate YZ" and "Flip XZ" where enabled in
Edit>Options>DICOM.
- Thanks to Stein Rorvik, fixed a bug that caused particle analyzer overlays to
not be specific to the current slice when processing one slice.
- Fixed a bug that caused the color of overlay labels to be set to black after
the image was saved and reopened.
- Fixed a bug that caused the Image>Overlay>To ROI Manager
command to not preserve overlay properties such a label color and scalability.
- Thanks to Wilhelm Burger, fixed a bug that caused the Roi.setLocation(x,y)
method to not work correctly with ShapeRois if x or y were not integers.
- Thanks to Philippe Carl, fixed a bug that caused the status bar to not be
updated, or to not be updated correctly, when moving or changing the length
of straight line and arrow selections using the arrow keys.
1.52i 26 November 2018
- Thanks to Ved Sharma and Michael Kaul, added the
Image>Stacks>Measure Stack command
(macro source),
useful for plotting stacks using the contextual (right-click) Plot command
in Results tables.
- Thanks to Jerome Mutterer, added the
Image>Stacks>Tools>Magic Montage Tools command
(macro source).
- Tables can be sorted using the Sort command in the contextual (right-click)
menu or in the Results menu
(example).
- Thanks to Matias Andina, the Image>Transform>Rotate command
can now be used interactiely.
- Thanks to Michael Schmid, added an "F" (Fit All) icon next to the "R" (Reset Range)
icon in the bottom-left corner of plot windows.
- Thanks to Robert Haase and Emanuele Martini, added
a "Don't reset range" checkbox to the "Threshold" dialog
(example).
- Added an error bars example to the
Help>Examples>Plots>Plot Styles macro.
- Alphabetized the Image>Stacks>Tools menu.
- Moved the Image>Stacks>Plot XY Profile command
to Image>Stacks>Tools>Plot XY Profile.
- Thanks to 'Barbara' and Michael Schmid, the Translate command in
the ROI Manager remembers the x and y offset values.
- Thanks to Alex Mironov, added an optional properties string
argument to the makePoint() macro function
(macro example,
JavaScript example).
- Thanks to Alex Mironov, the setLineWidth() macro function
automatically calls Overlay.add() when the line width changes
(example).
- Added the Plot.replace() macro function and method. For examples,
run Help>Examples>Plots>Random Data
or Help>Examples>JavaScript>Plot Random Data.
- Thanks to Michael Schmid, added an "Add Fit" commamnd to
the Data>> menu of Plot windows.
- Thanks to Laurent Thomas, ShortProcessor.rotate() and FloatProcessor.rotate()
now fill using the value set by setBackgroundValue().
- Thanks to Kai Barthel, the Analyze>Calibrate command
resets the display range of contrast-reduced images.
- Thanks to Norbert Vischer, the curve fitter now works with
datasets containing NaNs.
- Thanks to Michael Schmid, added the Plot.objectCount macro function.
- Thanks to Matias Andina, added the setOption("SupportMacroUndo",boolean) macro function
(example).
- Thanks to Michael Schmid, added a constructor for creating a plot
from arrays to the PlotContentsDialog class
(example).
- Added the ImagePlus.getSizeInBytes() and PointRoi.getLastCounter() methods.
- Thanks to Philippe Carl and Michael Schmid, fixed a bug that caused
the macro interpreter to incorrectly evaluate string expressions containing
numeric arrays indexed using the ++ operator.
- Thanks to Stein Rorvik, fixed a bug that caused the changeValues() macro
funtion to reset the display range of 16-bit and 32-bit images.
- Thanks to Alex Mironov, fixed a bug that caused setLineWidth(1)
in a macro to incorrectly set the line width to the width set in the
Edit>Options>Line Width dialog.
- Thanks to Michael Schmid, fixed a bug that caused the Undo command to
not work after rotating an image with "Enlarge image" enabled.
- Thanks to Matias Andina, fixed a bug that caused the Undo command to
not work after cropping or rotating a composite color image.
- Thanks to Michael Schmid, fixed a bug that caused nudging the end of a line
selection with alt-arrow keys to not update a live profile plot.
- Thanks to Mark Senko and Michael Schmid, fixed a bug that caused profile plots of line selections
wider than 1 to differ from profile plots of rectangles of the same size.
- Fixed a bug that caused DICOM images to be displayed incorrectly if "Open as 32-bit float"
was enabled in Edit>Options>DICOM.
- Thanks to Kenneth Sloan, fixed a bug that caused the Paintbrush Tool
(in "Paint on overlay" mode) to delete pre-existing overlays.
- Thanks to 'mountain_man', fixed a bug that caused the Rescale Slope
tag (0028,1053) to be ignored when opening DICOM images and
"Open as 32-bit float" was not enabled in Edit>Options>DICOM.
- Thanks to Fred Damen, fixed a file path recording bug that
caused a NullPointerException.
- Thanks to Michael Schmid, fixed a bug that caused buttons in
some dialogs (e.g., "B&C" and "Threshold") to not be displayed correctly
on macOS when using the Metal look and feel. Opening an Action Bar switches
to Metal or use Edit>Options>Look and Feel in Fiji.
- Thanks to Michael Schmid, fixed a bug that caused plot stacks to not be spatially calibrated.
- Thanks to Nicolas Stifani, fixed a 1.52h regression on Windows that caused
canceled dialog boxes in macros started using the
Plugins>Macros>Run command to throw an exception.
- Thanks to Jerome Mutterer, fixed a v1.52 regression that caused
the getMetadata() macro function (without the "info" or "label" argument)
to not work as expected.
Bob Goldstein
updated
the ImageJ tutorial (PDF) he wrote for
Make Magazine in 2011.
Jerome Mutterer updated the Magic Montage toolset to version 1.6:
- Worked around a v1.52 regression that caused the montage to
not be drawn correctly after it was expanded by dragging outside
the existing montage with the Montage Shuffler Tool.
- Added a "?" button that points to the wiki page.
- Panel labels are now drawn on an overlay.
- Added Hide Overlay, Show Overlay, Remove Overlay and Copy to System
commands to the contextual (right-click) menu.
- Upgrade by downloading
Magic Montage.ijm
into the ImageJ/macros/toolsets folder or install using the
Image>Stacks>Tools>Magic Montage Tools command.
Jacqueline Ross
shared the documentation
from the 28th New Zealand Conference on Microscopy.
Aleksandr Mironov contributed the
Buffon Needles macro,
which demonstrates the
Buffon's Needle Problem.
1.52h 16 October 2018
- Plot enhancements, thanks to Michael Schmid:
- "Save" in plot windows has moved into a new Data>> menu, which includes two additional items:
(1) Add from Plot (takes a PlotObject, e.g. data set, text, etc., from a different plot) and
(2) Add from Table (adds data from a "Results" table).
- Values in tables can be be plotted directly using the contextual menu or the
Results>Plot command in "Results" tables.
- Added the Separated Bar type, a bar graph with some space between the columns.
For an example, run Help>Examples>JavaScript>Plot Styles.
- Histogram-like "Bar" plots also work with non-equidistant points along x.
- Connected Circles fill the circles with the secondary color (= line color), if that color is given and not null.
- Improved the code for filling bars and "filled" curves.
- For "Bar" and "Separated Bar", the base line of the plot is y = 0 if the values differ by more than a factor of 2.
- Added the Help>Examples>Plots>Plot Styles and
...JavaScript>Plot Styles examples.
- The Edit>Selection>Create Mask command works
with overlays created by the Brush and Pencil tools.
- Added a "Help" button to the Brush and Pencil tool dialog boxes.
- Thanks to Gabriel Landini and Jerome Mutterer, the text tool now
creates an "Enter text..." selection when you click (without dragging)
on an image and there is no existing selection.
- Thanks to Gabriel Landini, the "Show on all slices" option (was "Show all")
now appears in both the point and multi-point tool dialogs.
- Thanks to Stein Rorvik, the Analyze>Tools>Synchronize Windows
tool now supports use of the "+" and "-" keys for synchronized zooming
when the "Image scaling" option is enabled.
- Thanks to Lorenzo Cangiano, added a "Points" column to the
Image>Overlay>List Elements table.
- Added the Plot.setStyle() macro function. For an example,
run Help>Examples>Plots>Plot Styles.
- Added the IJ.exit() method, which aborts JavaScripts.
- Thanks to Bio7, fixed a bug that caused images to turn black when
assigned an ImageRoi created by the Brush or Pencil tools.
- Thanks to Stein Rorvik, fixed bugs that caused
File>Open Next to sometimes fail when
opening images of dissimilar types.
- Thanks to Michael Schmid, fixed several bugs in
the Image>Adjust>Threshold tool, mostly related
to 32-bit images.
- Thanks to Michael Cammer and Michael Schmid, fixed a bug that
caused the "Propagate to the other n channels of this image" option of the
"Set" command in the "B&C" tool to not work as expected.
- Thanks to Stein Rorvik and Michael Schmid, fixed a bug that caused
an image pasted into a zoomed image to be incorrectly positioned
if the pasted image was equal or larger in size than the target image.
- Thanks to Stein Rorvik, fixed bugs that caused scale bars to be
incorrectly positioned on large images and macros to alter default
scale bar dialog settings.
- Fixed a bug that caused keyboard shortcuts for zooming in and
out, as well as other shortcuts, to not work when a text selection was active.
- Thanks to Stein Rorvik, fixed a bug that caused right-justified text
added to an overlay by the Overlay.drawString() macro function to
not be displayed correctly.
- Thanks to "hwada", fixed bugs that caused the ImagePlus.setImage(ImagePlus)
method to sometimes not work as expected.
- Thanks to Nathalie Houssin, fixed a bug that caused
the Make Substack command to throw an exception when used
with hyperstacks opened by the OlympusViewer plugin.
- Fixed bugs in the ImagePlus.setStack() method.
- Thanks to Michael Schmid, fixed a bug that caused the "Show All" button
in the ROI Manager to not work as expected with point selections.
- Thanks to Lorenzo Cangiano, fixed a bug that caused programmatically
generated overlays of PointRois on stacks to be not shown when saved
and reopened.
- Thanks to Robert Haase, fixed a bug that could cause
the PolygonRoi.getTracedPerimeter() method to throw a
NullPointerException.
- Thanks to Hyung-song Nam and Curtis Rueden, fixed a bug that caused
keyboard shortcuts to not work with the "Channels" tool.
- Thanks to Gilles Carpentier, fixed a 1.52f regression that caused
the Edit>Selection>Create Mask command to not
work as expected if the image had both an roi and an overlay.
- Thanks to Norbert Vischer, fixed a 1.52g regression that caused
multi-channel images to lose color table and display range
information after being cropped and saved.
- Thanks to Stephen Royle, fixed a 1.52h regression that caused the
Image>Transform>Rotate 90 Degrees Right (or Left)
command to not work as expected with composite images.
1.52g 16 September 2018
- A text selection in an overlay can be deleted by alt-clicking on
it and pressing backspace+delete (on Windows) or command+delete (on Macs).
- Fixed a bug that caused polygon and polyline selections to lose
properties like color, line width and name when a point is added by
shift-clicking on an existing point.
- Thanks to Dave Mason, fixed a bug that caused the
File>Import>URL command to not correctly
open Hyperstacks.
- Thanks to Volko Straub, fixed a 1.52f regression that caused
getDirectory("") on Windows to return a string ending in "/" instead
of the expected "\".
1.52f 7 September 2018
- Thanks to Norbert Vischer, added the Plot.addHistogram()
macro function, which plots a histogram from an array
(example).
- Thanks to Norbert Vischer, any currently running macro is aborted
when running an installed macro from the Plugins>Macros
menu or the editor's Macros menu.
- Thanks to Michael Schmid, added the "Error Function" [y=a+b*erf((x-c)/d)]
curve fit option and the ij.util.IJ.Math.erf(x) method
(example).
- The Edit>Selection>Create Mask command works
with line selections and overlays.
- The "Black background" setting defaults to 'true'.
- Thanks to Anna Povolna, the "Open all files in folder" and "Use virtual stack"
options in the File>Import>raw dialog can be used at
the same time.
- Thanks to 'Sethur', ImageJ no longer sorts imported DICOM
stacks by series number (tag 0020,0011) if "Sort images numerically"
is not checked in the File>Import>ImageSequence
dialog. Also added a recordable 'noMetaSort' option to the options
string of the FolderOpener.open(dir,options) method.
- Thanks to 'Alan', added the createThresholdMask()
and createRoiMask() methods to the ImagePlus class. These methods
are recorded when using the Edit>Selection>Create Mask
command
(JavaScript example).
- Added the recordable Raw.open(), Raw.openAll() and Raw.openAllVirtual() methods
(JavaScript example).
- Thanks to Stein Rorvik, added the DicomTools.getTagName(tag) method.
- Thanks to Christian Tischer, fixed bugs in the RoiManager.add(ImagePlus,Roi,int)
method than caused it to not behave as expected if the ROI name was not null.
- Thanks to Norbert Vischer, fixed bugs that caused the
Edit>Cut and Analyze>Set Scale commands
to not set the 'changes' flag.
- Thanks to Stein Rorvik, fixed a bug that caused the Overlay.drawString
macro function to ignore the justification set by the setJustification() function.
- Thanks to Stein Rorvik, fixed a bug that caused output of the
Overlay.drawString() function to be lost when text is added using
Overlay.addSelection().
- Thanks to Lorenzo Cangiono, fixed a bug that caused selections
pasted into images to not be saved.
- Thanks to Mahmoudi Sidi Ahmed, fixed a bug that caused the
Analyze>Calibrate command to not work with signed 16-bit images.
- Thanks to Menelaos Symeonides, fixed an ROI Manager bug that
caused the stack position to be ignored when measuring
renamed ROIs.
- Thanks to Ron DeSpain, fixed a bug that caused attempts to add to (by holding
shift key down) and subract from (by holding alt key down) elliptical
selections to fail.
- Thanks to Ron DeSpain, fixed a bug that caused the
Window>Tile command to overlap the "ImageJ" window
with image titles.
- Thanks to Pete Bankhead, fixed a bug the caused the
Process>Batch>Convert command to not work
correctly on Macs.
- Thanks to 'Hamish', fixed a bug that caused the roiManager("delete") macro
function to throw an exception when used in a loop.
- Thanks to Stein Rorvik, fixed a bug that caused one
column results tables to not be displayed correctly.
- Thanks to Stein Rorvik, fixed a bug that caused
File>Import>Raw to silently fail when importing a
stack and the file size was smaller than the size of a single image.
- Thanks to Stein Rorvik, fixed a bug that caused
the Overlay.drawString() macro function to not correctly
display right-justified text.
- Thanks to Stein Rorvik, fixed bugs that caused the
run("Raw...",options) and run("Image Sequence...",options)
macro functions to fail silently if the file or folder did not exist.
- Thanks to Stein Rorvik, fixed a bug that caused
the stack title to be incorrect after importing an image sequence
on Windows using a file path with forward slashes.
- Thanks to Stein Rorvik, fixed a bug that caused
File>Open Next to not correctly open a non-composite
image after having opened a composite image.
- Thanks to Ved Sharma, fixed an ROI Manager bug that
caused a "Rename ROI" dialog do be unexpectadly displayed
when running macro using setKeyDown("alt") and makeOval()
to create a composite selection.
- Thanks to Ved Sharma, fixed an ROI Manager bug that caused
an exception when saving an ROI set containing a point selection
followed by a composite selection.
- Thanks to Salim Kanoun, fixed a bug that caused
RoiManager.addRoi(roi) calls to be ignored if the ROI was
a duplicate.
- Thanks to 'TMC', fixed a bug that caused the
ROI Manager's "Interpolate ROIs" command to
throw an exception.
- Thanks to 'Agnieszka', fixed a bug that caused the ImagePlus.getFileInfo()
method to throw a NullPointerException.
- Thanks to Stein Rorvik, fixed a bug that caused the
Macros>Evaluate commands in the text editor
to not update the Window menu.
- Thanks to Norbert Vischer, fixed a bug that caused the macro editor
to not always abort any existing macro before running another one.
- Thanks to Manel Bosch, fixed a 1.52e regression that caused
image conversions to RGB to not preserve the color coding.
1.52e 11 July 2018
- The "Threshold" tool no longer resets the display range of 16-bit and 32-bit images.
- Restored the "Set" button (removed in 1.51r) to the "Threshold" dialog,
- Thanks to Kai Schleicher, the options string of the FolderOpener.open(dir,options)
method can now include a file name filter
(example).
- Added a no-argument constructor to the PointRoi class
(example at Help>Examples>JavaScript>Points).
- Added the Roi.size() method, equivalent to Roi.getPolygon().npoints.
- Added the FFT.forward(), FFT.multiply(), FFT.inverse() and FFT.filter() methods
(JavaScript example).
- The open("/path/to/file.avi") macro function and the IJ.openImage("/path/to/file.avi")
method now open AVI files by default as virtual stacks.
- Thanks to Volko Straub and Michael Schmid, fixed bugs that caused the
ImageProcessor.isInvertedLut() and ImageProcessor.isColorLut() methods
to sometimes incorrectly return 'true' with thresholded images.
- Thanks to Volko Straub, fixed a bug that could cause non-thresholded pixels in
16-bit and 32-bit images to be highlighted in red
(example).
- Thanks to Thomas Boudier and Jan Eglinger, fixed a bug that caused macro file name
parameters containing a "]" character to not be read correctly.
- Thanks to Michael Nonet, fixed a bug caused the median to always be set to zero
when measuring line selections.
- Thanks to Norbert Vischer, fixed a bug that caused errors after running the
run("RGB Stack") or run("HSB Stack") macro functions on large images when
running Java 8 on macOS.
- Thanks to Chris Wood and Curtis Rueden, fixed a bug that caused the
Image>Stacks>Delete Slice command to deadlock when deleting the
last channel of a hyperstack.
- Thanks to Stein Rorvik, fixed a bug that caused the Process>Math>NaN Background
command to throw an exception when attempting to process a non-32-bit stack.
- Thanks to Stein Rorvik, fixed a bug on Windows that caused text
to be pasted into text editor windows at the wrong position.
- Thanks to Stein Rorvik, fixed a bug that caused print("\n\n") to do
nothing instead of outputting two blank lines as expected.
- Thanks to 'mryellow', fixed a bug that caused polygonal ROIs with
more than 65,535 points to not be saved correctly.
- Thanks to Stein Rorvik, fixed a bug that caused right justified TextRois.
to not be displayed correctly if the fill color was not set.
- Thanks to Lorenzo Cangiano and Jan Eglinger, fixed a 1.52c regression
that caused a "Save changes?" dialog to be unexpectedly displayed when
closing an image with a multi-point selection.
- Thanks to Stein Rorvik, fixed a 1.52d regression that caused density
calibration to be lost when duplicating 8-bit and 16-bit images.
1.52d 11 June 2018
- The Image>Show Info command no longer truncates
one line slice labels to 60 charactera.
- Thanks to Norbert Vischer, the changeValues() macro function
can now be used to replace NaNs.
(example).
- Thanks to Mark Histed, when the shift key is down, the display
range is no longer changed when stepping forward/back in a stack.
- Thanks to Hugo, the Process>FFT command displays an error
message if the padded image is going to be 65536x65536 or larger.
- Thanks to Roger Leigh, the IJ.javaVersion() method works with Java 11.
- Added the IJ.Roi(x,y,w,h) and IJ.OvalRoi(x,y,w,h) methods.
- Thanks to Gregor and Michael Schmid, added the ImageProcessor.createMask() method
(example).
- Thanks to David Kysela, added the PointRoi.promptBeforeDeleting(boolean) method
(example).
- Thanks to Laurent Thomas, added the ImagesToStack.run(images) method
(example).
- Added the Tools.getStatistics(double[]) method.
- Thanks to Ximo Soriano and Michael Schmid, fixed a bug that could cause the
newImage("Name","RGB noise",width,height,1) macro function to throw an exception.
- Thanks to Ruben Gres, fixed a bug that caused the Overlay.duplicate() method
to not keep the 'isCalibrationBar' and 'selectable' settings.
- Thanks to David Schreiner, fixed bugs that caused the
File>Import>Image Sequence command to not correctly
handle image metadata longer then 60 characters.
- Thanks to 'yahbai', fixed bugs that caused the saveAs("jpg",path),
saveAs("gif",path) and Overlay.measure macro functions to not work
in headless mode.
- Thanks to 'yahbai', fixed a bug that caused the ImagePlus.deleteRoi()
method to throw an exception in headless mode.
- Thanks to Michael Kaul, fixed a 1.52a regression that caused
an EOFException when opening Analyze format RGB images.
- Thanks to Bill Christens-Barry, fixed a 1.52b regression that caused the
label set with the setMetadata("Label", label) macro function to not be displayed
in the image subtitle of single images.
- Thanks to Michael Cammer, fixed a 1.52c regression that caused
the Image>Crop command to not work as expected
with 16-bit images.
- Thanks to Peter Meijer, fixed a 1.52c regression that could cause
ClassCastExceptions when converting RGB images to stacks.
1.52c 20 May 2018
- Activating an ROI in an overlay created by Measure (with “Add to overlay" enabled),
or by the particle analyzer, selects the corresponding row in the "Results" table.
- ImageJ displays a "Delete Points?" dialog before deleting a multi-point selection
with counters.
- Thanks to "zzyzyman", fixed a bug that caused ImageJ to fail to open odd-width RGB AVI files.
- Thanks to Merijn van Erp, fixed a bug that caused the CurveFitter.getSortedFitList()
method to throw an exception.
- Thanks to Kees Straatman and Bill Christens-Barry, fixed a bug in the macro interpreter
that caused it to not detect a missing '[' after an array variable.
- Thanks to Mike, fixed a 1.52b regression that caused the AVI Reader to
fail with a "Required item ‘00ix’ not found" error.
- Thanks to Curtis Rueden, fixed a 1.51t regression that caused errors in
headless mode macros to throw a HeadlessException.
- Thanks to 'cortig' and Curtis Rueden, fixed a 1.52b regression that caused
the "Apply" option of the Image>Adjust>Threshold command to not
behave as expected with 16 and 32 bit images.
1.52b 6 May 2018
- Changed "Random" to "Noise" in the "Fill with:" choice of
the File>New>Image dialog box.
- Thanks to Christian Evenhuis, fixed a bug with the
Edit>Selection>Line to Area command that caused
the resulting area selection to translated if the source was a polyline
or freeline selection less than 5 pixels wide.
- Added the IJ.javaVersion() method.
- Thanks to Fred Damen, fixed bugs that caused the
Image>Stacks>Tools>Concatenate command
to sometimes not work as expected.
- Thanks to Aryeh Weiss and Michael Schmid, worked around a
Linux problem with large images not showing at low magnification.
- Thanks to Fred Damen, fixed bugs that sometimes caused
slices labels of single slice stacks to be lost.
- Thanks to BrainPatcher and Stefan Helfrich, fixed a bug
that caused the ROI Manager's "Multi Measure" command to
not work correctly with point selections.
- Thanks to "zzyzyman", fixed a bug that caused ImageJ to
fail to open AVI files that used the 'indx'/'ix00' indexing schema.
- Thanks to Moses, fixed a 1.52a regression that caused row
labels to be omitted from tables created by the ROI Manager's
"Multi Measure" command.
- Thanks to Jerome Mutterer, fixed a 1.52a regression that caused
imported Results tables to be displayed without row numbers.
1.52a 23 April 2018
- Thanks to Michael Schmid, added Apply Macro
commands to the Edit and contextual (right click pop-up)
menus of table windows.
Also added the ResultsTable.applyMacro() method
(JavaScript example).
- Thanks to Ron DeSpain, tables created by the Image>Overlay>List Elements
command can be renamed "Results" and the values accessed using the getResults()
and getStringResult() macro functions.
- Removed the obsolete Plugins>New>Table command. Macros
that use this command will continue to work.
- Thanks to Michael Kaul, added an optional 5th argument
('stepSize') to the Dialog.addSlider() macro function
(example).
- Thanks to Gabriel Landini, on Linux, added the
“Cancel button on right” option to the Edit>Options>Appearance
dialog box.
- The "showRowNumbers" property of the ResultsTable class now defaults to 'false'.
- Thanks to Adrian Daerr, when importing ".raw" files with dimensions encoded
in the name (e.g. "myfile-640x480.raw"), the byte order is set to
big-endian if the name ends in "be.raw" and to little-endian if the name
ends in "le.raw".
- Thanks to Arttu Miettinen, imported ".raw" files with dimensions encoded
in the name can have a width and/or height less than 10.
- Thanks to Stein Rorvik, added toScaled(x,y,z) and toUnscaled(x,y,z) macro functions.
- Added 20 macro functions that work with tables. They operate on the
current (frontmost) table or an optional title argument can be provided (e.g., Table.size("My Table")).
Examples: Sine/Cosine Tables,
Rearrange Table and
Access Tables.
- Table.create() - opens a new table
- Table.reset() - resets (clears) the table
- Table.size() - number of rows in the table
- Table.title() - title of the current table
- Table.headings() - column headings as a tab-delimited string
- Table.get(columnName, rowIndex) - returns a numeric value
- Table.getColumn(columnName) - returns a column as an array
- Table.getString(columnName, rowIndex) - returns a string value
- Table.set(columnName, rowIndex, value) - sets numeric or string value
- Table.setColumn(columnName, array) - sets an array as a column
- Table.update() - updates table window
- Table.applyMacro(macro) - applies macro code to table
- Table.rename(title1, title2) - renames a table
- Table.save(filePath) - saves the table
- Table.open(filePath) - opens a table
- Table.deleteRows(index1, index2) - deletes specified rows
- Table.renameColumn(oldName, newName) - renames a column
- Table.deleteColumn(columnName) - deletes specified column
- Table.showRowNumbers(boolean) - enable/disable row numbers
- Table.showArrays(titleAndOptions, array1, array2, ...) - displays arrays in a table (like Array.show)
- Thanks to Trevor Joyce and A Schain, added the macro-callable RoiManager.getIndexesAsString() method.
- Thanks to Michael Schmid, added the Tools.copyFile(path1,path2) method.
- Thanks to Salim Kanoun, added the RoiManager.setRoi(roi,index) and Overlay.set(roi,index) methods.
- Thanks to Fred Damen, fixed a bug that caused the SubHyperstackMaker.makeSubhyperstack()
method to not work when extracting a single frame.
- Thanks to Fred Damen and Michael Schmid, fixed a curve fitter
bug that could cause a NullPointerException.
- Thanks to Norbert Vischer, fixed a bug that caused the File.copy() macro
function to not preserve the modification date.
- Thanks to Philippe Carl, fixed a bug that caused the Image>Hyperstacks>Reduce Dimensionality
command to not preserve the "Info" image property.
- Thanks to Jan Eglinger, fixed bugs that caused the roiManager("open",path)
macro function to ignore the roi name and roiManager("save",path) not
to be recorded when 'path' ended in ".roi".
- Thanks to Norbert Vischer, fixed a bug that caused the Image Calculator to not correctly
calculate the result when the operation is MULTIPLY or DIVIDE, the 1st image is 8 or 16 bit,
the 2nd image is 32 bit and "32-bit result" is unchecked.
- Thanks to Mark Rivers, fixed a bug that caused ImageJ to not
correctly open some uncompressed planar RGB TIFFs.
- Fixed a 1.51s regression that caused statistical calculations on
small 16-bit images or selections to be much slower.
- Thanks to Michael Schmid, fixed a 1.51o regression that caused the particle
analyzer to hang when processong 32-bit images.
Version 1.51 23 April 2018 (download)
- 1.51w 13 March 2018
- Thanks to Stein Rorvik, added the setOption("InvertY",boolean) and
is("InvertY”) macro functions.
- Thanks to Pradeep Rajasekhar and Jan Eglinger, fixed a 1.51v regression
that caused the ‘OK’ and ‘Cancel’ buttons in the Bioformats importer dialog box
to be missing.
- 1.51v 9 March 2018
- Thanks to Norbert Vischer, extended the Plot class to make it
relatively simple to draw the x and y values on plots. For examples,
refer to Custom Plot Symbols and Bar Charts in
the Help>Examples>Plots menu.
- Thanks to Michael Schmid, added the Dialog.addToSameRow()
macro function, which makes the next item added to a GenericDialog
appear on the same row as the previous item
(example).
- Thanks to Salim Kanoun, added the Overlay.selectable(boolean)
method which can be used to make an overlay non-selectable
(example).
- Thanks to Salim Kanoun, added the Overlay.setLabelFont(font,true)
method, which causes labels in overlays to scale as the image is zoomed.
- Thanks to Michael Schmid, the GenericDialog class automatically
generates unique labels for macro recording.
- Thanks to Michael Schmid, on Linux, the "OK" button in
GenericDialogs is now on the right, as it is on Macs.
- Added a setFontSize() method to the MontageMaker class.
- Thanks to Michael Schmid, fixed a bug that caused symbols in plots to be
drawn at the left or bottom border if there was a NaN value.
- Thanks to Wilhelm Burger, fixed a bug on Java 9 that caused
Plugins>Compile and Run to not work with .class files
not in the default package.
- Thanks to Jerome Mutterer, fixed a 1.51u regression that caused macro calls
similar to newArray(a.length) to always return 1.
- Thanks to Rob Lees, fixed a 1.51u regression that caused
the close(pattern) macro function to close the ROI Manager if
'pattern' did not have a wildcard.
- Thanks to Norbert Vischer, fixed a 1.51u regression that caused
the close("\\Others") to not work.
- Thanks to Rob Lees, fixed a 1.51s regression that caused multi-point
deletion with “Show all” enabled to not function correctly.
- 1.51u 13 February 2018
- Thanks to Norbert Vischer, added support for plotting
rectangles, vertical and horizontal bar charts, and vertical
and horizontal boxes and whiskers. Use the Bar Charts
and Shapes commands in the Help>Examples>Plots
menu to see examples.
- Thanks to Norbert Vischer, zooming in and out of plot windows
using the "+" and "-" keys works better.
- Thanks to Norbert Vischer, added the
Help>Examples>Open as Panel command.
- Thanks to Norbert Vischer, added the Plot.appendToStack()
function. The Dynamic Plot and Dynamic Plot 2D macros in the
Help>Examples>Plots menu and the Dynamic Plot
script in the Help>Examples>JavaScript menu demonstrate
how to use it.
- Thanks to Norbert Vischer, added support for multi-line labels in plots.
For an example, see Help>Examples>Plots>BarCharts.
- Added the Help>Examples>Plots>Histograms
example macro, which demonstrates how to use the new
Plot.add("bars",x,y) macro function to draw histograms.
- The File>Save As>Gif command now works with RGB images
and stacks, saving stacks as animated GIFs
(example1,
example2).
- The Plugins>Utilities>Control Panel now requires
a double click to run a command.
- Thanks to Stein Rorvik, when moving the mouse pointer, or creating
a selection, on spatially calibrated images, the uncalibrated x and y pixel
coordinates are shown in parenthesis in the status bar.
- Thanks to Jerome Mutterer, the focus is reset to the
prompt when either the backspace or delete key is pressed
in the macro functions finder.
- Thanks to Norbert Vischer, the close(pattern) macro function
closes windows whose title matches 'pattern'. Non-image windows, like "Roi Manager"
have to be specified without wildcards. For text windows, wildcards are allowed if 'pattern'
ends with ".txt", ".ijm" etc. Use close(pattern, "keep") to
close only unchanged windows.
- Thanks to Michael Schmid, added the Recorder.fixString() method,
which is used to escape strings passed to the recorder.
- Thanks to Michael Schmid, the delete key on Windows keyboards
can be used as a substitute for backspace as a shortcut for the
Image>Clear command, for deleting ROIs from overlays and
for deleting lines in Results Tables and in the Log window. In addition,
the ',' key on european numeric keypads is mapped to the '.' key.
- Thanks to Norbert Vischer, added the Plot.drawShapes() and
Plot.drawGrid macro functions.
- Thanks to Gregory Jefferis, fixed a bug that caused the run("Scale...", "...")
macro function to fail in Fiji headless mode.
- Thanks to Stein Rorvik, fixed a bug that caused the min/max
constrast values to be lost when duplicating virtual stacks.
- Thanks to Michael Schmid, fixed a bug that caused incorrect
log x axis coordinates to be displayed at the bottom of plot windows.
- Thanks to Andrew Shum, fixed a bug that caused the
File>Batch>Macro and File>Batch>Virtual Stack
commands to not be correctly recorded.
- Thanks to Philippe Carl and Jan Eglinger, fixed a bug that caused the
newArray() macro function to fail if there were multiple arguments
and the first argument was not a number.
- Thanks to Stein Rorvik, fixed a bug on Windows that sometimes caused
strings to be pasted in the wrong position in text windows.
- Thanks to Michael Schmid, fixed a bug that caused the
Process>Filters>Variance command to sometimes
generate negative values with 32-bit images.
- Thanks to Tobias Starborg, fixed a bug that caused the
Image>Stacks>Animation>Animation Options
command to not work in batch mode macros.
- 1.51t 31 December 2017
- Thanks to Norbert Vischer, the Plot class now supports filled plots.
Run Help>Examples>Macro>Damped Wave Plot
to see an example.
- Thanks to Norbert Vischer, when a macro error occurs, the line
number is copied to the clipboard and the error message is
displayed in the "Debug" window.
- Added "Synthetic Images" and "Spiral Rotation" examples,
in Macro and JavaScript versions, to the Help>Examples menu.
- Added a "hidden" checkbox to the plot window
More>>Contents Style dialog.
- The Process>Math>Macro command and
the ImageProcessor.applyMacro() method automatically
add "v=" if it is missing.
- Thanks to Norbert Vischer, the seed set by the random("seed",n)
macro function is now used when creating images with random
content and by Process>Noise commands, allowing reproducible
test situations to be created
(examples).
- Thanks to Francois Gannier, the x and y-axis labels are used
as the first two column headings in the table created by the plot window
"List" command when these labels start and end with a space character.
- Thanks to Jan Brocher, fixed a bug that caused the
ColorThresholder.RGBtoYUV() method to not work as expected.
- Thanks to Stein Rorvik, fixed a bug that caused function key
and numeric kaypad macro shortcuts to not work as expected when
"Require control key for shortcuts" was enabled in
the Edit>Options>Misc dialog.
- Thanks to Christophe Leterrier, worked around a macOS High Sierra/APFS
bug that caused LUTs listed in the Image>Lookup Tables menu and file names
returned by the getFileList() macro function to not be sorted.
- Thanks to Michael Kaul, fixed a v1.51s regression that could cause ImageJ
to fail to quit properly if there was an Action Bar launched at startup.
- Thanks to Norbert Vischer, fixed a v1.51r26 regression that caused
the setBatchMode("show") macro function to not work as expected.
- 1.51s 5 December 2017
- Thanks to Philippe Carl, added support for diamond symbols
to the Plot class.
- Added the Help>Examples>JavaScript>Event Listener example.
- Incresed the default plot size from 450x200 to 530x300.
- Thanks to 'graukatze', line length measurements are now much
faster when all measurements are disabled in the
Set Measurents dialog.
- Thanks to Jean Christophe Taveau, ECMAScript 6
is used when running JavaScript code
on Java 9
(more info).
- Thanks to Ron DeSpain, the File.directory() macro function
(OpenDialog.getLastDirectory() method) now returns the path to
the directory that a macro was loaded from.
- Thanks to Lorenzo Cangiano, fixed a bug that could cause the
"Apply" button in the Image>Adjust>Brightness/Contrast
dialog to throw an exception with 16-bit images.
- Thanks to Rob Lees and Jan Eglinger, fixed a bug that, when
deleting a point from a point selection on a stack, could cause
an overlaping invisible point in another slice to be deleted.
- Thanks to 'WaDoMa', fixed a bug that caused
ImagePlus.setAntialiasRendering() calls to be ignored
when rendering arrows in flattened images.
- Thanks to Jean Christophe Taveau, fixed a bug that caused scripts
installed in the plugins menu to be aborted if the user clicked
"Cancel" in a GenericDialog.
- Thanks to Klaus Michel, fixed a bug that caused the ROI Manager's
More>Translate command to not work correctly if
one of the ROIs being translated was active.
- Thanks to Stein Rorvik, fixed bugs that caused
the RunAtStartup, AutoRun and
command line macros to interfere with each other, causing
&variable expansion in run() calls to not work. To avoid
this interference, the RunAtStartup macro (created by
Edit>Options>Startup), the AutoRun
macro (in StartupMacros) and command line macros now
all run on the same thread.
- Thanks to Stein Rorvik, fixed a bug that caused the Startup Macros
command in the >> toolbar menu to not work as
expected if the StartupMacros file had an ".ijm" extension.
- Thanks to Alban Favre and Jan Eglinger, fixed a bug that
caused the getResult() macro function to not work with tables created
by plugins using the ResultsTable.setValue(column,row,value) method.
- Thanks to Stein Rorvik, fixed a bug that caused forward slash
separators to not work with default directories on Windows.
- Thanks to Adrian Daerr, fixed a bug that caused raw virtual stacks to
be opened incorrectly if the number of images specified in the dialog
was greater than the actual number of images.
- Thanks to 'tigers1964', fixed bugs that sometimes caused
File>Import>Raw to not correctly zero fill when
the specified image size was greater than the file size.
- Thanks to Michael Kaul, fixed a bug that caused the
ImagePlus.setProcessor() method to sometimes not
work as expected with stacks.
- Thanks to 'graukatze', fixed a bug that caused Plot Z-axis Profile,
in "Live" mode, to interfere with the Measure command.
- Thanks to Bjorn Marsen, fixed a v1.51 regression that caused
run("Set Measurements...","...") to reset the measurement
counter when used in a macro run from the command line using
the -batch option.
- 1.51r 15 October 2017
- 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.
- 1.51q 18 September 2017
- Plot enhancements, thanks to Michael Schmid:
- Plots saved as tiff or zip include the data, so the plot range can be modified (zooming, etc.)
and the data can be listed after loading the plot from a file.
- Changing the axis or label font size of a plot keeps the image size constant
and modifies the plot frame size (previously, the plot frame size was constant).
- Slightly more space for numbers at the left, enough for scientific notation. ImageJ switches
to a smaller font if more significant digits are required.
- Added Plot.getFrameBounds(x, y, width, height) macro function.
- The default font for plots is now Arial, not Helvetica (Arial is available on more platforms).
- When opening a plot on a computer where a given font is not available,
try to replace fonts by similar ones. This should make the appearance on
different platforms more similar.
- The ImageProcessor getStringWidth() and getStringBounds() methods
use the more accurate GlyphVector class.
- Thanks to Norbert Vischer, the Edit>Selection>Straighten
and Image>Duplicate commands work
with rotated rectangle selections.
- Thanks to Jerome Parent, added the
Image>Stacks>Plot XY Profile command.
- Thanks to Jerome Parent, added a "Show unit" checkbox to the
Analyze>Tools>Calibration Bar dialog box.
- Thanks to Stein Rorvik, newly opened editor windows are larger and,
on Linux and Windows, are less likely to cover the main ImageJ window.
- Thanks to Norbert Vischer, added a "Smooth if thresholded"
option to the Wand tool dialog
(example).
- Thanks to Kenneth Sloan, added a recordable ZProjector.run() method
(examples).
- Thanks to Norbert Vischer, added the makeRotatedRectangle(x1,y1,x2,y2,width)
macro function.
- Thanks to Norbert Vischer, added the List.toArrays(keys,values),
List.fromArrays(keys,values) and List.indexOf(key) macro functions.
- Thanks to Max Leiter, fixed a bug that caused RoiListeners to not be
notified when an ROI was created.
- Thanks to Alvaro Folgado, fixed an OS X command injection
vulnerability in the BrowserLauncher.
- Thanks to Alison Walter, fixed a bug that caused the "Spline fit"
checkbox in the "Line Width" dialog to convert angle selections to polygons.
- Thanks to Chris Lamb, fixed a typo in MemoryMonitor.java where a
constant that should have been 1024 was 1204.
- Thanks to Norbert Vischer, fixed a bug in the Array.resample() macro
function that caused it to throw an exception if the langth of the input
was 0 or 1.
- Thanks to John Loveland and Lukas Kvasnica, fixed a v1.51o
regression that caused plugins that create virtual stacks without
implementing the VirtualStack class to throw an exception.
- Thanks to Tim Huang, fixed a bug that caused the Image>Overlay>Flatten
command to not work correctly with high-resolution images.
- Thanks to Norbert Vischer, fixed a bug with the Debug>Abort command in
the macro editor that caused it to display a bogus error message.
- Thanks to Stefan Helfrich and Azman Rashid, fixed a bug that caused ImageJ
to not correctly read TIFF files created by the Bfconvert command line tool.
- Thanks to Jan Eglinger, fixed a bug that caused the popup menu
(e.g. right-click > Rename...) and the "Dev" menu tool to not get recorded.
- Thanks to Sethur, fixed a bug that caused scroll wheel zooming
in image stacks (enabled using control or shift key) to not work correctly.
- Thanks to Steffen Schmidt, fixed a bug that caused scale bars
to not be correctly positioned with large font sizes.
- Thanks to Vanessa King and Jan Eglinger, fixed a bug that caused the
"List" option in plot windows to sometimes not list all X columns when
the columns differed in length.
- Thanks to Carne Draug, fixed several problems related to building
the ImageJ Debian package.
- Thanks to Salim Kanoun, fixed a bug that caused overlay titles
to be selectable when a new ROI was being constructed.
- Thanks to Norbert Vischer, fixed a bug than caused the
Analyze>Gels>Select Next Lane command
to sometimes create duplicate plots.
- Thanks to Michael Kaul, fixed a v1.51o regression that caused the
ImagePlus.flatten() method to be much slower.
- Fixed a 1.51e regression that caused the "Auto" buttion in the
Brightness/Contrast dialog to not increase contrast with repeated clicks.
- 1.51p 22 June 2017
- When adding a hyperstack ROI to the ROI Manager, the channel position
is set to 0 (display in all channels) if the display mode is "Composite".
- Added the setOption("ConvertToMicrons",boolean) macro function. When this
option is set, units in TIFF images are converted to microns if the pixel width
is less than 0.0001 cm.
- Thanks to Norbert vischer, worked around a bug in Java 8 on OS X that
sometimes caused painting of GenericDialogs to be incomplete.
- Thanks to Rainer Engel, fixed a bug that caused macros that
passed variables using "&" notation to fail if they used the
Process>Math>Macro command to process a stack.
- Thanks to Philippe Carl, fixed a 1.51o regression that sometimes
caused ImageJ to freeze on Windows when opening or processing
images.
- 1.51o 7 June 2017
- Added a Command Finder tool to the >> toolbar menu.
- Thanks to Hermann-Josef Roeser, histograms of RGB images are now
labeled with the histogram type ("Intensity (weighted)", "Intensity (unweighted)"
or "R+G+B") and the "RGB" button cycle includes these three histogram types.
- Updated the VirtualStack class to support frequency domain FFT images
(example macros).
- Worked around bugs with Windows 10 Creators Update that caused the
file open dialog to freeze and the "ImageJ" window to be taller than normal.
- Thanks to Michael Kaul, added the Roi.setPosition(ImagePlus) method.
- Worked around a bug with Java 8 on Mac OS X that caused the buttons
in histogram windows to be partially hidden.
- Thanks to Wilhelm Burger and Tiago Ferreira, fixed a bug that caused
coordinates used by the ImageProcessor.getLine() method to retrieve
pixel values to be offset by 0.5 pixel when interpolation was not enabled.
- Thanks to Wilhelm Burger, fixed a bug that caused the ImageProcessor.setColor()
method to ignore RGB component weights when setting the associated
drawing (i.e., gray) value of non-RGB grayscale images.
- Thanks to Robert Atwood, fixed a bug that caused the "Auto" option
in the Image>Adjust>Threshold tool to sometimes not work as
expected with 16-bit stacks.
- Thanks to Christian Tischer, fixed a bug that caused the
Image>Transform>Bin command to change the
calibation of the source image.
- Thanks to Theresa Swayne, fixed a bug that caused the ROI Manager's
Multi-Measure command (in "append" mode) to not reset its saved results
when the Results Table was cleared.
- Thanks to Norbert Vischer, fixed a bug that caused screen updates of
images with complex overlays to be very slow with Java 8 on Mac OS X.
- Thanks to Don Levin, fixed a bug that caused the File>Save As>PGM
to not correctly save 16-bit images.
- Thanks to Rob Beetel, fixed a regression that caused the ROI to be
deleted after using "Apply" on RGB images in the Brightness/Contrast,
Window/Level and Color Balance dialogs.
- 1.51n 1 May 2017
- Fixed a 1.51m regression that caused the "+" command
(Image>Zoom>In) to sometimes not work as expected.
- 1.51m 30 April 2017
- Images are scaled to fit when windows are resized.
- Added the Image>Zoom>Maximize command.
- Thanks to Agathe Robisson, added a "Center grid on image"
checkbox to the Analyze>Tools>Grid dialog.
- A Plugins>Why are Plugins Missing? command
is added to the Plugins menu if plugins were not loaded
due to macOS
Path Randomization.
- Added the Help>Examples>JavaScript>TeraByte VirtualStack
example script.
- Changed the default extension when saving tables from ".xls" to ".csv"
(coma-separated values) and added support for opening and saving tables in
".tsv" (tab-delimited values) format.
- The Macros>Evaluate JavaScript command in the text editor
now respects the "use strict" directive (Java 8 only) to indicate that the code
should be executed in "strict mode". In strict mode, you can not, for example,
use undeclared variables.
- Thanks to Michael Schmid, the Analyze>Plot Profile command
remembers whether the alt key was down (used for verticall plotting) when
initialized so "Live" plots continue to be vertical.
- Thanks to Michael Schmid, the AVI Reader tries to recover data from truncated files.
- Thanks to Jerome Mutterer, added the setOption("SaveBatchOutput",false)
macro function, which can be used in Process>Batch>Virtual Stack
macros to prevent slices from being written to the output virtual stack.
- Thanks to Stephan Preibisch, removed the limit of 25 sliders in GenericDialogs.
- Thanks to Norbert Vischer, added the Array.rotate() and
Array.getVertexAngles() macro functions and added an optional
edgeMode argument to the Array.findMaxima() function
(example1,
example2,
example1).
- Added the Roi.hasHyperStackPosition() method.
- Thanks to Stefan Helfrich and Mojo Dodo, fixed a bug that caused the
Image>Color>Arrange Channels command to not
close the source image in batch mode macros.
- Thanks to Robert Dougherty, fixed a bug that caused the "Overlay"
checkbox in the Analyze>Tools>Calibration Bar dialog
box to not be remenbered.
- Thanks to Robert Dougherty, fixed a bug that caused the backgrounds
of scrollbars to be white when running on Windows 10 and Java 6.
- Thanks to Martin Hohne, fixed a bug that caused the
run("Point Tool...", "...") macro function to not work as expected.
- Thanks to Stefan Helfrich, fixed a bug that caused the GroupedZProjector to always
generate a time series regardless of the input stack format.
- Thanks to lcsglvr, fixed a bug that caused slow drawing of 16-bit and 32-bit multi-channel
composite color images in "Color" mode.
- Thanks to Michael Schmid, fixed a bug in the AVI Reader that caused the file to not be
closed in case of a cancelled dialog or some IO errors.
- Thanks to Wilhelm Burger, fixed bugs with the PointIterator on line
and point selections that caused incorrect point coordinates to be returned.
- Fixed a bug on Mac OS X that caused the position of the "ImageJ" window
to not be remembered if it was located partially offscreen to the right.
- 1.51k 1 March 2017
- Added the Plugins>Utilities>Capture Delayed command.
- Thanks to Yaman al-Yousof, added Macro and JavaScript
"Custom Measurement" examples to the Help>Examples
menu.
- Added this note to the Help>Examples>Macro>Sphere
example:
"JavaScript on Java 8 runs this code 30 times faster than
the macro language when 'size' is set to 4096."
- Thanks to Norbert Vischer, worked around OSX/Java 8 bugs that caused
the toolbar to not be updated after clicking on a new tool with the recorder
running, caused newly opened image windows to obscure the ImageJ
status and progress bars and caused the selectImage() macro function
to sometimes be very slow.
- Thanks to Florian Jug and Curtis Rueden, fixed a bug that caused ImageJ
to incorrectly open TIFF stacks created by Bio-Formats.
- Thanks to Stein Rorvik, fixed bugs that caused Windows file paths
starting with "C:/ to not work in the open() and runMacro() macro functions.
- Thanks to Stein Rorvik, fixed bugs that caused min/max values to be lost when
resampling virtual stacks.
- Thanks to Stein Rorvik, fixed a bug that caused z-scaling of 8-bit stacks to not
retain the min,max contrast setting.
- Thanks to Stein Rorvik, fixed a bug that caused Edit>Selection>Rotate
to not work for straight line selections if "Rotate around image center" was enabled.
- Thanks to Stefan Woerz, fixed a bug that caused profile plots to not be
displayed if the min and max pixels values were non-zero and equal.
- Thanks to Volker Baecker, fixed a bug that caused the
print("[text-window]", "...") macro function to not work as expected if
"text-window" had been saved and re-opened.
- Thanks to Puifai Santisakultarm, fixed a bug that caused the
IJ.run(imp,"RGB Color","") method to not work as expected with
non-displayed images.
- Thanks to Michael Cammer, fixed a bug that caused the run("3D Project...",options)
macro function to not work reliably with hyperstacks.
- Thanks to Edward Muir and and Curtis Rueden, fixed a bug that caused
the "Out of memory" error message to incorrectrly report the amount
of available memory.
- 1.51j 4 February 2017
- Added the Rotated Rectangle selection tool.
- Added the Edit>Detab command and the
Edit>Tab Key Inserts Spaces Checkbox menu
item to the text editor;
- Thanks to Stein Rorvik, added the Macros>Evaluate Macro command
to the text editor.
- Thanks to Jerome Mutterer, added the Help>Examples>Macro>Star Tool
example macro tool, just in time for this holiday season.
- Thanks to Michael Schmid, the File>New>Image command
displays a progress bar when creating single RGB images filled with noise.
- Added JavaScript and Java "plasma cloud" recursion examples
to the Help>Examples menu, based on
PlasmaCloud.java, from the book
Introduction to Programming in Java
by Robert Sedgewick and Kevin Wayne.
- Thanks to Michael Schmid, added the "Save window locations" option
to theEdit>Options>Misc dialog (only on Linux). Enable
this option to workaround a bug with some Linux window
managers that causes windows to wander down the screen when
they are repeatedly opened and closed.
- Added the random("gaussian") and Overlay.measure macro functions.
- Added the Roi.setStrokeColor(r,g,b), Roi.setStrokeColor(rgb),
Roi.setFillColor(r,g,b) and Roi.setFillColor(rgb) macro functions.
- Thanks to Norbert Vischer, add the
getBoolean(message, yesLabel, noLabel) macro function.
- Added the ImageProcessor.fillRect() method.
- Added the Overlay.measure(ImagePlus) method.
- Thanks to Michael Schmid, the ColorProcessor.filter(type) method supports
the additional types FIND_EDGES, MEDIAN_FILTER, MIN and MAX.
- Thanks to Norbert Vischer, fixed a bug that caused the particle analyzer
to be very slow in batch mode macros if the "Add to manager" option was
enabled.
- Thanks to Michael Schmid, fixed a bug that caused
Process>Smooth to not process the edges.
- Thanks to Salim Kanoun, fixed a bug that caused the getMetadata("info")
macro function to sometimes not work as expected with stacks.
- 1.51h 9 November 2016
- Thanks to Stein Rorvik, the Image>Stacks>Z-axis Profile and
Image>Stacks>Tools>Make Substack commands
display a progress bar if the stack has more than 400 slices or
is a virtual stack.
- Thanks to Christiane, the Results table, for each point in a multi-point selection,
displays the counter associated with the point and the count for that counter.
- A selection in an overlay can be activated by double clicking the corresponding
row in the Image>Overlay>List Elements list.
- Thanks to Michael Schmid, added the Prefs.splineFitLines flag, set by the
"Spline fit" checkbox in the "Line Width" dialog, opened
by double clicking on the line tool icon.
- Thanks to Thorsten Wagner, TIFF files with cm units are now
converted to µm units if the pixel width is less than 0.0001 cm.
In earlier versions of ImageJ they were only converted when
importing an image sequence as a virtual stack.
- Thanks to Gilles Carpentier, error messages displayed by the
Plugins>Compile and Run command now include
ImageJ, Java and OS version information.
- Thanks to Stein Rorvik, added the setOption("AntialiasedText",boolean) macro
function and the TextRoi.setAntialiasedText(boolean) method, which control
the "Antialiased text" option in the Edit>Options>Fonts dialog.
- Thanks to Avital Steinberg, fixed a bug that caused the
ImageProcessor.getStatistics() method to sometimes not work
as expected with ShapeRois.
- Thanks to krami79, fixed a bug that could cause an exception
when closing a live plot window.
- Thanks to Jan Eglinger, fixed a bug that could cause plugins and scripts
using the GenericDialog.getMessage() method to throw an exception.
- Thanks to Norbert Vischer, fixed a bug that caused dots in
plots to be drawn outside the frame.
- Thanks to Ron Paletzki, fixed a bug that caused Image>Scale
and Image>Adjust>Size to not work as expected with
z scale factors less than 0.5 when Interpolation was set to None.
- Thanks to Gilles Carpentier, fixed a 1.50i regression that caused
the Edit>Selection>Enlarge command to sometimes not
work as expected when shrinking very small selections.
- 1.51g 22 September 2016
- Thanks to Michael Schmid, added the Image>Adjust>Coordinates
command, which allows the user to set the corner coordinates of the selection bounds
or the full image. This modifies the image scale (pixelWidth, pixelHeight) and the xOrigin, yOrigin.
If a single point is selected, the coordinates of the point can be specified, which only
sets xOrigin and yOrigin. The units for x and y can be also selected.
- Thanks Marcel Krzan, increased the font size in GenericDialog text areas
(Options>Startup, Analyze>Calibrate, Filters>Convolve
and Batch>Macros) to 14 points.
- Thanks to Thomas Boudier, when creating a new stack, a status message
and progress bar are only displayed when the stack is 250 MB or larger.
- Thanks to Norbert Vischer, added the List.setMeasurements("limit")
macro function.
- Thanks to Curtis Rueden, fixed a bug that caused the
run("From ROI Manager") macro function to not transfer the
selection positions to the overlay.
- Thanks to Jinghan Chen, fixed a bug that caused the multi-point tool to
sometimes fail when using multiple counters.
- Thanks to Curtis Rueden, fixed bugs that caused the
"Run single instance listener" option in Edit>Options>Misc
to not work as expected.
- 1.51f 17 August 2016
- Thanks to 'mls' and Jan Eglinger, the Image>Stacks>Tools>Combine
command now works with hyperstacks.
- Thanks to Eduardo Kropnick, fixed a 1.51e regression that caused the
List.setMeasurements macro function to not work as expected.
- 1.51e 5 August 2016
- Added a "Don't set Mac menu bar" option to the
Edit>Option>Misc dialog. When this option
is set, ImageJ does not set the ImageJ menu bar when
image windows are activated.
This may prevent ImageJ from becoming unresponsive due to setMenuBar()
becoming slower and slower over time. To recover the menu bar, click on
the "ImageJ" window or press return, the shortcut for the
Window>Main Window command.
- When running Java 8 on OS X, the "Don't set Mac menu bar" option
in Edit>Option>Misc is automatically set when it the
setMenuBar() method takes more than two seconds.
- Thanks to Gabriel Landini, when selecting rectangular ROI handles, the
buffer zone is larger on screens wider than 1280 pixels.
- Thanks to Patrick Darby Parker, plot windows created by macros
calling run("Plot Z-axis Profile") now include a "Live" button.
- Thanks to Philippe Carl, the Plugins>Compile and Run command
adds jar files in the plugins/jars folder with "_" in their names to the javac classpath.
- Added the ImagePlus.crop() method
(example).
- Thanks to Jean-Yves Tineves, added the VirtualStack(width,height,slices)
constructor that creates a virtual stack with no backing store
(example).
- Thanks to Ignacio Garcia Gonzalez, fixed a bug that caused ROIs with
coordinates greater 65535 to be corrupted when saved and reopened.
- Thanks to Jens Kriese, fixed a bug that caused the slices of
new "Random" stacks to be copies of the first slice.
- Thanks to Ondrej Sebesta, fixed a bug that caused the roiManager("Select",index)
macro function to fail if setKeyDown("Shift") was previously called.
- Thanks to Marcel, fixed a bug that caused the "Propagate to all open images" option
in the "Set" dialog of the Image>Adjust>Window/Level widget to fail.
- Thanks to Philippe Carl, fixed a bug that caused the
Image>Stacks>Tools>Concatenate command
to not be correctly recorded when the Recorder was not in "Macro" mode.
- Thanks to Jan Eglinger, fixed a bug that caused the
Image>Color>Channels Tool widget to not work
as expected in "Color" mode when using Java 8 on Mac OS X.
- Thanks to Steve, fixed a bug in the Image>Stacks>Make Montage
command that caused it to not work as expected if "Border width"
was greater than 0.
- Thanks to Michael Schmid, fixed a bug that caused the ImageCanvas.setSourceRect()
method to sometimes modify the Rectangle passed to it.
- Thanks to Michael Schmid, fixed a bug that caused the ImageJ menu bar
on Mac OS X to disappear when cliking on the "B&C" window to activate it.
- Thanks to Stefan Helfrich, fixed a bug that caused inconsistent handling
of the animation rate if it was set to less than 0.1 fps.
- Thanks to Stefan Helfrich, fixed a bug that caused the
Image>Stacks>Label command to not work as
expected with hyperstacks if the "Use overlay" option was enabled.
- Thanks to Gabriel Landini, fixed a v1.51d regression that caused the
ImagePlus.getStatistics() method to be much slower.
- Thanks to Jean-Yves Tineves, fixed a v1.47 regression that caused
overlays to not work with custom virtual stacks.
- Thanks to jbrazill and Jan Eglinger, fixed a regression that caused the
Image>Overlay>Flatten command to not
work with non-RGB images without a selection or overlay.
- 1.51d 16 June 2016
- Fixed a bug that caused the Measure
command to ignore the "Invert Y coordinates" setting in Analyze>Set Measurements
when measuring the centroid of stright line selections.
- Thanks to Aleksandr Mironov, fixed a bug that caused the multi-point tool to
fail when creating a second multi-point selection.
- Thanks to Nuno Martins, fixed a 1.51b regression that caused the
run("Duplicate","duplicate") macro function to not work as expected
when operating on stacks.
- 1.51c 7 June 2016
- Thanks to A Schain, the Plugins>Macros>Startup Macros
command opens StartupMacros.fiji.ijm if StartupMacros.txt or
StartupMacros.ijm are not found.
- Thanks to Eduardo Kropnick, fixed a 1.51b regression that caused the
List.setMeasurements macro function to fail.
- 1.51b 5 June 2016
- Thanks to Gabriel Landini, when using Image>Duplicate to
duplicate a single slice of a stack, the title of the resulting
image is derived from the slice label.
- Added the Help>Examples>JavaScript>Gamma Adjuster
example script, which demonstrates how to interactively update an image
that has been added to a GenericDialog.
- Thanks to Ralph Albuquerque, the "Add to overlay" option
in Analyze>Set Measurements now causes the
overlay elements to be labeled by default.
- Thanks to Curtis Rueden, replaced the Command Finder tooltips, which
could cause an exception, with a "Help" button.
- Thanks to Alex Doe, the GenericDialog.repaint() method now
repaints images that have been added to the dialog
(example).
- Thanks to Joe Pickard, the backspace (delete) key is ignored in
the Gel Analyzer to prevent inadvertent erasure of the contents of
the selection rectangle.
- Added the ImagePlus.getRawStatistics(), ImageStatistics.getStatistics(ip)
and ImageProcessor.getHistogram(nbins) methods.
- Thanks to Jerome Mutterer, fixed a bug that caused Roi change listeners
to not be notified when a line's width was adjusted and a bug that caused
Analyze>Measure to report incorrect values for 'min' and 'max'
when "Limit to threshold" was enabled and 'area' was zero.
- Fixed a bug that made it impossible to unset "Show labels"
in the Image>Overlay>Labels dialog box
if "Use names as labels" was enabled.
- Thanks to Jerome Mutterer, fixed a bug that caused
the Roi.getContainedPoints() macro function and
Roi.getContainedFloatPoints() method to throw
exceptions with rectangular selections.
- Thanks to Ezemiron, fixed a bug that caused the
Image>Scale command to throw an exception
when processing a stack with an overlay.
- Thanks to Curtis Rueden, fixed bugs that caused
Image>Overlay>Add Image to not set
the stack position and Image>Scale to
not correctly scale ImageRois in overlays.
- Thanks to Robert Haase, fixed a bug that caused the
Edit>Selection>Create Selection command to
throw an exception on Java 8 if there were no thresholded pixels.
- Thanks to Ondrej Sebesta, fixed a bug that caused the
File>Open Next command to sometimes incorrectly
preserve the isHyperstack flag.
- Thanks to Ondrej Sebesta, fixed a bug that caused macro
code recorded by the Plugins>Shortcuts>Add Shortcut
command to not work as expected if the command name
contained brackets (e.g., "In [+]").
- Thanks to Arttu Miettinen, fixed a bug that caused garbage results
when perfprming multiple simultaneous reslice operations.
- Thanks to Elton Rexhepaj, fixed a bug that caused the ChannelSplitter
to create ImageStacks with non-working getVoxel() methods.
- Thanks to Arttu Miettinen, fixed a bug that could cause
the IJ.d2s() method to throw an exception.
- Thanks to Wilhelm Burger, fixed a bug that caused the ImageProcessor.drawDot()
method to not remove the ROI that it sets.
- Thanks to Matthias Kirsch and Curtis Rueden, fixed 1.50d regressions
that caused the Edit>Selection>Create Selection and
Edit>Selection>Enlarge commands to not work
correctly with multi-point selections.
- 1.51a 3 May 2016
- Thanks to Michael Schmid, added a plot window dialog called by More>>Contents Style
that allows users to modify the color, line thickness and symbol (line/dots/crosses/circles, etc.) of plot curves.
- Thanks to Wilhelm Burger and Dimitri Vanhecke, added the Roi.getContainedPoints()
macro function, Roi.getContainedPoints() method and Roi.getContainedFloatPoints() method
(macro example,
JavaScript example).
- Thanks to Wilhelm Burger, Java plugins can now iterate over
the points contained in a selection using
"for (Point p : roi) {//process}"
(example).
- Thanks to Avital Steinberg and Jan Eglinger, the ImageProcessor.getStatistics()
method now calculates all statistics.
- Thanks to Elton Rexhepaj, the ImageStack.getVoxel(x,y,z) method now
throws an IndexOutOfBoundsException if x, y or z are beyong the stack limits.
- Thanks to Michael Schmid, added the ImageProcessor.isSigned16Bit() method.
- Thanks to Ved Sharma, fixed a bug that caused the Image>Stacks>Combine
command to not maintain the calibration of the source images.
- Thanks to Elton Rexhepaj, fixed a bug that caused the ImageProcessor.getRoi()
method to return an empty rectangle with FloatProcessors created using
the FloatProcessor(int[][]) constructor.
- Thanks to moreglia, fixed a bug that caused an exception when saving FFTs of
RGB images in TIFF format.
- Thanks to Marton Gulyas, fixed a bug that caused overlays to not work as
expected on AVI virtual stacks.
- Thanks to Curtis Rueden, fixed a bug that sometimes caused
macros to not be correctly terminated when an error occurred.
- Thanks to Greg Reneff, fixed a v1.50d regression that caused
Process>Math>Macro to not work as expected with
signed 16-bit images.
Version 1.50 26 March 2016 (download)
- 1.50i 26 March 2016
- The ImageJ website
(imagej.nih.gov/ij)
will soon start using encryption incompatible
with Java so sample images and updates are now downloaded from
wsr.imagej.net
and URLs used to open images and text files
are redirected to
mirror.imagej.net.
- Thanks to Thorsten Wagner, added the is("global calibration") macro function.
- Thanks to Philippe Carl, added the RoiManager.rename(index,name) method.
- Thanks to Nicolas Cedilnik and Mark Hiner, fixed a bug that could cause an
exception when saving a virtual stack.
- Thanks to Kees Straatman, fixed a bug that caused the ROI Manager's "Multi Measure"
command to sometimes not work as expected when the "append" option was used.
- Fixed a bug that caused the "Decimal Places" field in the Analyze>Set Measurements
dialog to be ignored after the value was set to zero.
- Thanks to Stein Rorvik, fixed a 1.50d regression that caused duplicated images
to lose their density calibration.
- 1.50h 14 March 2016
- Thanks to Tiago Ferreira, improved the Command Finder
(Plugins>Utilities>Find Commands).
- Resizable and reduced screen "footprint"
- Auto-scrolling using keystrokes
- Tooltip that hints at navigation shortcuts
- Scriptable
- Thanks to Ajay Sood, the ROI Manager's OR (Combine) command now
uses a progress bar and runs on a separate thread.
- Thanks to Philippe Carl, the Converter class, which mplements the commands
in the Image>Type submenu, now displays a messaged in the "Log"
window if the image is locked. This error is typically caused by plugins that
mistakenly implement the PlugInFilter interface and call IJ.run() methods.
- Thanks to Norbert Vischer, the Window>Tile command
displays an errow message if there is an unfrozen plot window open.
To freeze a plot wondow, use the More>>Freeze Plot command.
- Thanks to Gabriel Landini, the image size shown in the Window
menu is updated when the image is converted to a different type.
- Thanks to Norbert Vischer, the Dialog.addNumber("Prompt:",NaN)
function now creates a blank field instead of showing "NaN".
- Thanks to Norbert Vischer, added the Plot.setBackgroundColor()
macro function (example).
- Added the ij.plugin.ImageInfo class as a replacement for ij.plugin.filter.info.
- Thanks to Jeff Hanson, fixed a bug that caused the showMessage()
macro function to work with the <html> tag but not with <HTML>.
- Thanks to Arttu Miettinen, fixed a bug that could cause image corruption
if the slice selector scrollbar was used while a stack operation was being performed.
- Thanks to Ryota Homma, fixed a bug that caused the ROI Manager's
More>Remove Positions command to fail.
- Thanks to Gabriel Landini, fixed a bug that caused the
Image>Rename command to sometimes not
correctly update the Window menu.
- Thanks to Herbie Gluender, fixed a v1.50f regression that caused the
Process>FFT>Swap Quadrants command to disappear.
- Thanks to S. Rothery, fixed a 1.50f regression that caused the
Multi Measure command in the ROI Manager to not work correctly
with hyperstacks.
- Thanks to Mark Hiner, fixed a 1.50d regression that caused
the multi-point tool to not correctly place points on zoomed images.
- Thanks to Gilles Carpentier, fixed a 1.50g regression that caused
macros that used the run("Copy") function on images with overlays to
not work as expected.
- Thanks to Ryota Homma, fixed a 1.49i regression that caused
selection subtraction by drawing with the alt key down to not
work reliably.
- 1.50g 13 February 2016
- Thanks to Norbert Vischer, added an "R" (Reset Range) button to the
lower left corner of plot windows, and, in the More>>Set Limits
dialog, numeric fields can be left empty for
automatic range calculation.
- Thanks to Michael Schmid, changed the name of the Profile Plot Options
command to Plots and created a "Profile Plot Options" section
at the bottom of the dialog.
- Thanks to Dorai Iyer, multi-point selections are constrained
to a horizontal or vertical line when the shift key is down.
- Thanks to Michael Schmid, the ROI Manager's "Multi Measure" command
displays a progress bar when "One row per slice" is checked.
- Thanks to Stefan Worz, the Image>Duplicate, Image>Scale,
Image>Adjust>Size, Image>Stacks>Stack to Images
and Image>Stacks>Images to Stack commands no longer ignore
image overlays.
- Thanks to Christian Irgens, points selections selected in the ROI Manager
are no longer moved when they are outside the image boundary.
- Thanks to Christophe Leterrier, ImageJ now uses the
Nashorn JavaScript engine when running on Java 8.
- Thanks to Mike Davidson, added the call("ij.plugin.frame.ThresholdAdjuster.setMode",mode)
macro function and the ThresholdAdjuster.setMode(mode) method, where 'mode' is
"Red", "B&W" or "Over/Under".
- Fixed a bug that caused the Compile and Run command to fail on Java 8
when compiling plugins with errors.
- Thanks to Jan Eglinger, fixed a bug that caused an exception when
saving multi-point selections.
- Thanks to Rajeev Chaudhary, fixed a bug that caused the Edit>Copy
and Edit>Copy to System commands to not correctly handle images
with overlays.
- Thanks to Dan White, fixed a bug that caused the Brightness/Contrast tool
to not correctly display min and max values greater than 99999.
- Thanks to Marc Lartaud, fixed a v1.50c regression that caused the More>>Save
command in the ROI Manager to fail if there were duplicate ROI names.
- Thanks to Michael Schmid and Dan White, fixed a 1.50d regression that caused
the File>Save As>AVI command to create files that could not by opened
by the Windows Media Player.
- Ved Sharma has released
HyperStackReg, a plugin for the alignment (registration)
of images in a multichannel hyperstack (C>1, Z>=1, T>1).
- 1.50f 3 January 2016
- Added the Analyze>Tools>Grid command, which
creates a non-destructive grid of lines, crosses, circles or points on the current image.
- Thanks to Michael Elbaum, added the Process>FFT>Make Circular Selection
command.
- Thanks to Daniel Chung, text images can now be opened by dragging and dropping
them on the ">>" icon in the toolbar.
- Thanks to Stein Rorvik, with spatially calibrated images, the raw width and height
are shown in parenthesis as a selection is being created.
- Thanks to Sho Fujisawa, the ROI Manager uses 5 digits for y-coordinates
in ROI names if the image height is greater than 9999 pixels.
- With RGB images, the Image>Adjust>Threshold
command (and shift-t shortcut) no longer runs the ColorThresholder plugin.
Instead, it displays a dialog that suggest splitting the image into
three grayscale images.
- Thanks to Norbert Vischer, added the Stack.setOrthoViews(x,y,z),
Stack.getOrthoViewsID() and Stack.stopOrthoViews() macro functions
(example).
- Thanks to Stein Rorvik, added the getInfo("macro.filepath") macro function.
- Thanks to Norbert Vischer, Image>Stacks>Orthoganal Views
is faster and more reliable when working with hyperstacks.
- The getInfo(key) macro function returns "Invalid key" if a value
associated with the key is not found.
- Thanks to Gabriel Landini, added the ImageProcessor.drawLine4(x1,y1,x2,y2)
method, which draws 4-connected lines.
- Added the static RoiManager.getRoiManager() method, which returns a
reference to the ROI Manager and opens the "ROI Manager" window if
it is not already open.
- Thanks to Nicolas Stifani, fixed bugs that could cause the
getResultLabel(row) and getResultString("Label",row) macro functions to fail.
- Thanks to MartinH, fixed a bug that caused montages created using
Image>Stacks>Make Montage to lose their pixel dimensions.
- Thanks to Norbert Vischer, fixed a bug that caused the Pixel
Inspector tool to not work correctly with blank 32-bit images.
- Thanks Kees Straatman, fixed a bug that caused Process>Find Maxima,
with "Count" output, to sometimes display unwanted results.
- Thanks to Romain Guiet, fixed a bug in the ROI Manager that caused it
to ignore an ROI name if the name was 9 character in length and it had a "-"
in the middle.
- Thanks to Stein Rorvik, fixed a bug that caused macros run from the command
line to fail if the argument contained parenthesis.
- Fixed a 1.50c regression that caused the deprecated RoiManager.getROIs()
method to return null.
- 1.50e 19 November 2015
- Thanks to Curtis Rueden and Brandon Hurr, the Stack to Images,
Window>Tile and Window>Cascade commands, and non-batch mode
macros that process multiple images, run faster on Macs
(test macro).
- Pressing "i" (Image>Show Info) when no images are open now
displays useful information instead of a "No images are open" error.
- Added a "Show all" checkbox and a "Help" button to the multi-point
tool's options dialog box.
- Thanks to Peter Haub, the Selection Rotator tool, available in
the toolbar's ">>" menu, now rotates about the selection centroid and is recordable.
- Thanks to Radoslaw Ejsmont, ImageJ's directory chooser, on Mac OS X, now uses the
JFileChooser when the "Use JFileChoose to open/save" option is enabled in
Edit>Options>Input/Output. Unlike the native directory chooser,
JFileChooser still has a title bar on OS X 10.11 (El Capitan).
- Thanks to Anton Jormescu and John Wolodzko, you can again change the views in
Image>Stacks>Orthoganal Views by clicking, but not
dragging, in the YZ and XZ planes.
- Thanks to John Wolodzko, added the Plot.showValues macro function,
which displays plot window values in the Results table.
- Thanks to Peter Haub, added the Roi.getContourCentroid() method.
- Thanks to Jan Eglinger, fixed a bug that caused Image>Adjust>Size,
when using bilinear or bicubic interpolation, to shift positions of pixels by 1.0 in X,
0.5 in Y and 0.5 in Z.
- Thanks to Michael Schmid, fixed a bug that caused the
Brightness/Contrast adjuster's "Apply" function to not be
undoable for full images or rectangular selections with 8-bit and 16-bit images.
- Thanks to Michael Schmid, fixed a bug that caused the
Brightness/Contrast adjuster to hang with RGB images
when there was a non-rectangular selection extending beyond image boundary.
- Thanks to Bob Hamilton, fixed bugs that caused the Run to Insertion Point
macro debugger command to fail and the debugger to sometimes behave erratically.
- Thanks to David Gault, fixed a memory leak when closing composite color images.
- Thanks to Jan Eglinger, fixed a bug with the "d" (Draw) keyboard shortcut
that caused it to not be correctly recorded.
- Thanks to Anton Jormescu, fixed a bug in the
Image>Stack>Tools>Grouped Z Project command
that changed the Z and T dimensions of the original stack, which caused
the Duplicate and Synchronize Windows commands to not
work as expected.
- Thanks to Carl Vandewater, fixed a bug that could cause
Image>Color>Merge Channels to throw an exception
when an input file name was shorter than three characters.
- Thanks to Till Bretschneider, fixed a bug on OS X and Java 8 that
caused copying of text from the macro recorder to fail.
- Thanks to Saibal Mitra, fixed a v1.50d regression that caused the
Process>Math>Macro command to not work correctly with 32-bit images.
- Thanks to Michael Schmid, fixed a v1.49 regression that caused NaN values to
not be correctly handled in plots.
- 1.50d 25 October 2015
- Thanks to Peter Haub, added the Selection Rotator tool
to the Toolbar's ">>" menu. To move the selection with this tool,
hold down the alt or shift key.
- The Edit>Options>Point Tool dialog,
in multi-point mode, is now non-modal and has a "Counter"
drop down menu. As a shortcut for opening this dialog, double
click on the multi-point tool icon.
- A point in a polygon, polyline or point selection can now be
deleted by either alt-clicking or control-clicking.
- The File>Import>Raw command now
uses "smart recording" (default options are not recorded).
- Added the Help>Examples>Autorun checkbox menu item.
- Thanks to Michael Schmid, the AVI Reader now opens most oversized (>4GB)
ImageJ AVI 1 files and the AVI Writer uses the AVI 2 format, which is AVI 1
compatible for files up to approx 0.9 GB. Use the
Virtual Test Stack
plugin to create multi-gigabyte test stacks.
- Thanks to Bill Christens-Barry, added the WaitForUserDialog.setNextLocation(x,y) method
(macro example).
- Added the add(Roi,name) and remove(name) methods to the Overlay class.
- Added the ThresholdAdjuster.setMethod() method.
- Thanks to Kota Miura, worked around Java 8 bugs that caused cut, copy and paste
to not work in the curve fitter (Analyze>Tools>Curve Fitting).
- Thanks to Jan Eglinger, fixed a bug that caused the Image>Scale
command to ignore the "z=" option when run from a macro.
- Thanks to Stein Rorvik, fixed a bug that caused calibration bars
(Analyze>Tools>Calibration Bar) to remove existing overlays.
- Fixed a bug that caused the Process>Math>Macro
command to not work correctly with 16-bit and 32-bit images if the
macro code called the getPixel() function.
- Fixed a bug that caused the Rotate 90 Degrees Right and
Rotate 90 Degrees Left commands to not correctly handle
non-zero origins.
- Fixed a bug that caused polygon and polyline selections to lose properties
like stroke color and stroke width after one of the selection's
points had been deleted.
- Thanks to Vytas Bindokas, fixed a bug that caused the waitForUser() macro
function to fail on Windows.
- 1.50c 27 September 2015
- The Image>Stacks>Make Montage command now
uses "smart recording" (default options are not recorded).
- Worked around Java 8 bugs that caused the 't' shortcut
(Edit>Selection>Add to Manager) and ROI Manager arrow
key and mouse wheel scrolling to not work as expected on OS X.
- Fixed a bug that caused the "ImageJ" window to expand to full screen
on Windows and Linux when you double clicked on the title bar.
- Thanks to Jens Kriese, fixed a bug that caused no more that 99 menu
entries in a plungins.config file to be loaded.
- Thanks to Jochen Reichel, fixed several RGB-related bugs in the Brightness/Contrast dialog.
- Thanks to Jan Eglinger, fixed a bug that caused the getResultString() macro
function to return "null" on re-opened Results tables if the first column
was non-numeric and all other columns were numeric.
- Thanks to Avital Steinberg, fixed a bug that caused the particle analyzer
to alter the Results table counter if the "Display results" option was not enabled.
- Thanks to John Wolodzko, fixed bugs that prevented ImageJ from correctly
opening .csv and .xls tables with cells containing commas.
- Thanks to Linda Fothergill, fixed a bug that caused selections to change
when rotated and then rotated back by the same angle.
- Fixed a bug that caused the Image>Lookup Tables>Apply LUT
command to not work with 16-bit images.
- Thanks to Martin Hoehne, fixed a bug that caused the
run("ROI Manager...") macro function to not work as expected in batch mode
macros with hidden ROI Managers.
- Fixed a 1.50b7 regression that caused the ROI Manager's "Sort" command
to not work correctly.
- 1.50b 26 August 2015
- Folders and AVI files dropped on the toolbar's ">>" icon open as virtual stacks.
- Thanks to Jerome Mutterer, added the Help>Examples>Macro>Grab Viridis Colormap
example macro.
- Thanks to Norbert Vischer, added the "Dual Progress Demo" example macro and JavaScript
to the Help>Examples> menu.
- Added the "Non-numeric Table" example macro and JavaScript
to the Help>Examples> menu.
- Added the "Image with Overlay" example image
to the File>Open Samples> menu.
- Thanks to Xiuxia Zhang, the Process>Batch>Convert command
and IJ.openImage(path) method work with text images.
- The Image>Overlay>Overlay Options command uses the
'Y' keyboard shortcut and it adds "Show labels" and "Hide" checkboxes to
its dialog box if the current image has an ovelay.
- Assigned the 'W'' shortcut to the File>Close All command.
- The "Use virtual stack" option in the AVI Reader is set by default.
- Thanks to Jochen Reichel, fixed a bug that caused the
makeSelection("line", xpoints, ypoints) macro function to throw
an exception if either array contained a non-integer value.
- Thanks to Aryeh Weiss, worked around a Java 8 bug that caused the
Memory Monitor to fail.
- Thanks to Hermann-Josef Roser, fixed a bug that caused some imported RGB
TIFFs to be read incorrectly.
- Thanks to Michael Cammer, fixed a v1.44 regression that caused the setLineWidth()
macro function to sometimes not work as expected if the global line width set in the
Edit>Options>Line Width dialog was not 1.
- Thanks to Aryeh Weiss, worked around a Java 8 bug on Macs that sometimes caused
ImageJ to freeze when clicking on "Show All" in the "ROI Manager" dialog.
- Thanks to Michael Entrup, fixed a bug that caused the x-axis label of plots
to be cut off on Windows.
- Thanks to Ved Sharma, fixed a bug that caused the macro code
"if (false) Array.invert(a);" to generate an error.
- Thanks to John Wolodzko, fixed a bug that caused the Plot.setLimitsToFit() macro
function to sometimes not work as expected.
- 1.50a 21 July 2015
- Thanks to Gerald Torgersen, added the
Plugins>Shortcuts>Add Shortcut by Name
command and removed the obsolete
Plugins>Shortcuts>Install Plugin command.
- Thanks to SyntonicC, add a "Rotate around image center"
option to the Edit>Selection>Rotate command.
- Thanks to Thomas Julou, cursor coordinates are displayed
in pixels in the status bar if either the alt or shift keys are down.
- Thanks to Radoslaw Ejsmont, the ChannelSplitter.getChannel() method
works with RGB images and stacks and it throws an illegal argument
exception if the channel argument is out of range.
- Added the setThreshold(lower,upper,"raw") macro function
and the IJ.setRawThreshold(imp,lower,upper,mode) method.
- Fixed a bug that caused JavaScripts to sometimes unexpectadly display
values in the Log window on Java 8.
- Fixed a bug that caused the eval("js",code) macro function to
fail on Java 8.
- Fixed a bug that sometimes caused the setThreshold() macro function
to throw an exception with 16-bit images.
- Thanks to Megan Hagenauer, fixed a bug that caused incorrect line
selection measurements on density calibrated (global) images.
- Thanks to Jerome Mutterer, fixed bugs that caused a new dialog
to be opened each time you pressed shift-ctrl-f in an editor window
to open the macro function finder and caused focus to be lost when
you closed the dialog.
- Thanks to Michael Schmid, fixed a bug that caused the particle analyzer
to ignore selections on RGB images.
- Worked around a Java 8 bug on Macs that caused ImageJ to freeze when
changing the display mode in the "Channels" dialog.
- Thanks to Takashi Abe, worked around a Java 8 bug that caused
mirrored cursors in synched windows to not be visible.
- Thanks to Thorsten Wagner, fixed a bug that caused the "Use names as labels"
setting in the ROI Manager's More>>Labels dialog to not be persistent.
- Thanks to Jerome Mutterer, fixed a 1.49o regression that caused live profile
plots of wide lines to flicker.
Version 1.49 23 June 2015
- 1.49v 23 June 2015
- Thanks to Jan Eglinger, the open(path) macro function opens
a folder of images as a stack. Use open(path,"virtual") to open a
folder as a virtual stack.
- Thanks to Ilan Tal, added the WindowManager.getAllNonImageWindows() method.
- Thanks to Jan Eglinger, fixed a bug that caused the recorder to
display a warning message when recording Image>Properties
or Analyze>Set Scale and the unit was "µm".
- Thanks to Christophe Leterrier, fixed a bug that caused the
DirectoryChooser, when using Java 7 or later, to not use the
native Mac OS X file chooser.
- Thanks Thorsten Wagner, fixed a bug in the RoiManager that caused the
"Labels" checkbox to be ignored when the "Use ROI names as labels"
option was enabled.
- Thanks to Olivier Burri, fixed a bug that caused the
run("Merge Channels...","...") macro function to not correctly
handle missing arguments.
- Thanks to Megan Hagenauer, fixed a 1.49t regression that caused
plot windows to disable global calibration.
- Thanks to Jan Eglinger, fixed a 1.49t regression that caused
Image>Properties to change Y and Z units to "pixel".
- 1.49u 13 June 2015
- Added the Help>Examples sub-menu and an Examples
menu to the text editor. When opening an example macro or script, hold the shift,
control or alt key down to also run it. The examples are also available at
wsr.imagej.net/download/Examples/.
- The Wand Tool Options dialog (opened by double clicking on the Wand tool)
now has a "Tolerance" slider that dynamically updates the selection.
- Added the "NaN empty cells" option to the Analyze>Measurements Options dialog.
- Thanks to Michael Schmid, the Curve Fitter (Analyze>Tools>Curve Fitting),
to avoid aliasing, will use more than 100 points to draw the fitted curve.
- Thanks to Michael Cammer, the Image>Hyperstacks>Hyperstack to Stack
command now works with composite color images.
- Thanks to Aaron Schain, the Image>Stacks>Tools>Concatenate
command maintains hyperstack calibration.
- Added the Array.getSequence() macro function
(example).
- Added the add(shape,xpoints,ypoints), addLegend(labels), addLegend(labels,options),
setColor(String) and getPlot() methods to the Plot class.
- Added the ImagePlus.isThreshold() and ResultsTable.setNaNEmptyCells() methods.
- Thanks to Kerry Krugh, Image>Show Info now displays
the first 60 characters of UN (Unknown) Value Representation DICOM tags.
- Thanks to Megan Hagenauer, fixed bugs that caused the Analyze>Measure
command to not work as expected with line selections when "Limit to threshold" was
enabled in Analyze>SetMeasurements.
- Thanks to Michael Schmid and Timothy Feinstein, fixed a bug that
caused the setSelectionLocation() and Roi.move() macro functions to
sometimes not work with straight line selections.
- Thanks to Gabriel Landini and Michael Schmid, fixed a bug that caused
the brush tool to sometimes not work as expected on Linux.
- Thanks to Jan Eglinger, fixed a bug that caused Process>Batch>Convert
to throw an exception when converting stacks to TIFF format.
- Thanks to Laurent Gelman, fixed a 1.49t regression that caused the
Image>Adjust>Canvas Size command to not work as
expected with plot windows.
- 1.49t 12 May 2015
- Michael Schmid contributed a greatly improved Plot class with many new features
(demo macro):
- Plot windows can be resized.
- Use Image>Zoom>View 100% or More>>Reset Format to revert to the size
defined in Edit>Options>Profile Plot Options.
- Image>Zoom>In, or the '+' key, zooms in (both x&y) and
Image>Zoom>Out, or the '-' key, zooms out.
- Put the cursor below the x axis to zoom in/out horizontally and
put it left of the y axis to zoom in/out vertically.
- With the cursor below or left of the plot, arrows appear, which can be clicked on to
to shift the limit.
- With a selection, the '+' key, Image>Zoom>In and Image>Zoom>To Selection
set the data range to the selection.
- Image>Zoom>Original Scale reverts to the original data range.
- Image>Zoom>Scale to Fit sets the scale to fit all data.
- Use the hand tool (or drag with the space bar down) to shift the display range.
- Select whether axes should have ticks, grids etc. in More>>Axis Options.
- Adjust the font size in More>>Axis Options or in Profile Plot Options (for future plots).
- Plots can now have a legend, and with "Legend Position" set to "Auto", the legend tries to not cover any data.
- You can create a high-resolution (publication-quality) version of a plot by using
the More>>High-Resolution Plot command.
- Thanks to Malgosia Pakulska, the "Apply" button in the Image>Adjust>Brightness/Contrast
dialog works with 16-bit images.
- Thanks to Nicolas Brouilly, the getResult() macro function works with tables
that are not named "Results".
- The "Save..." button in plot windows uses the "File extension for tables"
from Edit>Options>Input/Output as the default extension.
- Image>Adjust>Color Threshold uses the ColorSpaceConverter
class (Image>Type>Lab Stack) to do RGB to Lab conversions.
- Thanks to Vytas Bindokas, fixed a bug that sometimes caused 16-bit to 8-bit conversion of
composte color images to fail.
- Added the getValue("results.count") macro function.
- Added the TextPanel.getOrCreateResultsTable() method.
- Fixed a bug that caused the default "File extension for tables" in the
Edit>Options>Input/Output dialog to be set to ".csv" when
it was actually ".xls".
- Thanks to Avital Steinberg, fixed a bug that caused an exception when saving composite
selections with properties.
- Thanks to Gabriel Landini, fixed a bug that caused the Make Binary and
Convert to Mask commands to not work correctly with thresholded RGB images.
- Christoph Derigo fixed bugs that caused the Calibrate.setYUnit() and
Calibrate.setZUnit() methods to not convert "um" to "µm".
- 1.49r 21 April 2015
- Thanks to Jerome Mutterer, measurements done using the
Set Measurements "Limit to threshold" option add two
columns ("MinThr" and "MaxThr") to the Results table.
- Thanks to Nicolas Brouilly, a progress bar is displayed when large
images are resized.
- The Image>Show Info command (press "i" as a shortcut) displays
additional information, including the ImageJ version, java version, OS version,
memory in use and the image size.
- The ROI Manager's "Save..." command is faster and displays a progress bar.
- The quality of montages created by Image>Stacks>Make Montage
is better due to use of bilinear interpolation and averaging when reducing.
- Added an "Average when reducing" option to the
Process>Batch>Convert dialog box.
- Thanks to Norbert Vischer, the macro editor aborts any existing macro
before running or debugging another one.
- The Image>Stacks>Plot Z-axis Profile command
now works with line selections.
- The macro editor replaces right curly quotes with standard double quotes.
- Thanks to Jan Eglinger, fixed a bug that caused an exception
to be thrown when selecting an image from the Window menu.
- Thanks to Daisuke Kinose, fixed a bug that caused GenericDialogs
without "OK" buttons to throw exceptions.
- Thanks to Norbert Vischer, fixed a bug that caused pasted image selections
to sometimes become permanent before they could be moved.
- Thanks to Michael Schmid, fixed a bug that caused the
OpenDialog.setDefaultDirectory() method to not work as
expected on Windows with file paths that ended in slashes instead of backslashes.
- Thanks to Jurriaan Holzenspies, fixed a bug that caused an exception to
be thrown when measuring the perimeter of selections created by the
Edit>Selection>Make Rectangular Selection Rounded command in Fiji.
- Fixed a bug that caused the Process>Batch>Convert
progress bar to not work.
- Thanks to Tomm, fixed a bug the caused the saveAs("Text",filepath)
macro function to not work as expected if 'filepath' ended in ".csv".
- Thanks to Bill Heeschen, fixed a bug that caused macro 'break' and 'continue'
statements to not work as expected in 'for' and 'while' loops with inner loops.
- Thanks to Gilles Carpentier, fixed a 1.49q regression that caused
the File>Import>Image Sequence command to ignore
overlays.
- Thanks to Vassilis Kehayas, fixed a 1.45 regression that caused the Histogram
command to loss the ability to generate stack histograms of composite color stacks.
- 1.49q 27 March 2015
- The File>New>Hyperstack command embeds the
channel, slice, frame and stack index into the pixel data.
- Thanks to Michael Schmid and Michael Doube, the 'invertY' calibration
flag is now saved in TIFF headers.
- The options of the ROI Manager's "Multi Measure" command are recorded
if the Recorder is in "Macro" mode.
- The Image>Color>Merge Channels command now deletes the source
images after displaying the merged composite image.
- The run("Subtract Background...","...") macro function no longer changes
the default settings in the Process>Subtract Background dialog.
- Added the Roi.copy() and Roi.paste() macro functions.
- The Opener.openLut() method now works with URLs
(JavaScript example).
- Thanks to Francis OBrien, added the ChannelArranger.run() method
(JavaScript example).
- Added the IJ.getDir() method, as an alias for IJ.getDirectory().
- Thanks to Chris Pudney and Michael Schmid, fixed a bug that caused the
PARALLELIZE_IMAGES flag of the PlugInFilter interface to return incorrect ROIs
when using non-rectangular masks.
- Thanks to Kurt Bockhorst, fixed a bug that caused Image>Stacks>Images to Stack
to sometimes not work correctly with inverted LUT images.
- Fixed a bug that caused the Image>Color>Arrange Channels command
to not work with overlays.
- Thanks to Jan Eglinger, fixed a bug that caused the run("Quit") macro function
to sometimes not work as expected.
- Fixed a bug that caused extremely large images (e.g. 25000x25000 pixels)
to not be displayed correctly because the minimum zoom of 3.1% was not low
enough.
- Thanks to Kees Straatman, fixed a bug that sometimes caused 8-bit images
to be incorrectly converted to 16-bits.
- Thanks to Christophe Deroulers, fixed a bug that sometimes caused
the ROI Manager's "Translate" command to not work as expected.
- Fixed a bug that caused the IJ.openVirtual() method to throw an
exception if the file was not found.
- Thanks to Curtis Rueden, fixed a bug that could cause a StackOverflowError
exception on ImageJ startup on systems with three monitors.
- Thanks to Michael Schmid, fixed a bug in the curve fitter that caused
the RODBARD fit to not fit some data.
- Thanks to Michael Schmid, fixed a bug that caused the
Analyze>Tools>Curve Fitting command to sometimes
not correctly scale plots.
- Thanks to Jorge Valero, fixed a 1.49n regression that caused an exception
when measuring an area out of the threshold limits in a 16 bit image and
"Limit to threshold" was enabled in "Set Measurements".
- 1.49p 28 February 2015
- Stacks open and save in less time due to faster IJ.showStatus() method.
- Added the Image>Type>Lab Stack command, which converts an RGB image
into a L*a*b* stack using code from Duane Schwartzwald's
Color Space Converter plugin.
- Thanks to Ferdinando Pucci, the Image>Stacks>Tools>Concatenate
command works with images that differ in width or height.
- The Image>Overlay>To ROI Manager command
starts numbering at 1 instead of 0.
- Thanks to Curtis Rueden, Image>Stacks>Images to Stack
suggest using Image>Stacks>Tools>Concatenate if the user
attempts to combine two or more stacks.
- The IJ.showStatus() method is up to a 1000 times faster
(example).
- ImageJ displays a better error message when attempting to run a plugin with
a missing library.
- Added the getList("image.titles") macro function.
- Thanks to Norbert Vischer, added the Roi.setPolygonSplineAnchors(),
Roi.setPolylineSplineAnchors() and Roi.getSplineAnchors() macro functions
(example).
- Thanks to Philippe Carl, added the RoiManager.isSelected() method
(JavaScript example).
- Thanks to Philippe Carl, fixed a bug that caused plugins using the
NonBlockingGenericDialog to hang when they were called using the
run() macro function.
- Thanks to Matt Jackson, fixed a bug that caused the Image>Zoom>To Selection
command to sometimes not work as expected (window does not expand) when the alt key is down.
- Thanks to Analia Lourenco, fixed a bug that caused ROI Manager outlines
created by the particle analyzer to not be displayed in batch mode macros.
- Thanks to Neil Fazel, fixed a bug that caused File>Import>Text Image
to not correctly open files containing "nan" (lower case "NaN") values.
- Thanks to Philippe Carl, fixed a bug that caused the
Edit>Selection>Restore Selection command to
not work as expected after making a selection in the ROI Manager.
- Thanks to Ilan Tal, fixed a bug that could cause the "Close All" command to
throw an exception and cause ImageJ to hang.
- Thanks to Leon Espinosa, fixed a 1.49k regression in the behavior, when
processing stacks, of the Process>Binary>Convert to Mask
command and "Threshold" widget's "Apply" option.
- Thanks to Philippe Carl, fixed a regression that caused the ROI Manager's "Show All" and "Labels"
buttons to not be recorded.
- 1.49o 21 January 2015
- Michael Schmid extended the HTMLDialog class to support more text
(wrapping lines, scrollbar) and hypertext links. This allows for longer
GenericDialog help messages and "About this Plugin" dialogs
(Java example).
- Thanks to Michael Schmid, "Live" mode z-axis profile plots and histograms
are updated when you use a command in the Edit>Selection menu,
such as shift-a (Select None).
- Thanks to Michael Schmid, y-units and z-units are saved with and read from tiff/zip files
and special characters are preserved in units and description strings.
- When opening AVI files, the open() macro function no longer
displays a dialog box. To open an AVI as a virtual stack, use
run("AVI...", "open=file_path use").
- The measured values (left column) in the Analyze>Calibrate dialog
are now validated. With 8-bit images, the values must be in the 0-255 range. With
16-bit images, they must be in the 0-65535 range.
- Thanks to Cyril Turies, added a Dialog.setLocation(x,y) macro function.
- Added the IJ.openVirtual(path) method, which opens a TIFF file as a virtual stack.
- Thanks to Xavier Colome, added the GenericDialog.addImage(ImagePlus) method.
- Added the setDisplayMode(), getDisplayMode() and setActiveChannels()
methods to the ImagePlus class.
- Added the ij.gui.RoiListener interface.
- Thanks to Neil Fazel, fixed a bug the caused the ROI Manager's
More>>Remove Positions command to sometimes not work as expected.
- Thanks to Norbert Vischer, fixed a bug that caused the open() macro function to
fail when downloading .jar files from https servers.
- Thanks to Roland Nussbaumer, fixed a bug that caused the "Channels" tool to
not be correctly recorded except in "Macro" mode.
- Thanks to Cong-Xin Qiu, fixed bugs in the FileSaver and RoiManager classes
that caused files to not be properly closed when errors occured.
- Thanks to William Nicolas, fixed a bug that caused the waitForUser()
dialog to be closed when the active image was closed.
- Thanks to Marius Krause, fixed a bug that caused the
File>Save As>Image Sequence command to not save overlays
when saving in TIFF format.
- Thanks to Philip Ershler, fixed a bug that caused the
Image>Stacks>Plot X-axis Profile command, when plotting a
time series stack, to not work if the interframe interval was 0.
- Thanks to Michael Schmid, fixed a bug that could result in a confusing
error message when running a plugin and a class is not found.
- Thanks to Michael Schmid, fixed a bug that caused updated
"Width" and "Height" fields of the Image>Adjust>Size dialog
to not be rounded.
- Thanks to Tokamoto, fixed a 1.49n regression that caused the
saveAs("Results",path) macro function to sometimes not work as expected.
- Thanks to Gilles Carpentier, fixed a 1.49k regression that caused the
setupUndo() macro function to not work as expected.
- 1.49n 17 December 2014
- 16-bit image statistics are calculated faster, using less memory.
- Thanks to Michael Schmid, overlays modified by PluginFilters are
now restored if the dialog is canceled or preview is disabled.
- Added the Opener.openLut() method
(JavaScript example).
- Thanks to Avital Steinberg, added a runCommand(ImagePlus,String) method
to the ROI Manager
(JavaScript example).
- Thanks to Michael Schmid, fixed a bug with frequency domain FFT images
that caused a slight (1-pixel) shift between the position indicated in the
status bar and the cursor.
- Thanks to Felix Keber, fixed a bug that sometimes caused the
"Threshold" widget to not work correctly with 16-bit stacks.
- Thanks to Norbert Vischer, fixed a bug that caused the shift-a shortcut
for Edit>Selection>Select None to not work as
expected after using Analyze>Plot Profile and clicking "Live" in
the plot window.
- Thanks to Olivier Burri and Peter Bankhead, fixed a bug that caused
the Image>Type>32-bit command to sometimes
incorrectly convert 8-bit images to 32-bit.
- Thanks to Kay Schink, fixed bugs that caused the particle analyzer to
not work correctly with hyperstacks.
- Thanks to Jared Windover, fixed a bug that sometimes caused the
saveAs("Results",path) macro function to not work as expected.
- Thanks to Gabriel Landini, fixed a 1.49k regression that could cause
a plugin using the ImageCalculator class to fail when the plugin was
called from a batch mode macro.
- Thanks to Marc Lartaud, fixed a 1.49k regression that made it difficult
to modify and update an ROI selected in the ROI Manager.
- 1.49m 24 November 2014
- Fixed a bug that caused ImageJ to incorrectly read 3 and 4 channel
16-bit planar TIFFs.
- Thanks to Dawid Krzempek and Michael Schmid, fixed bugs that caused
the setFunction() and setCTable() methods of the Calibration class
to sometimes not work as expected.
- Thanks to Rodrigo Goncalves, fixed a bug that caused the size of maximized
windows to be reset when they were moved on Windows 7 and Windows 8.
- Fixed a 1.49k regression that could cause the imageCalculator() macro
function to fail when processing stacks in batch mode macros.
- Thanks to Frank Ogletree, fixed a 1.48 regression that caused 16-bit
Zeiss SEM images to not open correctly.
- Thanks to Graeme Awcock, fixed a 1.49c regression that caused GIFs with
color LUTs to open as RGB images.
- 1.49k 9 November 2014
- Thanks to Hermann-Josef Roeser, the Histogram command does a better
job of plotting histograms with more than 256 bins. To get a dialog that allows
you to specify the number of bins, run the Histogram command by pressing alt-h.
- Thanks to Michael Schmid, the Process>FFT>FD Math command
limits the image choices to power of 2 sizes and spatially calibrates
the output image.
- The table created by clicking on "List" in histogram windows is now a results table.
- Thanks to Michael Schmid, the "B&C" tool no longer disables undo.
- When running on Java 8, ImageJ uses the Rhino JavaScript engine instead
of the built in, but incompatible, Nashorn engine.
- Thanks to Christophe Leterrier and Johannes Schindelin, the JavaScript
interpreter now supports the load() function.
- Thanks to Philippe Carl, an ROI selected in the ROI Manager
is deselected when it is removed from the image as long as the alt or shift keys
are not held down.
- Thanks to Thomas Templier, the ImageCanvas.setSourceRect() method
now sets the magnification and is more robust
(JavaScript example).
- Thanks to Johannes Schindelin, added the ij.macro.Debugger interface.
- Thanks to Glen MacDonald, the run("Make Binary") macro function now supports
a 'slice' option that allows stacks to be converted to binary using custom
thresholding methods
(example).
- Thanks to Glen MacDonald, fixed several bugs in the Make Binary
and Convert to Mask commands.
- Thanks to Gerhard Hahm, fixed a bug that caused the imageCalculator()
macro function to not select the first (output) image in batch mode macros.
- Thanks to Johan, fixed a bug that caused the calibration to not be updated
after updating an existing plot window using the Plot.update() macro function.
- Thanks to Michael Schmid, fixed a bug that caused
Edit>Selection>Create Mask to not maintain the spatial
calibration when converting selections into masks.
- Thanks to Hermann-Josef Roeser, fixed a bug that caused ImageJ to not
correctly open 16-bit, 4 samples per pixel TIFFs, such as those created by VueScan.
- 1.49j 25 October 2014
- Thanks to Ulf Dittmer, pixel hex values are displayed in the status
bar when the cursor is moved over RGB images and over the color picker.
- Thanks to Ved Sharma, added a "File name contains" option to the
Process>Batch>Macro dialog box. As with
File>Import>Image Sequence, regular expressions must
be enclosed in parenthesis.
- Thanks to Stamatis Pagakis, the "Do not save X values" option in the
Edit>Options>Profile Plot Options dialog now works with
multiple plots.
- Thanks to Michael Schmid, fixed a bug that caused the setThreshold(t1,t2)
macro function, when t1 and t2 were equal, to not work as expected when used
with the Create Mask command.
- Thanks to Matthew Taylor, fixed a bug that caused
Process>Math>Log and the log() macro function to not
correctly process values less than or equal to zero in 32 bit images.
- Thanks to Robert Atwood, fixed a v1.49i regression that could cause
the Measure command to throw an exception.
- 1.49i 13 October 2014
- Impoved Results table auto-formatting.
- Thanks to Norbert Vischer, the mouse behaves like an eraser
if the alt key is held down while creating a polygon, freehand,
polyline, freeline or angle selection.
- Thanks to Stamatis Pagakis, duplicate x columns in profile plot
results tables are no longer repeated
(example).
- "Live" and "RGB" buttons are no longer added to stack histogram windows.
- Thanks to Norbert Vischer, when the color picker background
panel is in front, it is labeled "B" and the foreground
panel is labeled "F".
- Thanks to Michael Schmid, added the Array.fourier() macro function
and FHT.fourier1D() method
(example).
- Added the ResultsTable.setDecimalPlaces(column,digits) method.
- Thanks to Matt Pearson, fixed a bug that caused the particle analyzer to not work
as expected when processing stacks using the "Overlay Outlines" or "Overlay Masks"
options.
- Thanks to Matt Pearson, fixed a bug that sometimes caused the wrong image
to be activated after using the Split Channels command in macros not
running in batch mode.
- Thanks to Christian Tischer and Kota Miura, fixed a bug that caused the
BatchProcessor to not ignore hidden Thumbs.db files.
- Thanks to Christian Tischer, fixed a bug that caused calibration bars to not
be displayed correctly on contrast enhanced 8-bit images.
- Thanks to Bill Christens-Barry, fixed a bug that caused rounded
rectangle selections to not be drawn correctly.
- Thanks to Gadea Mata, fixed a bug that caused the "Intermodes" thresholding
method to sometimes not work as expected.
- Thanks to Konrad Rokicki, fixed bugs that could cause
Fiji headless mode exceptions.
- Thanks to Philippe Gendre and Michael Schmid, fixed a bug that caused the
RankFilters.rank(ip,radius,filterType,whichOutliers,threshold)
method to ignore the 'threshold' argument.
- Thanks to Neil Fazel, fixed a v1.49h regression that caused selections
moved using the arrow keys to not be drawn correctly.
- 1.49h 19 September 2014
- Selections in the ROI Manager and in overlays can be dragged by their labels. To
show labels in the ROI Manager, click on the "Labels" checkbox. To show labels in
an overlay, enable "Show labels" in the Image>Overlay>Labels dialog.
- Thanks to Jeremy Adler, added "Type" and "Add to overlay" options
to Edit>Options>Point Tool dialog. Note that the
"Add to overlay" option is not available if the multi-point tool is active.
- Thanks to Ilan Tal, single macro tools in the macros/toolsets folder
added to the toolbar using the toolbar's ">>" menu are restored to
the toolbar when ImageJ restarts, as long as the file name matches the tool name
and there is a free toolbar slot.
- Thanks to Philippe Carl and Jerome Mutterer, added the Roi.contains(x,y) macro function.
- Thanks to Thomas Siegmund, the RoiManager's getRoisAsArray() method is now synchronized.
- Thanks to Pedro Pepe, fixed a bug that caused the "Sum Method" of
Image>Stacks>Z Project to not work correctly with signed 16-bit stacks.
- Fixed a bug that caused the makePoint(x,y) macro function to not work correctly with
non-integer coordinates.
- Thanks to Norbert Vischer, fixed a bug that sometimes caused setThreshold()
to fail in batch mode macros.
- Thanks to Pedro Ramos Cabrer and Michael Schmid, fixed a 1.46 regression that caused
4 or 5 parameter custom curve fits to be much slower.
- Fixed a regression than sometimes caused the Image>Duplicate
command to not be correctly recorded.
- 1.49g 25 August 2014
- Thanks to Jon Harman, pinch to zoom works on Windows 8 tablets and touch screen laptops.
- Thanks to Sean Smith, mouse wheel scrolling is faster on Windows.
- Improved script-mode recording of commands in the Edit>Selection submenu.
- Thanks to Neil Fazel, fixed a bug that caused the Analyze>Tools>Save XY Coordinates
command to not work with NaN backgrounds.
- Thanks to Richard Pastrick, fixed a bug in the TiffDecoder that caused it to
sometimes incorrectly read the XResolution and YResolution tags.
- Thanks to Jan Eglinger, fixed a 1.49f regression that caused Image>Overlay>Flatten
to fail with composite images.
- 1.49f 18 August 2014
- Thanks to George H, the particle analyzer's "Summary" window has an
associated ResultsTable and has "Rename" and "Duplicate" commands in its
File and contextual (right-click) menus
(macro example,
JavaScript example).
- Thanks to Gabriel Schweighause and Michael Schmid, the second argument (delimiters)
of the split() macro function can be a regular expression enclosed in parentheses.
- Thanks to Aaron Schain, fixed bugs that caused layout problems when
resizing hyperstacks, especially when "Scale to Fit" resizing by
holding down the alt key.
- Thanks to Gilles Carpentier, fixed a 1.49e regression that caused
the split() macro function to sometimes not behave as expected.
- Thanks to Biafra Ahanonu, fixed a 1.47 regression in the Image>Scale command
that caused unwanted cross-talk in the x,y plane when downsampling in z.
- Thanks to Olivier Burri, fixed a regression that sometimes caused
Image>Stacks>Add Slice to throw an exception when adding a channel
to a hyperstack.
- 1.49e 2 August 2014
- Added the Edit>Options>Startup command.
- Thanks to Norbert Vischer, added an "Adjust interval to match" option
to the Edit>Selection>Interpolate dialog. This option adjusts the
interval so that the steps between the first and last point are equidistant.
- Thanks to Philippe Carl, the ROI Manager now insures that a selection
activated by clicking on its label in the image is made visible in the list.
- Thanks to Ilan Tal, plugin tools can now have right-click popup menus
(example).
- Thanks to Norbert Vischer, you can select a function name in the
macro editor and use Macros>Macro Functions to
get a description of that function.
- Thanks to Christophe Deroulers, added a deselect() method to the
RoiManager class.
- Thanks to Neil Fazel, fixed a bug that caused error bars added using the
Plot.add() macro function to not appear if the data points were added using Plot.add()
(example).
- Thanks to Marc Lartaud and Michael Schmid, fixed a bug that caused
Feret's diameter of selections created with the selection brush tool on spatially
calibrated images to be reported in pixels.
- Thanks to Vytas Bindokas, fixed a bug that caused Edit>Selection>Create Mask
to create a blank mask when it was used with a thresholded image in "select all" mode.
- Thanks to Nikolaus Szeverenyi, fixed a bug that caused upper threshold values
entered into the Image>Adjust>Threshold "Set" dialog to be reset to the
highest pixel value in the image.
- Thanks to Gabriel Schweighause and Michael Schmid, fixed a bug that caused the split()
macro function to not correctly parse lines with empty cells in comma-delimited CSV files.
- Thanks to Ilan Tal, fixed a bug that caused plugin tools with hints in parenthesis
to not be installed when ImageJ restarted.
- Thanks to Gilles Carpentier, fixed a v1.48 regression that caused IJ.log("\n") to not
add a blank line to the Log window.
- Thanks to Christophe Deroulers, fixed a v1.49c regression that caused
ROI Manager list selections to not be recorded.
- 1.49d 9 July 2014
- Thanks to Philippe Carl and Neil Fazel, horizontal error bars can
now be added to plots
(example).
- Thanks to Alan Brooks, non-uniform x and y units are now used
in image subtitles
(example) and by the
Show Info, Specify, Rotate Right, Rotate Left
and Surface Plot commands.
- Added a "Translate" command to the ROI Manager.
- Plugins>Install now installs tools with names ending in "Tool.txt",
"Tool.ijm" and Tool.class" in the toolbar and saves a copy of the tool in
the plugins/Tools folder.
- Thanks to Neil Fazel, the Overlay.drawString() macro function supports multiline strings.
- Thanks to Michael Schmid, added the getInfo("window.title") macro function.
- Thanks to Michael Schmid, added the FHT.transform1D() and
FHT.inverseTransform1D()methods
(example).
- Thanks to David Gauntt, fixed bugs that could cause the DicomDecoder#getFileInfo()
method to hang when attempting to open non-DICOM files.
- Fixed a bug that caused Help>Refresh Menus and Plugins>Install
to delete macros installed in the Plugins>Macros menu.
- Thanks to Jan Brocher, fixed a bug that caused RoiManager methods called from
plugins to be recorded.
- Thanks to Andrew Porter, fixed a v1.49 regression that caused some imported
TIFF stacks to open incorrectly.
- Thanks to Mark Tsuchida, OS X 10.7 and later no longer displays an "ImageJ is damaged and can't be opened"
error message. Instead, it displays an "ImageJ can't be opened because it is from an unidentified developer" message,
which can be bypassed by right clicking and selecting "Open" from the drop down menu.
- 1.49c 27 June 2014
- Selections added to an overlay by the Measure command are
removed when the corresponding rows in the Results table are cleared.
- Animated GIFs can now be opened using File>Open
and drag and drop.
- Overlays are rendered when saving images as GIFs or stacks as animated GIFs.
- The Analyze>Label command now displays a dialog box that suggests
using the "Add to manager" option in Analyze>Set Measurements.
- Thanks to Lars Damgaard, the run("Image Sequence... ", "...") macro function
(File>Save As>Image Sequence) works with single images.
- When duplicating virtual stacks, progress information is displayed in the status bar.
- Added the setOption("ShowAngle",boolean) macro function, which determines
whether or not "Angle" is reported when measuring straight line lengths.
- Added the IJ.getFullVersion() macro function.
- Thanks to Philippe Mailly, added a public multiMeasure() method to the
ROI Manager and upgraded the recorder to support this method
(example).
- Thanks to Nicolas Casadei, fixed a bug that caused macros to not reset the
"escapePressed" flag, which sometimes caused "INTERRUPTED" to be displayed in
the status bar and the macro to not work as expected.
- Thanks to Christian Renicke, fixed a bug that caused the Brightness/Contrast
and Color Balance tools to not work as expected on RGB stacks after an
"Apply" operation.
- Thanks to Matthew Pearson, fixed a bug in the IJ.renameResults() macro
function that caused it to sometimes not work as expected if a column
had been added using setResult() calls.
- Thanks to Bryan Callahan and Curtis Rueden, fixed a bug that caused the
run("Profile Plot Options...","...") macro function to throw an exception in Fiji headless mode.
- Thanks to Neil Fazel, fixed a bug that caused Analyze>Plot Profile to not correctly
display plot x and y coordinates at the bottom of the plot window when a fixed y-axis scale was used.
- Thanks to Antoine Vandecreme, fixed a bug that caused ImageJ to incorrectly
open non-8bit TIFFs that were missing the BitsPerSample tag.
- Thanks to Norbert Vischer, fixed a bug in Image>Show Info
that caused it to display the pixel size using inadequate precision.
- Thanks to Philippe Carl, fixed a bug in the setThreshold() macro function
that caused it to not update the "Threshold" window.
- Thanks to Philippe Carl, fixed a bug in the "Threshold" window's "Set" option
that caused the plot and scrollbars to not be updated.
- Thanks to Grimper, fixed a bug that caused the setForegroundColor()
macro function to not work in headless mode.
- Thanks to Tara Ficken and Simon Runde, fixed bugs that
sometimes caused ImageJ to incorrectly import TIFF stacks.
- Thanks to Philippe Carl, fixed ROI Manager bugs that caused it to unexpectedly move
selections when using the arrow keys, and to not deselect when switching between images.
- Thanks to Tiago Ferreira, fixed a v1.48m regression that sometimes caused the "List..."
button in plot windows to display an empty table.
- Thanks to Gabriel Landini, fixed a v1.49 regression that caused cached versions
of the blobs.gif sample image to open without an inverting LUT.
- Thanks to Kees Straatman, fixed a regression that caused the straight line
tool to not be recorded.
- 1.49b 30 May 2014
- Thanks to Jeff Spector, Image>Stacks>Reslice can now create
multichannel kymographs from time-lapse 4D hyperstacks (c>1,z=1,t>1) .
- Thanks to Kenneth Sloan, the width and color of the
paintbrush tool can be set using macros
(example).
- The Gel Analyzer now labels lanes with a white number
on a black background.
- The "Fixed y-axis scale" option in the Edit>Options>Profile Plot Options
dialog is no longer saved in the preferences file.
- Thanks to Gabriel Landini, the Plugins>Compile and Run
command compiles plugins that us the 3D Viewer.
(example).
- Thanks to Christopher Coulon, fixed a bug that caused
Image>Overlay>Flatten to not transfer metadata
to the output image.
- Thanks to Christophe Leterrier, fixed a bug that caused
Process>Enhance Contrast to sometimes not correctly
set the display range of stacks when "Normalize" was enabled.
- Thanks to Sidnei Paciornik, fixed a bug that caused the "n_situ" particle
analyzer option to not work as expected when analyzing a single stack image
(example).
- Thanks to Sidnei Paciornik, fixed a bug that caused the particle analyzer
to hang when processing an 8-bit image and the threshold was set to 0-255.
- Thanks to Marcel Austenfeld, fixed a bug that caused
Image>Stacks>Orthogonal Views to sometimes freeze and/or
throw a StackOverflow exception when the user dragged in the "XZ" or "YZ" windows.
- Fixed bugs related to cropping and projecting stacks with labeled overlays.
- Thanks to Tara Ficken, fixed bugs that caused some float and int32 TIFFs to
be read incorrectly.
- Thanks to Jeremy Walker, fixed a v1.47o regression that caused
the getResult() macro function to not be able retrieve numbers added
as strings to the results table.
- Thanks to Christophe Deroulers, fixed a v1.49a regression that
sometimes caused progress bars to not work as expected.
- 1.49a 15 May 2014
- Thanks to Kenneth Sloan, added a "Paint on overlay" option to
the built in brush tool's options dialog. Add the built in brush tool
to the toolbar by selecting "Brush" from the toolbar's ">>" menu.
- Thanks to Daniel Pensold, Analyze>Tools>Save XY Coordinates
saves the coordinates and values of pixels inside selections to a .csv file.
- Thanks to Volker Wirth, added a "Title:" field to the dialog displayed
by Edit>Selection>Straighten when the line width is
one or when processing a stack.
- Selections created by the selection brush tool are
deleted after they are added to an overlay.
- Thanks to Jon Harman, Plugins>Install recognizes .zip files.
- Thanks to Jerome Mutterer, added the makeArrow() macro function
(example).
- Thanks to Federico Luzzati, added the Stack.toggleChannel() macro function
(example).
- Thanks to Norbert Vischer, the showProgress(progress) macro function displays
subordinate progress bars as moving dots when 'progress' is negative
(macro example,
script example).
- Thanks to Messaoudi Cedric, Edit>Options>Memory & Threads
no longer limits the number of threads to 32.
- Thanks to Wilhelm Burger, added the IJ.setProperty(String,Object)
and IJ.getProperty(String) methods, which are useful for passing
data between plugins.
- Thanks to Stephan Preibisch, added the MultiLineLabel#setText() method
(example).
- Fixed a bug that caused the recording mode to not
be saved when quitting ImageJ with the Recorder open.
- Thanks to Mats Nilsson, fixed a bug that caused the getInfo() macro
function and ImagePlus#getStringProperty() method to not work with
DICOM tags containing letters.
- Thanks to Norbert Vischer, fixed a bug the caused the Array.findMaxima()
macro function to throw an exception when the array length was one.
- Fixed a bug that caused images with overlays containing black transparent
images to not be correctly saved and restored.
- Thanks to Jan Brocher, fixed a v1.48 regression that caused changes made in the
Image>Overlay>Add to Overlay dialog (displayed when you press alt+b)
to not be remembered.
- Thanks to Kees Straatman, fixed a bug that caused the recorder to incorrectly
record the Process>Binary>Convert to Mask command.
- Thanks to Chris Weisiger, fixed a bug in Image>Stacks>Othogonal Views
that caused it to fail with extened StackWindows with custom controls.
- Thanks to Philippe Carl, fixed a v1.48t regression that caused the
Plot#drawNormalizedLine() method to not work with log plots.
Version 1.48 19 April 2014
- 1.48v 19 April 2014
- Plot and Histogram windows are no longer centered on the screen.
- Added the Overlay.clear and setOption("Add to overlay",boolean) macro functions.
- Thanks to David Knecht, commands listed in the
Plugins>Shortcuts>List Shortcuts and Plugins>Shortcuts>Create Shortcut
dialogs are sorted with case ignored.
- Thanks to Denis Roussel, changed an incorrect Javadoc reference in
PlugInFilter.java from SUPPORTS_STACKS to DOES_STACKS.
- Thanks to Johannes Schindelin, added @link tags to the PlugInFilter.java Javadocs.
- Fixed a bug that caused the progress bar to not terminate after dragging
a jar file to the "ImageJ" window.
- Fixed a bug that caused the roiManager("add") macro function to unexpectedly
set the stack position of the source selection.
- 1.48u 9 April 2014
- Selections added to overlays by the Measure command when "Add to Overlay"
is enabled in Analyze>Set Measurements are labeled with the measurement number.
- Thanks to Ted Toal, Image>Zoom>Set sets the zoom center
based on a point selection and it no longer enlarges the window.
- Thanks to Norbert Vischer, the macro debugger's
Array Inspector now flags array value changes.
- Added getStringProperty(key) and getNumericProperty(key) methods to the ImagePlus class.
- Added a TextWindow constructor that accepts an ArrayList.
- Thanks to Johannes Schindelin, added the GenericDialog#isPreviewActive() method.
- Thanks to Herbie Gluender, fixed a bug that caused the output of the Plot Profile
and Measure commands to be inconsistent with horizontal or vertical one
pixel wide straight line selections.
- Thanks to Gabriel Landini, fixed a bug that could cause the Results table
to be displayed very slowly on Java 1.7 and 1.8.
- Thanks to Burni, fixed a bug that prevented the ImageWindow.setNextLocation() method
from working with windows normally centered on the screen, such as plot windows.
- Fixed a v1.48 regression that caused the run("Add Selection...", options)
macro function to not work as expected with text selections.
- Thanks to Johannes Schindelin, fixed a v1.48r regression that caused the
"Fonts" dialog to be displayed multiple times or incorrectly if you double-clicked
the text tool icon multiple times.
- Thanks to Johannes Schindelin, Gabriel Landini and Volker Baecker, fixed a v1.48r
regression on Linux that caused ImageJ to freeze when opening a NonBlockingGenericDialog
such as the text tool or arrow tool options dialogs.
- 1.48t 28 March 2014
- Thanks to Ted Toal, holding down the alt key prevents the '+' command
(Image>Zoom>In) from enlarging the window.
- ImageJ remembers the location of the first small image opened.
- Thanks to Norbert Vischer, Plugins>Utilities>Capture Image
hides the zoom indicator.
- Thanks to Dimiter Proanov, Image>Stacks>Plot Z-axis Profile
displays the plot in calibrated units.
- Thanks to Michael Schmid, added a File>Revert
command to the text editor.
- Fixed the Undo command in the text editor and added
the Edit>Balance command, which locates the pair of curly
braces or parentheses that surround the insertion point.
- Thanks to Norbert Vischer, the text editor's Edit>Balance
command handles '{' and '}' in comments and quotes, handles '[' and ']' brackets,
handles escaped characters and detects errors if nested pairs are not balanced.
- The Edit>Options>Compiler command now supports Java 1.8.
- Thanks to Lorenz Maier, the run("Macro...", options) function now works
when the options string starts with "v=" instead of "code=v=".
- Thanks to Nico Stuurman, fixed a bug that caused the
GaussianBlur.blurGaussian() method to throw an exception
if the image had an ROI.
- Thanks to Michael Schmid, fixed a bug that could cause the
BackgroundSubtracter#rollingBallBackground() method to throw an
exception when called with a FloatProcessor.
- Thanks to Carnë Draug and Johannes Schindelin, fixed a bug that
caused the File.directory macro function to not return the expected
value after calling open(path).
- Thanks to Carnë Draug, fixed a bug that precluded running
macro files without extensions from the command line.
- Thanks to Bill Heeschen, fixed a bug that caused Image>Duplicate
to shift any non-rectangular selection in the source image to x=0, y=0.
- Thanks to Jochen Cammin, fixed a bug in File>Import>Raw
that caused it to only load the first slice from each file when
"Open all files in folder" was checked.
- Thanks to Julio Buonfigli, fixed a bug that caused the File>Compile and Run
command in the text editor to throw an exception if the file name did not end in ".java".
- Thanks to Philippe Carl, fixed bugs that caused the drawLine(), drawNormalizedLine()
and drawDottedLine() methods of the Plot class to not work with log plots.
- Thanks to Norbert Vischer, fixed a bug in Image>Zoom>Set that caused
it to not correctly set the window size of stacks with selections.
- Thanks to Eric Denarier, fixed a bug that caused Image>Overlay>From ROI Manager
to not work in batch mode macros.
- Thanks to Ted Toal, fixed a bug in the setResult() macro function that caused
it to not work as expected when changing a string value in the Results table.
- Thanks to Norbert Vischer, fixed a bug that sometimes caused the getProfile() and
run("Plot Profile") macro functions to not work as expected.
- Thanks to Lorenz Maier, fixed a bug that could cause Process>Math>Macro
to throw a null pointer exception.
- Thanks to Michael Schmid, fixed a bug that caused Process>Math>Gamma
to not check for invalid gamma values in preview mode.
- Thanks to Ilan Tal, fixed a regression that caused the "B&C" and "Threshold" windows
to not remember their positions when the "ImageJ" window was closed.
- 1.48s 7 March 2014
- Thanks to Johannes Schindelin, added the Window>Main Window [return]
menu command. On Windows, the command is Main Window [enter].
- Thanks to Philippe Gendre, added a "Marker size:" menu
to the Edit>Options>Point Tool dialog box. The choices are
"Tiny", "Small" (the default), "Mediam" and "Large".
- Thanks to Jeremy Sword, added a "Zero transparent" option to the
Edit>Selection>Image to Selection and Image>Overlay>Add Image
commands.
- The recorder no longer records default options (e.g., 'size=0-Infinity') when recording
Analyze>Analyze Particles, File>Import>Image Sequence and
Image>Stacks>Z Project.
- Image>Show Info displays the image's screen location and,
in parentheses, the screen dimensions.
- Plugins>Utilities>ImageJ Properties displays "Max window bounds"
and the bounds of all monitors on systems with multiple monitors.
- When creating a straight line selection, the angle displayed in the status
bar is now calculated using sub-pixel resolution.
- Added the GenericDialog.setSmartRecording() method, which allows plugins
to suppress recording of default dialog box parameters.
- Thanks to Matt Smith, fixed a bug that could cause a deadlock
when using the stack window scrollbar to move through the slices.
- Thanks to Jiri Janacek, fixed a bug that caused alt-click removal of
a point selection to fail if the point was over an overlay element.
- Thanks to Aaron Schain, fixed a bug that caused
Image>Stacks>Tools>Concatenate to sometimes not work
as expected with hyperstacks.
- Thanks to Stoyan Pavlov, fixed a bug in the Roi Manager that caused ROIs
to not be updated after changing the position in the More>>Properties dialog box.
- Thanks to Josh Balsam, fixed a bug in Image>Stacks>Tools>Make Substack
that caused it to not work in batch mode macros.
- Thanks to Ryota Homma, fixed a bug that caused NonBlockingGenericDialogs to
not be removed from the Window menu when the dialog was closed.
- Thanks to Jan Brocher, fixed a bug that caused Edit>Selection>Make Band
to fail if "EDM output" was not set to "Overwrite" in Process>Binary>Options.
- Fixed a bug that could cause the "ImageJ" window to open behind the Windows taskbar.
- Thanks to Gabriel Landini, fixed a 1.48r regression that caused the
Image>Adjust>Threshold dialog to throw an exception if it was
activated when already open.
- Thanks to John Lim, fixed a 1.48q regression that caused the run("RGB Color") macro
function to not work as expected with composite color images in batch mode macros.
- 1.48r 18 February 2014
- Added "Angle", "Color" and "Bkdg" (background color) choices to the dialog displayed when you
double click on the text tool or use the Edit>Options>Fonts command.
- Thanks to Michael Schmid, the Image>Adjust>Threshold dialog
displays the percentile of thresholded pixels, along with other improvements
(details).
- With text selections, the Edit>Selection>Properties dialog
adds a "Angle:" field and a "Antialiased text" checkbox.
- Improved text tool recording.
- NonBlockingGenericDialogs are added to the Window menu.
- Thanks to Michael Schmid, the Edit>Crop command is undoable.
- Thanks to Aryeh Weiss, added the RoiEncoder.save() and RoiDecoder.open() methods
(example).
- Thanks to Aryeh Weiss, fixed bugs that caused the recorder to not
work as expected when using the ROI Manager to save a single ROI.
- Thanks to Norbert Vischer, Analyze>Set Scale no longer changes
the voxel depth if it is set to a value other than 1.0 (the default value).
- Thanks to Michael Kummer, fixed a bug that caused ROIs with widths or
heights greater than 65535 to not be saved correcty.
- Fixed a 1.48q reqression that caused CompositeImage unit test errors.
- Thanks to Norbert Vischer, fixed a bug that caused voxel depths of
zero to not be saved in the TIFF header.
- Thanks to Michael Schmid, fixed bugs that caused the ImageJ menus to disappear
on Macs when using the "Threshold", "B&C", "Channels", "CP" (Color Picker)
and "Command Finder" dialogs.
- Fixed a bug that caused the text tool to draw the text outline in the foreground
color instead of the selection color.
- 1.48q 1 February 2014
- Image>Overlay>Flatten now works with non-RGB stacks and hyperstacks.
- Thanks to Michael Schmid, the Edit>Selection>Specify command
adds a "Constrain square/circle" option, supports non-integer numbers and no
longer moves the selection when 'Centered' or 'Scaled units' are checked.
- Thanks to Jerome Mutterer, added a setAngle() method to the TextRoi class
(example1,
example2,
example3).
- Thanks to Dimiter Prodanov, Image>Stacks>Plot Z-axis Profile,
in "Live" mode, draws a vertical line on the plot that corresponds to
the current stack position.
- Thanks to Jean-Olivier Irisson, added setNormalize(boolean),
setProcessStack(boolean) and setUseStackHistogram(boolean) methods
to the ContrastEnhancer class.
- Added the Overlay.setFillColor() macro function
(example).
- Thanks to Mark Hiner, the CompositeImage constructor no longer converts
stacks to channels when the number of slices is less than eight if
the dimensions have been set or if the mode is IJ.GRAYSCALE.
- Thanks to Marcel Boeglin, added the ImagePlus.flattenStack() method.
- Fixed a bug that caused horizontal and vertical lines in overlays
in to be deleted when duplicating or cropping images.
- Thanks to Nicolas Brouilly, fixed a bug that caused scales greater than
2,147,483 pixels/unit to be saved incorrectly in the TIFF header.
- Fixed a bug that caused File>Open Next to not work as
expected with TIFF files with overlays.
- Thanks to Norbert Vischer, fixed a bug that caused the close(wildcard)
macro function to sometimes not keep current image active.
- Fixed a bug that caused the ImagePlus.hide() method to remove overlays.
- Fixed a bug that caused macro run() calls using the keyword
'stack' in the options string to fail after the "d" (Draw) or "f" (Fill)
keyboard shortcuts had been used.
- Thanks to Marcel Boeglin, fixed bugs that caused Image>Overlay>Flatten
to not work correctly with hyperstacks and to not be correctly recorded.
- 1.48p 12 January 2014
- Added an "Overlay" option to the Analyze>Tools>Calibration Bar
dialog box.
- Image>Color>Split Channels and
Image>Hyperstacks>Reduce Dimensionality are faster
and preserve slice and frame positions.
- The Image>Color>Make Composite command no longer displays the
"Channels" window or resets the slice position.
- The Help>Update ImageJ dialog now appends the daily build number,
if it exists, to the "You are currently running" version.
- When processing stacks, a "List thresholds" option is added to the Process>Binary>Make Binary
dialog box.
- The Image>Color>Merge Channels command no longer attempts
to auto-fill its dialog unless there are open images created by
Image>Color>Split Channels.
- Added a DEBUG option to the ImageJ constructor. For example, a Java program can
run ImageJ invisibly in debug mode using "new ImageJ(ImageJ.NO_SHOW+ImageJ.DEBUG)".
- Thanks to Philippe Carl, added the
GenericDialog.getRadioButtonGroups() method.
- Added the TextRoi(String,double,double,Font) constructor that can be used as a
drop-in replacement for the drawString() macro function and the ImagePlus.drawString() method.
- Thanks to Jon Nathan, fixed a bug that caused radio buttons in GenericDialogs
to not generate dialogItemChanged events
(example).
- Thanks to Ashley Peery, fixed bugs in Image>Color>Merge Channels that
caused it to not correctly merge more than three RGB images and to ignore
the "Make composite" option when merging RGB images.
- Fixed a bug that caused Image>Stacks>Z Project to not correctly
show progress when processing hyperstacks.
- Fixed a bug that caused the getSelectionCoordinates() macro function
to not work as expected with selections created using makeOval().
- Thanks to Neil Fazel, fixed a bug that caused File>Import>Text Image
to skip the first line of the text image if it consisted of all NaNs.
- Thanks to Tiago Ferreira, fixed a bug that caused the particle analyzer to
sometimes unexpectedly display the Results table if "Stack position" was enabled in
Analyze>Set Measurements.
- 1.48o 31 December 2013
- Fixed a 1.48n regression than caused the "-" (zoom out) command
to sometimes display invalid zoom indicators.
- 1.48n 31 December 2013
- Thanks to Norbert Vischer, Image>Zoom>Set
now works with selections
(example).
- Added the Image>Zoom>Scale to Fit command.
- Fixed a 1.48m regression than caused the "-" (zoom out) command
to sometimes not work correctly with images magnified 100% or less.
- 1.48m 29 December 2013
- Thanks to Dimiter Prodanov, Image>Stacks>Plot Z-axis Profile
now supports "Live" profiling.
- Thanks to "aschain", the channel-slice-frame priority used by the
">" (Next Slice) and "<" (Previous Slice) keyboard
shortcuts can be reversed by enabling
"Reverse CZT order of ">" and "<" in Edit>Options>Misc.
Also, typing ">" or "<" no longer stops animation.
- Image>Scale and Image>Adjust>Size no longer
always use nearest neighbor interpolation when the image width or height is one
(example).
- Thanks to Norbert Vischer, fixed a bug that caused the close(wildcard) macro
function to not work with batch mode images.
- Fixed a bug that caused the active batch mode image to sometimes not
remain the active image after setBatchMode("exit and display");
- Thanks to Michael Schmid, fixed a bug that caused the value unit of
32-bit images to not be saved in the TIFF header.
- Thanks to Christian Meggle, fixed a bug that caused the ImageProcessor.resize()
method to throw an exception when the image width or height was one
(test case).
- Thanks to Norbert Vischer, fixed a bug that cause the close("*") macro
function to throw an exception if no images were open.
- Thanks to Marcel Boeglin, fixed bugs that sometimes caused hyperstacks
with overlays to not be correctly duplicated or cropped
(test case).
- Fixed a bug that caused the ImageProcessor.setRoi(Roi) method
to sometimes not work as expected with single point selections.
- Fixed a bug that caused the "List" option in plot windows to sometlimes
display duplicate arrays.
- Thanks to Steffen Decker, fixed a bug that prevented images displayed at
100% from being scrolled after after the window was reduced in size.
- Thanks to Kees Straatman, fixed a v1.47 regression that caused
the getList("window.titles") macro function to not include the
Threshold and B&C windows.
- Thanks to Norbert Vischer, fixed a 1.48a regression that caused filters
to not work on virtual stack slices.
- 1.48k 15 December 2013
- Added a "previous" choice to the Help>Update ImageJ command.
- Thanks to Marcel Boeglin, the Image>Stacks>Z Project,
Image>Type>RGB Color and Image>Color>Stack to RGB
commands now support overlays.
- Added a TextRoi(x,y,width,height,string,font) constructor that is useful for
creating centered and right-justified text selections
(example).
- Thanks to Marcel Boeglin, fixed a bug that caused right-justified
text selections to not be correctly saved and/or retrieved.
- Fixed a v1.48h regression that caused TrakEM2 tools to not work as expected.
- The
Convert Overlay To Icon
macro converts an overlay or selection in a 16x16 image into a tool icon.
- 1.48j 11 December 2013
- The toolbar is now expandable, with support for up to 15 custom tools.
- Added the String.show(string) and String.show(title,string) macro functions.
- Added a 'G' (draw polygon) command to the macro tool icon generation
language
(example).
- Thanks to Thomas Suchyna, the Image>Adjust>Threshold
window is resizable on Linux and Windows.
- Thanks to Norbert Vischer, fixed a bug that caused Edit>Selection>Straighten
to throw an exception with composite color images with straight line selections.
- Thanks to Marcel Boeglin, fixed a bug in the Overlay.crop() method that sometimes caused
the cropped overlay to be shifted.
- Thanks to Marcel Boeglin, fixed bugs in Image>Hyperstacks>Reduce Dimensionality
that caused it to not work correctly with overlays and with one channel hyperstacks.
- Thanks to Mats Nilsson, and Johannes Schindelin, fixed a 1.48h regression that caused the
getInfo(DICOM-tag) macro function to return empty strings or unexpected values.
- Thanks to Dietmar Kunz, fixed a v1.48f regression that caused the ImageProcessor.duplicate()
method to sometimes not work as expected.
- 1.48i 2 December 2013
- The "Abort Macro or Plugin" action tool (used by Fiji) is not installed if its
installation would result in no free tool slots.
- Thanks to Michael Cammer, fixed a bug that caused the Overlay.setPosition() macro
function to not work as expected with Overlay.drawSting().
- Thanks to Davide Heller, fixed a bug in Process>Binary>Skeletonize
that could result in disconnected segments
(test image).
- Thanks to Pierre, fixed a bug that sometimes caused spline fit segmented lines
to shift 0.5 pixels up and to the left after using Edit>Selection>Interpolate.
- Thanks to Aryeh Weiss and Jay Unruh, fixed a 1.48h regression that could cause Fiji
to fail to start if there were AutoRun macros.
- 1.48h 30 November 2013
- Replaced the blank "Unused Tool" slot in the toolbar with a 9 pixel gap.
The toolsets on the ImageJ website without
an "Unused Tool" have been updated to use no more than seven tools.
- Thanks to Jerome Mutterer, added a "List properties" option to the
Edit>Selection>Properties dialog box.
- Thanks to Sebastien Octeau, added a "Skip dialog when opening .raw file" option
to the Edit>Options>Input/Output dialog box.
- Thanks to Norbert Vischer, the information shown in the Help>About ImageJ
window is displayed in a text window when you press "i" (Image>Show Info) and
is therefore easily copied to the clipboard.
- Changed the default file extension for tables from ".txt" to ".csv" (comma-separated values).
- Added "Insert", "Info" and "Close" buttons to the dialog opened by the
macro editor's Macros>Function Finder command.
- Plots created by Analyze>Calibrate always use an x range of 0-255 with 8-bit images.
- The makeRectangle() and makeOval() macro functions support subpixel resolution.
- Thanks to Jerome Mutterer, added getProperty(), setProperty() and getProperties() methods
to the Roi class and Roi.getProperty(), Roi.setProperty() and Roi.getProperties() macro functions
(example).
- Thanks to Norbert Vischer, added setBatchMode("show") and setBatchMode("hide") macro functions.
- Added Roi.getBounds(), Roi.getColor, Roi.getFillColor, Roi.getCoordinates(), Roi.getName,
Roi.setFillColor(), Roi.setLocation(), Roi.setName(), Roi.setStrokeColor() and setStrokeWidth() macro functions
(example).
- Fixed a bug that caused toolbar icons to sometimes be drawn incorrectly.
- Thanks to Michael Schmid, fixed a bug in Process>Noise>Salt and Pepper that
caused it to omit the last column and row of the image.
- Thanks to Michael Schmid, fixed bugs in the macro interpreter that caused expressions in
the form s+"abc", where 's' is a string variable, to cause macros to abort when used
as a function argument or used in a 'return' statement.
- Thanks to Patrick Page-McCaw, fixed a bug that sometimes caused the particle
analyser, when run from a plugin, to display a "No particles were detected..." dialog.
- Thanks to Norbert Vischer, fixed a bug that caused an exception if the Size or
Circularity fields in the particle analyzer dialog box were blank.
- Fixed a bug that caused the wand tool to not be correctly recorded
if the Recorder was not in "Macro" mode.
- Thanks to Rainer Engel, fixed a bug that caused the particle analyzer
to sometimes unexpectedly add selections to overlays.
- Thanks to Norbert Vischer, fixed a bug that caused the LUT to be
incorrect after switching channels in a batch mode macro.
- Fixed a bug that caused the ROI Manager to sometimes unexpectedly
display a "Save n ROIs as an overlay" message.
- Holger Lorenz contributed the
Sphere Builder and
Ellipsoid Builder,
macros that create spheres/ellipsoids as 3D stacks.
- Ved Sharma has released
Invadopodia tracker,
a plugin for analyzing invadopodia dynamics parameters from fluorescence time-lapse movies.
- 1.48g 14 November 2013
- Increased the size of toolbar icons from 26x26 to 28x28 pixels,
which increased the width of the "ImageJ" window by 42 pixels.
- Reduced the height of the status bar and increased the font size.
- Increased the default menu font size on Windows from 14 to 15 points.
- Added a "Fill with" option of "Random" to the File>New>Image dialog box.
- Thanks to Michael Schmid, File>Save As>Tiff and File>Save As>ZIP
now save the FFT data of FFT windows, except for FFTs of RGB images.
- The File>New>Hyperstack command now labels using an overlay.
- The Image>Show Info command displays overlay information.
- Thanks to Michael Schmid, added the getInfo("window.type") macro function.
- Thanks to Nico Stuurman, added setPaintPending() and getPaintPending()
methods to the ImageCanvas class.
- Thanks to Marcel Boeglin, added translate(x,y)
(JavaScript example)
crop(Rectangle), crop(firstSlice,lastSlice) and crop(firstC,lastC,firstZ,lastZ,firstT,lastT)
methods to the Overlay class.
- Thanks to Marcel Boeglin, fixed bugs that caused Image>Crop and Image>Duplicate
to sometimes not work correctly with images containing overlays.
- Fixed a 1.48f regression that caused unexpected Feret's diameter angles
to be returned.
- Fixed a bug that sometimes caused selections to not be
correctly restored to the last slice or frame of a hyperstack.
- Thanks to Barry DeZonia, fixed bugs that could cause the
Image>Transform>Bin command to not work
correctly on float images with negative pixel values.
- Fixed a bug that sometimes caused custom tool preferences to
not be correctly saved.
- Packt Publishing has released
Image Processing with ImageJ,
a 140 page introduction to ImageJ available in either e-book or paperback format, written by
Javier Pascau and José María Mateos Pérez.
- 1.48f 30 October 2013
- The Recorder now records File>Import>Import URL as
open(url) (macro mode) or imp=IJ.openImage(url) (script or Java mode).
- Thanks to Michael Schmid and Audrey O'Neill, ImageJ can now open MJPG-encoded
files where the size of the JPEG frames differs from the size of the movie frames.
- Thanks to Jan Eglinger, fixed a bug that caused the Recorder to
record duplicate parameters when recording IJ.getFilePath().
- Thanks to Ivan Micetic, fixed a bug that caused File>Revert
to not restore image properties and LUTs.
- Thanks to Christophe Leterrier, fixed a v1.48a regression that caused
selections names longer than 20 characters displayed in the results table
to be truncated.
- Thanks to Bill Heeschen, fixed a v1.48e regression that caused the
Process>Filters>Convolve command to fail.
- Jerome Mutterer contributed the
LineAndProfileTool
macro tool, which creates a line selection while displaying the
corresponding profile plot as an overlay.
- 1.48e 19 October 2013
- Thanks to Michael Schmid, plots now use scientific notation for large numbers
and the curve fitter no longer runs on the event queue and can be aborted.
- Changed the ROI Manager's "Remove Slice Info" command to
"Remove Positions...".
- Line selections are always drawn offset 0.5 pixels down and to the right regardless
of the "Sub-pixel resolution" option in Edit>Options>Profile Plot Options.
- Thanks to Miettinen Arttu, File>Import>Raw now decodes image dimensions
embedded in file names (e.g., "name1_512x512.raw", "name2_256x256x256.raw").
- The default "Fill with:" option in the File>New>Image
dialog is now "Black" and the default foreground color is white and the default
background color is black.
- Added a "Help" button to the Analyze>Gels>Gel Analyzer Options
dialog box.
- Fixed a 1.48d regression the caused the "Simplex Fitting Options" dialog in
Analyze>Tools>Curve Fitting to throw and exception when
performing user-defined fits.
- Thanks to Michael Schmid, fixed a curve fitting bug which could cause unintended
values for the initial parameters (resulting in more iterations than necessary).
- Thanks to Peter Haub, fixed a bug that caused the CommandListener interface to not
work as expected when ImageJ was exited by clicking on the "ImageJ" window's the close box.
- Thanks to Pavol Bauer, fixed a bug that caused Process>Batch>Macro to
not open .lsm files using Bio-Formats when the LSM_Reader plugin was not installed.
- Fixed a bug in the new File>Open Samples>Cache Sample Images command
that caused it to throw an exception.
- Thanks to Michael Schmid, fixed a bug that caused the spline fitter to sometimes
not work as expected
(example).
- Thanks to David Bragason, fixed a bug that made it impossible to subtract from a
selection or create a centered oval selection if there was an underlying overlay.
- Fixed a bug that caused the bounding box of spline fit selections to be incorrect.
- 1.48d 28 September 2013
- Thanks to Johannes Schindelin, added the
File>Open Samples>Cache Sample Images command.
- Thanks to Stephan Saalfeld, Image>Type>32-bit
now supports conversion of RGB stacks to 32-bit float and
RGB to float conversions are done directly.
- Thanks to Michael Schmid, added "Exponential Recovery (no offset)"
and "Chapman-Richards" curve fitting options.
- The File menu and popup menu of non-active results windows
now contain "Rename..." and "Duplicate..." commands.
- The title of a non-active results window changes
if it is saved using a different name.
- Thanks to Norbert Vischer, added the Array Inspector to the
macro debugger
(test macro).
- In the macro language, 'break' and 'continue' statements
are now supported in 'for' and 'while' loops.
- Thanks to Norbert Vischer, added the Array.show() macro function
(examples).
- Thanks to Dimiter Prodanov, fixed a bug that caused the Recorder to not generate
a plugin that would compile and run after recording Process>Image Calculator.
- Thanks to Jonas Ogaard, fixed a bug that sometimes caused an exception when
drawing ROIs created with the brush selection tool.
- Thanks to Dimiter Prodanov, fixed bugs that caused Analyze>Plot Profile
to not work correctly when the intensity was uniform.
- Fixed a bug that caused the Recorder to not correctly record the polygon,
segmented line and point tools in "JavaScript" mode.
- Fixed a bug that caused the Recorder, when not in "Macro" mode, to sometimes
not correctly record commands in the Edit>Selection menu.
- Thanks to Eric Denarier, fixed a bug that could cause the Results window to become
inconsistent when using the Measure command after running the particle analyzer.
- Thanks to Guy Lyons, fixed a bug that caused the roiManager("Show All with labels") macro
function to not work in batch mode.
- Thanks to Dimiter Prodanov, fixed a bug that could cause ImageJ to throw an
exception on startup.
- Thanks to Barry DeZonia, fixed a bug that caused the ImageProperties.getUnitIndex()
method to not work correctly when passed the string "mile".
- Thanks to Barry DeZonia, fixed a bug that caused the Image>Properties
dialog to not reset the Y and Z units when the "Unit of length" was changed.
- Thanks to Michael Schmid, fixed a 1.46f regression that caused some user-defined
curve fits to fail.
- Fixed a 1.48 regression that caused the ROI Manager to not correctly
associate hyperstack ROIs to CZT positions.
- 1.48c 12 September 2013
- Thanks to Marcel Boeglin, plugins launched using Plugins>Compile and Run
now display a full stack trace if they throw an exception.
- Thanks to Chris Coulon, the "" keyboard shortcuts no longer display
"There are no images open" and "Stack required" error messages.
- Thanks to Norbert Vischer, the output of the Array.print() macro function
is better formatted.
- Thanks to Norbert Vischer, added the Array.findMaxima() and Array.findMinima()
macro functions and corresponding MaximumFinder.findMaxima() and MaximumFinder.findMinima()
methods (examples).
- Thanks to Volko Straub, added the Overlay.moveSelection(index,x,y) macro function
(example).
- Thanks to Wilhelm Burger, added convertToByteProcessor(), convertToShortProcessor(),
convertToFloatProcessor() and convertToColorProcessor() methods to the ImageProcessor class.
- Thanks to Arthur Edelstein, added the Prefs.paintDoubleBuffered flag.
- Thanks to Jose Maria Mateo, fixed a bug that caused run() macro calls using "&" notation
to incorrectly pass numeric variables to the GenericDialog's getNextChoice() method.
- Thanks to Bjoern Thiel, fixed a bug that caused the Analyze>Plot Profile
command to not work as expected with spatially calibrated image with non-square pixels.
- Thanks to Norbert Vischer, fixed a bug that caused the Plot.create() macro function to
throw an exception if the y array was shorter than the x array.
- Thanks to Norbert Vischer, fixed a bug that caused plots created by batch mode
macros to not be scaled.
- Thanks to Ved Sharma, fixed a bug that caused Analyze>Tools>Synchronize Windows
to not work as expected with c=1, z=1, t>1 stacks.
- Thanks to Rainer Engel, fixed bugs that sometimes caused the IJ.redirectErrorMessages() macro
function to not prevent file read errors from aborting macros
(example).
- Thanks to Norbert Vischer, fixed a bug that caused Image>Duplicate
to throw an exception if there was a selection outside the image.
- 1.48b 25 August 2013
- Thanks to Michael Doube and Johannes Schindelin, added the "Interpolate ROIs"
command to the ROI Manager.
- Thanks to Norbert Vischer, submenus are now supported in the Plugins>Macros menu
(example).
- Updated the templates generated by the Plugins>New>Plugin and
Plugins>New>Plugin Filter commands.
- Rather than display an error message, the Copy and Cut
commands now copy or cut the entire image when there is a line or point selection.
- Added the ImageProcessor.set(double) method, now used by the
Process>Macro>Set command.
- Thanks to Eric Barnhill, added the HyperStackConverter.toHyperStack() method.
A call to this method is generated if the recorder is running in script mode and the
Image>Hyperstacks>Stack to Hyperstack command is used.
- The Plugins>Macros>StartupMacros command works
when the startup macros file is names StartupMacros.ijm.
- The ImageConverter class works with stacks.
- Thanks to Johannes Schindelin and Hans Wurscht, fixed a bug that sometimes caused
memory used by images opened in batch mode macros to not be reclaimed
(test macro).
- Fixed a bug that caused run("Command") macro calls to run in a separate thread
if "Command" was a macro installed in the Plugins>Macros submenu.
- Thanks to Jan Brocher, fixed a bug that caused Image>Overlay>Flatten
to sometimes not work as expected with RGB stacks.
- Thanks to Gilles Carpentier, fixed a bug in the macro interpreter that caused
it to incorrectly assign expanded arrays.
- Thanks to Michael Schmid, fixed a bug that caused the FFT command
to incorrectly display power spectra of RGB images.
- Thanks to Alberto Duina, fixed a 1.48a regression that sometimes caused the
ImageJ.updateAndDraw() method to throw an exception.
- Fixed a bug that caused the IJ.getImage() method to display a "...Macro cancelled"
error when using the "Compile and Run" command and no image was open.
- Thanks to Gilles Carpentier, fixed a bug that sometimes caused the
particle analyzer to display a blank Results table.
- Thanks to Michael Schmid, fixed a bug that caused ImageJ to not correctly
save 16-bit grayscale images in PNG format.
- Thanks to Alberto Duina, fixed bugs that caused Edit>Selection>Interpolate
to create straight line selections shorter than the original and to not work
correctly with straight lines selections wider than one.
- 1.48a 22 July 2013
- Added the Image>Overlay>List Elements command.
- Thanks to Peter Haub, color LUTs are saved with 16-bit and 32-bit TIFFs.
- Thanks to Simon Roussel, added Edit>Find and Edit>Find Next
commands to text windows, such as those created by Image>Show Info.
- The Image>Show Info command displays the display
range of each channel, up to 7.
- The "Set stack positions" option in the Image>Overlay>Options
dialog is enabled by default.
- Added a "Position:" field to the Edit>Selection>Properties
dialog box.
- Thanks to Dimiter Prodanov, added duplicate(), crop() and convertToFloat()
methods to the ImageStack class.
- Thanks to Franz Graf, added the ColorProcessor.setRGBWeights() method,
a thread-safe (non-static) version of ColorProcessor.setWeightingFactors().
- Thanks to Michael Doube, fixed a bug that caused plugins in jar files with
a plugins.config entry starting or ending in one or more spaces to not be
installed correctly.
- Thanks to Jason Rogers, fixed a bug that caused the
Edit>Copy command in "Results" windows to
not work with one line tables.
- Thanks to Vytas Bindokas, fixed bugs that caused
3D filters in Process>Filters to not work correctly
with hyperstacks and to sometimes throw exceptions.
- Thanks to Fabrice Cordelieres, fixed a 1.47v regression that sometimes caused
unexpected results from setting the "plugins.dir" Java property.
- Thanks to Norbert Vischer, fixed a bug that caused some commands in
Process>Filters to throw an exception if the selection was outside the image.
- Thanks to Gilles Carpentier, fixed a bug that caused a corrupted file to be
created when using the setMetadata("Info","") macro function on a composite color
image with an overlay and saving in TIFF format.
- Thanks to Dimiter Prodanov, fixed a bug that sometimes caused a displayed stack
to become inconsistent after the ImageStack was updated.
- Thanks to Julien Berro, fixed a bug the caused the ROI Manager "Update" function
to sometimes not work as expected with hyperstacks.
- Thanks to Karsten, fixed a bug that caused Analyze>Measure to add
very long selection names (longer than 20 characters), or selection names duplicating the image
name, to labels in the Results table "Label" column.
- 1.47v 8 July 2013
- Thanks to Wilhelm Burger, Plugins>Compile and Run works with plugins
in packages that correspond to subfolders of the plugins folder and the PluginClassLoader searches
ImageJ/jars for library jar files and classes.
- Thanks to Gilles Carpentier, the ROI Manager's More>>List command
now displays ROI stack and hyperstack positions and Overlay ROIs are always
displayed on composite color images regardless of the stack positions of the ROIs.
- Thanks to Laurent Holtzer, fixed a bug that caused Image>Adjust>Brightness/Contrast
to not work correctly with 16-bit virtual stacks opened using the Bio-Formats plugin.
- Fixed a bug the caused the getBitDepth() method of ImageProcessor subclasses to sometimes return 0
- 1.47u 25 June 2013
- Thanks to Tiago Ferreira, the Plugins>Utilities>Search command now displays
"Double-click on a file name to open it" in the Log window header bar.
- Added a "Keep after adding to overlay" option to the arrow tool options dialog box.
- Thanks to Elyse Aurbach, Analyze>Calibrate supports four more
calibration functions and displays better calibration plots.
- Thanks to Norbert Vischer, added the debug("conditional") macro function.
- Thanks to Ved Sharma, fixed a bug that caused the particle analyzer to always create a
new "Summary of ..." table when processing stack slices.
- Thanks to Tiago Ferreira, fixed a bug in the Overlay.activateSelection() macro
function that caused it to ignore stack positions.
- Thanks to Barry DeZonia, fixed a bug that caused Image>Stacks>Tools>Reverse
to not work with virtual stacks defined in Imglib.
- Thanks to C Heeney, fixed a bug in the PolygonRoi class that caused
it to modify the contains of float arrays passed to it in the constructor.
- Thanks to Sebastien Simard, fixed a bug that caused multi-line arguments passed to user
plugins to be displayed in the Log window when ImageJ was in debug mode.
- Thanks to Jerome Mutterer, fixed a v1.47 regression that caused command line options
similar to "-Dplugins.dir=..\ImageJ" to not work as expected.
- Fixed a bug that caused the paths returned by getDirectory("image") and getDirectory("macros")
to be incorrect if the path specified in the "-Dplugins.dir=path" command line option ended in "plugins".
- Thanks to Andrew York, fixed a bug that caused macros run from the command line
to sometimes unexpectedly display dialog boxes.
- Thanks to Alberto Duina and Gabriel Landini, fixed a v1.47t regression that caused
an exception to be thrown if a string with a length less than 3 was entered into a dialog box
and the recorder was running.
- 1.47t 7 June 2013
- The macro intepreter provides a better error message when a macro tries to index an empty array,
such as the ones returned by the split() function when no tokens are found.
- Thanks to Gilles Carpentier, fixed a bug that caused Image>Stacks>Tools>Reverse
to not work as expected with composite color images.
- Fixed a bug that sometimes caused Edit>Options>Memory & Threads
to fail when ImageJ was started using the Linux launcher.
- Thanks to Josef Borkovec, fixed a bug that caused GenericDialogs to not correctly record
strings containing Windows file paths with backslashes.
- Thanks to Barry DeZonia, fixed a bug in Image>Color>Arrange Channels
that caused it to throw an exception with stacks with more than 10 channels.
- Thanks to Gilles Courtand, fixed a v1.47s regression that caused the
Process>Batch>Macro and Process>Batch>Virtual Stack
commands to throw exceptions.
- Peter Bankhead has made available
Analyzing fluorescence microscopy images with ImageJ,
a 184 page introduction to image analysis in PDF format.
- 1.47s 3 June 2013
- Fixed a 1.47r regression that sometimes caused color composite
images to not work as expected.
- 1.47r 2 June 2013
- Added the Image>Color>Display LUTs command.
- Improved the Plugins>Utilities>Search command,
which now uses radio buttons in its dialog box.
- Philippe Carl extended the Plot class to support log and
arrow plots
(example1,
example2).
- Thanks to Federico Luzzati, added a "Prepend" option to
the Image>Stacks>Add Slice dialog box.
- Added a "BeanShell" mode to the command recorder (Plugins>Macros>Record).
- Thanks to Samuel Inverso, the File>Import>Raw dialog is displayed when
a .raw file is dragged and dropped on the "ImageJ" window or opened using File>Open.
- ImageJ now replaces underscores with spaces when adding .lut files in the ImageJ/luts directory
to the Image>Lookup Tables menu.
- Thanks to Ingo Bartholomaeus, several ImageProcessor methods (e.g. copyBits())
no longer display progress bars.
- Thanks to Norbert Vischer, the setColor() and Plot.setColor() macro functions now
accept hex strings such "#ff0000".
- Added the getList("LUTs") macro function
(example) and the IJ.getLuts() method.
- Added the newImage(title,type,width,height,channels,slices,frames) macro function, which is
recorded when using the File>New>Hyperstack command.
- Added the addRadioButtonGroup() and getRadioButton() macro functions
(example).
- Added the addRadioButtonGroup() and getNextRadioButton() methods to the GenericDialog class
(example).
- Thanks to David Nauen, fixed a bug that caused Analyze>Measure to not calculate and display
"Centroid" values of straight line selections.
- Thanks to Matt Smith, fixed a bug that caused RGBA tiff stacks to not be opened correctly.
- Thanks to Gilles Carpentier, fixed a bug that caused the Edit>Selection>Restore Selection
command to sometimes fail.
- Thanks to Gilles Carpentier, fixed a bug that caused Edit>Paste
to not work as expected with selections that extend beyond the image boundary.
- Thanks to Johannes Schindelin, fixed ROI Manager bugs that caused key presses to be recorded
twice, caused multiple selections to be recorded incorrectly as single selections, and caused
macro calls like roiManager("Select",newArray(1,2)) to not update the GUI.
- Worked aroung a bug in Java 1.7 for OS X that caused the DirectoryChooser, used by
File>Import>Image Sequence, to fail.
- Thanks to Christophe Leterrier, fixed a bug in File>Import>Image Sequence
that caused it to not set the slice label when the folder being opened contained a single image.
- Thanks to Sebastian Rhode, fixed a bug that sometimes caused
Analyze>Tools>Synchronize Windows to not work as expected
when synchronizing hyperstack positions.
- Thanks to Gilles Carpentier, fix a bug that sometimes caused ROIs with names containing
dashes to not be displayed in a stack overlay.
- 1.47q 6 May 2013
- Added the Image>Stacks>Tools>Set Label command.
- Thanks to Stephan Saalfeld, fixed a bug that caused the width and height
of selections to be capped at 99999.
- Thanks to Burri Olivier and Michael Schmid, fixed a bug that caused
Analyze>Distribution to not work with ranges containing negative numbers.
- Thanks to Abed Alnaif, fixed a bug that caused Analyze>Plot Profile to
sometimes not work correctly with wide segmented line selections.
- Thanks to Brian Barford, fixed a v1.47j regression that caused the
Chart White Balance plugin to not work correctly.
- Fixed a v1.47o regression that caused Bio-Formats to throw an exception when opening virtual stacks.
- 1.47p 29 April 2013
- Added the Edit>Selection>Scale command.
- The roiManager("Rename",name) macro function
adds "-1" to names that duplicate existing names.
- Fixed a bug that caused the Edit>Selection>Rotate command
to not work with composite selections.
- Fixed a 1.47o regression that caused incorrect display of measurement results if
"Stack position" was enabled in Analyze>Set Measurements and also caused
the List.setMeasurements() macro function to fail.
- Jan Brocher contributed
BioVoxxel Toolbox, which includes
these macros: Advanced Particle Analyzer, Feature Extractor, Speckle Inspector, Watershed Irregular Structures,
EDM Erosion and Dilation, Auto Binary Masking, Threshold Checker, Contrast Detection,
Difference of Gaussian, Difference from Median and Hyperstack Color Coding.
Documentation is at www.biovoxxel.de/macros.html.
- 1.47o 26 April 2013
- Results tables can now contain columns of strings
(example).
- Added the File>Import>Table command.
- Added an "Open images using Bio-Formats" option to
Process>Batch>Convert.
- Thanks to Norbert Vischer, File>Save As>PNG saves 4-image
8-bit stacks or hyperstacks as PNG with alpha if the label of the fourth image is "Alpha".
- Thanks to Wilhelm Burger, added the ImagePlus.setAntialiasRendering(boolean) method,
which enables/disables use of antialiasing by the ImagePlus.flatten() method and the
Image>Overlay>Flatten command.
- Updated the ColorProcessor.getChannel() and ColorProcessor.setChannel()
methods to support the alpha channel
(example).
- Updated the setResult() macro function to work with string values and
added the getResultString() function.
- Updated the ResultsTable addValue() and setStringValue() methods to work
with string values and added the getStringValue() method
(example).
- Added the IJ.getFilePath(dialogTitle) method.
- Added the Opener.openUsingBioFormats(path) and Opener.openTable(path) methods.
- Johannes Schindelin added missing close() calls that caused Eclipse's resource leak warnings.
- Johannes Schindelin made the ImageJ source compatible with Java 1.5 again by removing
an illegal @override annotation from SubHyperstackMaker.java.
- Thanks to Tom Kazimiers, fixed a v1.47f regression that caused the saveAs("tif",path) macro
function to convert ".tiff" extensions to ".tif".
- Thanks to Curtis Rueden, fixed a bug the caused Image>Stacks>Make Montage
to not work as expected with composite color images.
- Fixed a bug the caused Edit>Selection>Fit Spline to not work
correctly with polygon selections.
- Thanks to Philippe Carl, fixed a bug that sometimes caused the
ImagePlus.setProcessor() method to not work as expected with stacks.
- Thanks to Fabrice Cordelieres, fixed a bug that caused the
Image>Stacks>3D Project command to throw an exception
when working with 16 or 32 bit stacks and the "Interpolate" option was enabled.
- Thanks to Jan Eglinger, fixed a bug that caused the precision of imported
results to always be set to 3 decimal places.
- Norbert Vischer released
Perspective Stack View,
a macro set that creates perspective views of stacks and hyperstacks for use in presentations or publications.
- 1.47n 30 March 2013
- The Image>Show Info command uses the
Exif Reader
plugin (version 2013/03/29 or later) to display Exif data of JPEG images.
- Added a Macros>Show Log Window command to the macro editor.
- Thanks to Johannes Schindelin, the eval("script",JavaScriptCode) macro function
now returns, as a string, the value of the last expression evaluated.
- The ImageListener interface triggers an image updated event
when an image is renamed.
- The Compile and Run command downloads the
Java compiler
to the plugins/jars folder as needed.
- Added the blurGaussian() and applyMacro()
methods to the ImageProcessor class
(example1,
example2).
- Added the Overlay.setPosition(c,z,t) and Overlay.drawLabels() macro functions.
- Fixed a bug that caused the Python print statement to not work as expected.
- Thanks to Julian Cooper, fixed a bug that caused bounding box values displayed
in the Results window, when measuring lines selections, to always be in pixel units.
- Thanks to Curtis Rueden, fixed a bug that caused the ROI Manager to not restore
hyperstack ROIs to the current CZT position.
- Thanks to Julian Cooper, fixed a bug that caused vertical lines selections at the
left image edge or horizontal line selections at the top image edge to not
be restored correctly.
- Thanks to Dimiter Prodanov, fixed a bug that could cause the ROI Manager
to throw an exception if it contained a zero-point PolygonRoi.
- Thanks to Michael Epping, fixed bugs that caused the Flip Horizontally,
Flip Vertically, Rotate Left and Rotate Right commands to not correctly
transform the image origin.
- Thanks to Rich VanMetter, fixed a bug that caused some DICOM images
to open slowly.
- Thanks to Stephen Cody, fixed a bug that caused the "Select" option in
Image>Adjust>Color Threshold to sometimes not work as expected.
- 1.47m 6 March 2013
- Added the Plugins>Install command.
- Thanks to John Hayes, added a Macros>Evaluate Python command to the macro editor.
The 8MB
Jython interpreter
is downloaded as needed from the ImageJ website to ImageJ/plugins/jars.
- Scripts in the plugins folder with ".bsh" and ".py" extensions are added to the Plugins menu.
- "Exception" windows now display the ImageJ version, Java version, OS version and memory usage.
- Plugins>Utilities>ImageJ Properties now displays
values returned by IJ.getDirectory() and all Java properties.
- Improved recording of foreground/background color settings and the "Black background" option.
- Thanks to Wilhelm Burger and Johannes Schindelin, output to System.out and System.err is redirected to the Log window
when ImageJ is in the debug mode.
- Wilhelm Burger's
IjLogStream
class is built into ImageJ as ij.io.LogStream.
- Thanks to Christophe Deroulers, added the roiManager("save selected", path)
macro function.
- Added the eval("bsh",script) and eval("python",script) macro functions.
- Fixed a v1.47d regression that sometimes caused the Process>Binary>Convert to Mask
command to change the "Black Background" option.
- Thanks to Leon Espinosa, fixed a v1.47j regression that caused ROIs added to the ROI Manager by
the particle analyzer to have null names.
- Thanks to Norbert Vischer, fixed a bug that caused the Edit>Selection>Rotate
command to not work as expected with rounded rectangle selections.
- Thanks to Antti Niemisto and Gabriel Landini, fixed a bug that caused the "Minimum" thresholding
method to set the wrong threshold for some unusual histograms.
- Gilles Carpentier contributed
Sort Selections in Overlays,
a macro that sorts selected overlay elements by color (requires v1.47k).
- 1.47k 17 February 2013
- Thanks to Norbert Vischer, fixed a 1.47j regression that caused the
Analyze>Plot Profile command
to not work with line selections wider than 1.
- 1.47j 15 February 2013
- The Edit>Selection>Enlarge command is much faster.
- Thanks to Norbert Vischer, the macro debugger now flags changed variables.
- Thanks to Norbert Vischer, Edit>Selection>Line to Area, with
straight line selections, now creates 4-corner polygons instead of traced selections.
- Added the "Enhanced line tool" option to Edit>Options>Misc,
which allows straight line selections to be created by clicking at the start and at again the end.
- The File.openAsString() macro function no longer has a file size limit.
- Thanks to Rainer Engel, added the File.copy(path1,path2) macro function.
- Thanks to Norbert Vischer, added the Array.resample(arr,len) macro function.
- Added the Overlay.addSelection(color), Overlay.addSelection(color, strokeWidth)
and Overlay.addSelection("", 0, fillColor) macro functions.
- Thanks to Miso Mitkovski, fixed a 1.47i regression that caused
the command finder to sometimes not work as expected when using the down arrow and
enter keys.
- Thanks to Gilles Carpentier, fixed a bug that could cause the ROI Manager
to not work correctly if ROIs with duplicate names were programatically added.
- Thanks to Norbert Vischer, fixed a bug that caused the split() macro function
to not return a zero length array when no tokens were found.
- Thanks to Ignacio Arganda-Carreras, fixed a bug that caused the SaveDialog
class to add the extension twice if it was longer than four characters.
- Thanks to Sebastien Tosi, fixed a bug that sometimes caused the
getHistogram() macro function to not work as expected with 16-bit images.
- Photos from the 2012 ImageJ conference in Luxembourg are
available online.
- 1.47i 25 January 2013
- Thanks to Curtis Rueden, the command finder (Plugins>Utilities>Find Commands)
uses a table to display additional information about the commands it finds.
- Improved the Plugins>Shortcuts>Create Shortcut command.
- The Image>Stacks>Plot Z-axis Profile command works with hyperstacks.
- Thanks to Adam Brin, added the IJ.getErrorMessage() method.
- The "Startup Macros" command in the toolbar's ">>" menu looks for a file named StartupMacros.fiji.ijm
if StartupMacros.txt is not found in the macros folder.
- Added the Overlay.addSelection() and Overlay.activateSelection() macro functions.
- Michael Schmid fixed a bug that sometimes caused Process>Noise>Remove Outliers
and Process>Binary>Erode to not work correctly when processing stacks using
multiple threads.
- Thanks to Alistair MacDougall, fixed a v1.47f regression in the saveAs("tiff",path) macro function that caused
it to not update the image title.
- Fixed a 1.47f regression that caused the saveAs("tiff") macro function
to throw an exception.
- Fixed a bug that caused the String.copyResults() macro function to ignore selections,
which is not consistent with the Results window's Edit>Copy command.
- Thanks to Ved Sharma, fixed a bug that caused the macro language return
statement to not correctly return string array values.
- Thanks to Erik Belanger, fixed a bug the caused Image>Stacks>Delete Slice
to not work correctly with hyperstacks.
- Thanks to Julien Vaubourgeix, fixed a bug in Image>Stacks>Label that caused
it to delete any existing overlay when the "Use overlay" option was enabled.
- Fixed a bug that caused the saveAs(path) macro function to display
a "Save As" dialog box.
- 1.47h 23 December 2012
- Thanks to Denis Meuthen, you can now create a straight line selection by
defining the start of the line with one click and the end with another click.
- Thanks to Curtis Rueden, Image>Stacks>Tools>Make Substack
now works with hyperstacks.
- Thanks to Jerome Mutterer, the arrow, brush, pencil and pixel inspector
tools remember the location of their options dialogs.
- Thanks to Rainer Engel, the "Log" window remembers its dimensions.
- File>Save As>Image Sequence displays a warning if
the first file in the sequence will overwrite an existing file.
- The File>New>Hyperstack command can
be invoked by pressing alt-n.
- Thanks to Gilles Carpentier, fixed a bug that caused the run("Make Composite")
macro function to sometimes not work as expected.
- Michael Schmid fixed a bug that prevented the AVI Reader from correctly
opening as virtual stacks AVI files with blank frames.
- Thanks to Alex Hughes, fixed a bug that caused the ROI Manager's Multi Plot
command to disregard the "Vertical profile" option in the
Edit>Options>Profile Plot Options dialog box.
- Thanks to Kees Straatman, fixed a bug that caused
Analyze>Tools>Analyze Line Graph to hang
with non-thresholded images.
- Thanks to John Oreopoulos, fixed a bug that caused File>Import>Image Sequence
to sometimes not work as expected when all the images in the sequence were not the same type.
- Thanks to Jerome Mutterer, fixed a bug that caused an exception when
pasting, in a macro, a non-recangular ROI that was partially outside the target image.
- Thanks to Vanessa Bell, fixed a bug that caused the getSelectionCoordinates()
macro function and Roi.getPolygon() method to sometimes unexpectedly return
the bounding rectangle of composite selections.
- Thanks to Aivar Grislis, fixed a v1.47g regression that caused the setLocation()
macro function to not work with some non-image windows.
- Thanks to Michael Schmid, fixed a bug that caused "Cancel" to not work as expected
for dialogs in "Preview" mode with commands called from macros.
- Thanks to Jarek Sacha, fixed a bug that caused ImageListeners to sometimes
not be notified when the image was updated.
- Michael Schmid fixed two PlugInFilterRunner bugs related to Preview and PARALLELIZE_IMAGES.
- 1.47g 2 December 2012
- Changed the "Brightness/Contrast", "Channels", "Threshold" and "Color Picker" windows
to modeless dialogs that do not have the iconize and maximize buttons
that are problematic on Windows.
- Thanks to Bill Christens-Barry, added an "Auto contrast stacks" option to the
Edit>Options>Appearance dialog box. Alternatively, hold down
the shift key when scrolling stacks.
- Thanks to Thomas Kuhne, Emil Kesler and Yili Zhao, Plugins>Compile and Run,
on Java 1.6 or later, uses javax.tools.JavaCompiler instead of com.sun.tools.javac.Main.
- Thanks to Norbert Vischer, added the close(pattern) macro function
(example)
and the ij.util.WildcardMatch class.
- Thanks to Jerome Mutterer, added the getValue("rgb.foreground") and
getValue("rgb.background") macro functions.
- Thanks to Norbert Vischer, added the setForegroundColor(rgb) and
setBackgroundColor(rgb) macro functions.
- Thanks to Bill Christens-Barry, added the setOption("auto contrast",boolean)
macro function.
- Worked around a bug on Windows 8 that made scrollbar thumbs nearly
invisible.
- Fixed a bug that caused an exception when File>Revert
was used on a duplicated image.
- Thanks to Olivier Cardoso, fixed a bug that could cause an exception
when calling an Ext macro function.
- Jerome Mutterer and Edda Zinck have released
FigureJ,
a plugin that makes it easy to create figures for scientific articles.
- Dimiter Prodanov contributed
Mexican Hat Filter, a plugin
that convolves a 2D image with a Laplacian of Gaussian filter.
- 1.47f 18 November 2012
- Added the IJ.saveAsTiff() method.
- Fixed a v1.46f regression that caused the applet version of ImageJ
to not open images specified using HTML parameters.
- Thanks to Erik Belanger, fixed a bug that caused the setMinAndMax() macro function
to not work with batch mode composite color images.
- Fixed several stack flattening bugs.
- Fixed several hyperstack related bugs in the Image>Scale command.
- Fixed a bug that caused the saveAs("tif",path) macro function to not work
correctly on consecutive command line macro calls.
- Thanks to Norbert Vischer, fixed a bug that caused Copy from the "Log"
window to not work correctly for lines containing tabs when "Copy row numbers"
was not enabled in Edit>Options>Input/Output.
- Thanks to Jerome Mutterer, fixed a bug that prevented the
FigureJ plugin
from being able to restore tools.
- 1.47e 9 November 2012
- Added the Macros>Evaluate BeanShell command to the macro editor.
This command requires that a copy of BeanShell.jar
be in the plugins folder.
- Thanks to Michael Kaul, bilinear interpolation works better with float images containg NaNs.
- Thanks to Michael Schmid, added a "Gaussian (no offset)" curve fitting option.
- The recorder displays a warning when the options string in run(command,options)
calls contain one or more non-ascii characters.
- Added the Toolbar.restoreTools() method
(example).
- Added the ParticleAnalyzer.setFontColor(String) method
and the call("ij.plugin.filter.ParticleAnalyzer.setFontColor","blue")
macro function.
.
- Thanks to Thomas Boudier, added a public GaussianBlur3D.blur() method.
- Thanks to Michael Schmid, fixed a v1.46 regression that could cause curve fitting errors.
- Simon Bear fixed a bug that caused black pixel data to be ignored when loading CMYK TIFFs.
- Fixed a bug that caused the source stack to become corrupted when scaling by x=1.0 and y=1.0
in Image>Scale.
- Thanks to Thorsten Wagner and Michael Schmid, fixed a bug that caused the
Analyze>Summarize command to fail if the Results table contained
headings with spaces.
- Thanks to David Gauntt, fixed a bug in the FHT class that caused it
to fail when calculating the power spectrum of 1D arrays larger than 32K.
- Thanks to Jarek Sacha, fixed a bug that cuased File>Import>Image Sequence
to sometimes not set the correct slice labels when opening a series as a virtual stack.
- Gilles Carpentier contributed
Angiogenesis Analyzer,
a macro toolset for analysis of cellular networks, for example the pseudo vascular organization
of endothelial cells cultured in a gel medium
(documentation).
- 1.47d 5 October 2012
- Thanks to Norbert Vischer, added the
Image>Color>Arrange Channels command.
- Thanks to Michael Cammer, when processing stacks, added "Method" and "Background" choices
to the Process>Binary>Convert to Mask dialog.
- Thanks to Ved Sharma, the arrow tool draws bolder outlined arrows.
- Deleted the redundent Image>Hyperstacks>Channels Tool menu command.
- Thanks to Norbert Vischer, added the getInfo("command.name") macro function
(example).
- Added the setOption("jfilechooser") macro function.
- Fixed a bug that caused the roiManager("select",n) macro function, and RoiManager.select()
method, to display an error message if no images were displayed.
- Thanks to John Page, fixed a bug that caused CMYK TIFFs to open inverted.
- Thanks to Birgit Möller, fixed a bug that sometimes caused the ImagePlus.show() method
to not work as expected on closed images.
- Thanks to Norbert Vischer, fixed a bug that sometimes caused the
Edit>Selection>Line to Area command to not work as expected.
- Thanks to Gilles Carpentier, fixed bugs in Process>Binary>Skeletonize that
caused it to sometimes not remove all skeleton pixels.
- Thanks to Leon Espinosa, fixed a bug that caused "Apply" in the "Threshold"
tool to always use the default thresholding method.
- Thanks to Jan Eglinger, fixed a bug that caused incorrect recording,
when the recoder was in "JavaScript" or "Plugin" mode,
of plugins that used the run(imp,..) methods of the Duplicator class.
- Norbert Vischer fixed a bug that caused line numbers in macro error messages to be
incorrect with macros containing emptly lines inside SlashStar comments.
- Thanks to Jiri Janacek, fixed a bug the caused the perimeter of composite ROIs in
spatially calibrated images to be incorrect.
- Thanks to Michael Schmid, fixed a bug that could cause file corruption if the
Crop command was used while a stack was being saved.
- Thanks to Eric Denarier, fixed a bug in Process>Batch>Macro that caused
it to somestimes not output the correct images.
- Kota Miura has made available
two textbooks
("Basics of Image Processing and Analysis" and "Macro Programming in ImageJ")
he uses for the ImageJ classes he teaches.
- 1.47c 8 September 2012
- Added a "Source" (display source code of selected command) button to Plugins>Utilities>Find Commands.
- Dorai Iyer added a "Bar" option to the arrow tool.
- Bill Mohler modified the ROI Manager to use a JList instead of a List, which
makes loading and sorting the large (>10,000) ROI sets faster.
- Added an "Append results" checkbox to the ROI Manager's "Multi Measure" command.
- When opening images, the transfer rate in MB/sec is displayed in the status bar.
- Thanks to Sébastien Tosi, opening TIFF files using
File>Import>URL is faster and requires less memory.
- Thanks to Jan Eglinger, fixed a bug that caused incorrect recording of commands
implemented in JavaScript when the recorder was in "JavaScript" mode.
- Thanks to Sébastien Tosi, fixed a bug that caused
File>Import>URL to not correctly read TIFF files larger than 2GB.
- Fixed a bug in the Analyze>Tools>Synchronize Windows command
that caused it to not work as expected when changing the channel of composite color images.
- Thanks to Christoph Deil, fixed a bug in Plugins>Utilities>Find Commands
that caused esc and ctrl-w key presses to not close the window after "Show full information"
was enabled.
- Thanks to Christoph Deil, fixed bugs in the "Save changes?" dialog that caused it to not
work as expected after the focus was changed (by tabbing) to the "Don't Save" or "Cancel" buttons.
- 1.47b 12 August 2012
- Added the Image>Stacks>Statistics command.
- Thanks to Michael Schmid, the built in brush, pencil and overlay brush tools
draw using the background color when alt key is down, are constrained to draw horizontally
when shift is down, are resized when shift&control are down (shift&cmd on Macs),
and "pick up" the foreground color when control is down (cmd on Macs).
- Added a "16 bit range" choice to the Edit>Options>Appearance
dialog box. This is the same as the "Unsigned 16 bit range" choice in the Brightness/Contast
Adjuster's "Set" dialog.
- Thanks to Olivio Donati, File>Import>Image Sequence opens
any associated ROIs that are in a file named RoiSet.zip.
- Thanks to David Knecht, added a "sum" option to Image>Transform>Bin.
- The getHistogram() macro function no longer limits the number of bins to 256
with 8-bit and RGB images.
- Added the IJ.createHyperStack(title,width,height,channels,slices,frames,bitdepth)
method, where 'bitdepth' is 8, 16, 24 (rgb), or 32 (float).
- Thanks to Qingzong Tseng, fixed a bug that caused overlays to be
lost when converting composite stacks to RGB.
- Thanks to Jan Eglinger, fixed a bug that caused images created by the particle
analyzer's "Show:" option to not use the calibration of the original image.
- Thanks to Guenter Giese, fixed bugs that caused the "Unsigned 16 bit range"
choice in the Brightness/Contast Adjuster's "Set" dialog to not work as expected
with multi-channel images.
- Thanks to Barry DeZonia, fixed a bug that caused the command recorder
to not work with Image>Stacks>3D Project when
processing 16 and 32 bit images.
- Thanks to William Edwards, fixed a bug that sometimes caused the median of
32-bit float images to be calculated incorrectly.
- Thanks to Michael Cammer, worked around a bug that could cause commands
in the Image>Type submenu to not work as expected in non-batch-mode macros.
- 1.47a 17 July 2012
- Thanks to Thomas Boudier, added five new 3D filters
(Median, Mean, Minimum, Maximum and Variance)
to the Process>Filters submenu.
- Added the "Restore Startup Tools" command to the toolbar's
>> menu.
- Thanks to Tiago Ferreira, built-in and plugin tools can be added to
toolsets and the startup macros
(example).
- Michael Schmid modified the Overlay Brush tool for constrained motion
(vertical or horizontal) with shift and resizing with ctrl-shift (cmd-shift on Macs).
- Thomas Tongue added support for the CDELT and CTYPE headers
to the FITS Reader.
- Added the getinfo("selection.color") and getValue("selection.width")
macro functions.
- Thanks to Simon Roussel, fixed a bug that could cause overlays to not be
displayed on virtual stacks.
- Fixed a bug that caused the brush and pencil tools to activate overlay selections.
- Michael Schmid fixed a bug that sometimes caused Preview to not work
correctly with commands in the Process>Filters submenu.
- Fixed a 1.46 regression that caused the ROI Manager to generate incorrect
ROI labels when the Associate 'Show All" ROIs with Slices" option was not enabled.
- Thanks to Stephan Semmler, fixed a regression that caused the
ImagePlus.getNDimensions() method to sometimes return the wrong value.
- Thanks to Glen MacDonald, fixed a 1.46 regression that caused the
setOption("Show All",boolean) macro function to not work.
- Kevin Eliceiri and Caroline Schneider published the article
"NIH Image to ImageJ: 25 years of image analysis"
in Nature Methods.
- 1.46r 26 June 2012
- Thanks to Bob Loushin, fixed a bug that caused dashed line ROIs to only display
correctly at 100% zoom.
- Thanks to Raymond Coory, fixed a v1.46o regression that caused
the TurboReg plugin to throw an exception.
- Fixed a v1.46n regression that caused the ROI Manager's
"Associate 'Show All' ROIs with Slices" option to not work as expected.
- Thanks to Olivier Bardot, fixed a v1.46p16 regression that caused the
Image>Hyperstacks>Temporal-Color Code command in Fiji to fail.
- 1.46q 19 June 2012
- Thanks to Michael Cammer, added the ROI Manager More>>List command.
- Thanks to Jerome Mutterer, added the Macros>Macro Functions
command to the macro editor.
- On Windows, the preferences file (IJ_Prefs.txt) is now saved in the .imagej directory,
in the user's home directory.
- Thanks to Norbert Vischer, fixed a bug that caused the
wrong image window to have focus after another window was closed.
- Thanks to Kees Straatman, fixed bugs that caused
Image>Color>Merge Channels to sometimes lose the scale
and to sometimes not work as expected when used in a macro.
- Thanks to Michael Schmid, worked around a race condition in the
run("Make Composite") macro function that could cause non-batch mode
macros using it to fail.
- Thanks to Carlos Becker, fixed a bug that caused File>Open
and File>Import>TIFF Virtual Stack to fail when importing
TIFF stacks larger than 2GB.
- Thanks to Michael Schmid, fixed a bug that could cause a 'for' loop,
at the end of a macro, containing a single 'if' statement to terminate prematurely.
- Thanks to Christophe Leterrier, fixed a bug that caused the ResultsTable.open()
method to not correctly open results tables with row labels but without row numbers.
- Tiago Ferreira added a "Print list" button to the
Built-in Macro Functions page.
- Tiago Ferreira updated and improved the
ImageJ User Guide
for v1.46p, adding sections on overlays, 3D volumes, sub-pixel selections,
curve fitting and interface customization.
The User Guide, which contains 200 pages and 270 illustrations, is available
online,
as a
10 MB PDF,
and as
US and
A4 booklets.
- 1.46p 4 June 2012
- Added the Edit>Options>Reset command.
- The line of information at the top of image windows is displayed antialiased.
- Added the rotate(), setAngle() and setZeroTransparent() methods to the ImageRoi class
(example).
- Fixed a bug that caused an exception when Image>Stacks>Add Slice was
used to add a channel to a 7 channel composite color image.
- Fixed a bug that caused Edit>Selection>Rotate to not work with ImageRois.
- Thanks to Hiroki Hakoshima, fixed a bug that caused the saveAs() macro function
to fail if the file path contained a "]" character.
- Thanks to Norbert Vischer, fixed a bug that caused Image>Stacks>Add Slice
and Image>Stacks>Delete Slice to not set the 'changes' flag.
- Thanks to Norbert Vischer, fixed a bug that caused the macro interpreter to not
correctly parse hex constants larger than 0x7fffffff.
- Fixed bugs in the Image>Hyperstacks>Stack to Hyperstack and
Hyperstack to Stack commands that caused them to not work as expected
in batch mode macros.
- Thanks to Dorai Iyer, fixed a 1.46o regression that caused the ROI Manager "Flatten"
command to stop working.
- 1.46o 18 May 2012
- Set the stroke width to 0 in the Edit>Selection>Properties,
Image>Overlay>Overlay Options
and ROI ManagerProperties dialogs to have selections
drawn using a width of one pixel regardless of the image magnification.
- Fixed a bug that could cause selections being moved to not be
displayed correctly when the "Use ROI names as labels" option in
the ROI Manager was enabled.
- Fixed a bug that caused Analyze>Plot Profile to fail
with line selections with widths less than 1.0.
- Thanks to Franklin Shaffer, fixed a bug that sometimes a caused a stack overflow
error when importing large image sequences.
- Thanks to Tiago Ferreira, fixed a 1.46n regression that caused overlay
items to be removed when toggling the ROI Manager "Show All" checkbox.
- 1.46n 11 May 2012
- In "Show All" mode, the ROI Manager now uses an overlay to
display the selections.
- Added the More>>Labels... command to the ROI Manager, as
a shortcut to Image>Overlay>Labels.
- Add a "Show plot" checkbox to the Analyze>Calibrate dialog box.
- File>Save As>XY Coordinates now correctly saves subpixel
resolution selections, and it works with more kinds of selections.
- Tiago Ferreira added a list of valid factors to the
Image>Stacks>Tools>GroupedZProjector dialog.
- Made the IJ.runPlugIn(String,String,String) method public.
- Added the IJ.getFullVersion() method.
- Thanks to Burri Olivier, fixed a bug that caused Image>Adjust>Threshold,
when the "Stack histogram" option was enabled, to use the
histogram of all channels instead of only the current channel.
- Tiago Ferreira fixed a bug that caused stacks binned with
Image>Stacks>Tools>GroupedZProjector
to loose spatial calibration.
- Thanks to Burri Olivier, fixed a bug that caused incorrect auto stack thresholds
when "Limit to threshold was enabled in Analyze>Set Measurements.
- Thanks to Thomas Boudier and Michael Schmid, fixed a bug that caused the
Analyze>Summarize command to not work correctly on reopened results tables.
- Thanks to Jim Passmore, fixed a bug that caused NonBlockingDialogs to not
handle the yes/no/cancel option.
- Thanks to Norbert Vischer, fixed a bug that caused Image>Show Info
to incorrectly display the selection location when the image origin was not (0,0).
- 1.46m 23 April 2012
- ROIs in an overlay can be activated by alt-clicking, control-clicking or long-pressing (1/4 second or longer).
- Thanks to Gabriel Landini, the Brush and Pencil tools installed from the toolbar's >> menu
can be resized by shift-dragging.
- The icons for drawing tools installed from the toolbar's >> menu
reflect the foreground color and are updated when the foreground color changes.
- Commands in the Edit>Selection submenu that modify the selection
now support Undo/Redo and transfer color and line width properties.
- Fiji saves and loads custom tool configurations.
- Thanks to Ved Sharma, removed the restriction in Image>Stacks>Tools>Insert
that the destination must be a stack.
- Thanks to Richie Mort, fixed a bug that could cause the contents of multiple custom results tables
created by plugins to be invalid.
- Dimiter Prodanov has published a
chapter
summarizing parts of his research with ImageJ.
- 1.46k 11 April 2012
- Custom tool configurations created using the toolbar's ">>" menu are saved in the preferences file.
- Process>Filters>Gaussian Blur 3D works with hyperstacks.
- Thanks to Tiago Ferreira, fixed a bug that caused FIle>Import>Image Sequence
to throw an exception of the first file in the folder was a stack and other files were not stacks.
- Thanks to Norbert Vischer, fixed a bug that caused metadata to be lost when saving
and reopening 3-channel composite 16-bit images.
- Fixed a bug that caused Edit>Selection>Properties to change selection stroke
widths less than 1.0 to 1.0.
- Fixed a bug that caused Edit>Selection>Fit Spline and
Edit>Selection>Interpolate to reset stroke colors and widths.
- Fixed regressions that caused Analyze>Measure to not work
with angle selections and to sometimes throw an exception.
- Tiago Ferreira contributed
ROI Manager Tools,
a macro toolset that renames selections stored in the ROI Manager.
- Gilles Carpentier contributed
Multi-Channel Image and Stack Helper,
a macro toolset for working with composite color images and stacks.
- The
Transparent Image Overlay plugin
demonstrates how to draw an image with a transparent background in an overlay.
- 1.46j 27 March 2012
- Added the Process>Filters>Gaussian Blur 3D command.
- When the ROI Manager window is closed, a dialog box is displayed that provides the
option of moving displayed ROIs to an overlay.
- File>Import>Image Sequence displays warnings if the folder
contains tiff stacks and the "Use virtual stack" option is enabled.
- Image>Calibrate now uses scientific notation to draw
fit parameters, if needed.
- Thanks to Wilhelm Burger, added a ByteProcessor(ip, scale) constructor.
- Thanks to Gabriel Landini, fixed a bug that caused an invalid 0.0 to be
entered into the Analyze>Calibrate dialog box if "Stack position" was enabled in
Analyze>Set Measurements.
- Thanks to Mark Krebs, fixed a 1.46e regression that could cause
Image>Stacks>Tools>Concatenate to fail when
called from a macro.
- Thanks to Michael Cammer, fixed a v1.46g regression that caused the "Use stack histogram"
option in Process>Ehance Contrast to not work as expected.
- Thanks to Norbert Vischer, fixed a v1.46i regression that could cause an exception when using
using Analyze>Measure to measure Feret's Diameter.
- Ved Sharma contributed
Measure Hyperstack,
a macro that runs "Measure" on a hyperstack in a user-selected (c,t,z) order.
- 1.46i 15 March 2012
- Added the Image>Transform>Bin command, based on Nico Stuurman's
Binner plugin.
- Added the Edit>Selection>Interpolate command. To view the
interpolated points, use this command on small selections created
on images zoomed 1200% or greater.
- Added the Image>Transform>Image to Results and
Results to Image commands.
- Added a "Remove Tool" command to the toolbar's >> menu;
- The Image>Stacks>Add Slice command works with hyperstacks.
- The Fly Brain and T1 Head sample stacks open displaying the middle slice instead of the first.
- Added the getChannel(int, ByteProcessor) and setChannel(int, ByteProcessor) methods
to the ColorProcessor class
(example).
- Added the getTableAsImage()
(example),
createTableFromImage() (example)
and open2() methods to the the ResultsTable class.
- Added the ImageProcessor.bin() and Roi.getInterpolatedPolygon() methods.
- Thanks to Michael Schmid, added the ImageProcessor.isGrayscale() method and
the is("grayscale") macro function.
- Added JavaScript-compatible constructor and methods to the Plot class
(examples).
- Thanks to Jan Eglinger, fixed a bug that caused Image>Transform>Rotate Right
and Image>Transform>Rotate Left to not work with square composite color images.
- Thanks to Gilles Carpentier, fixed a bug that sometimes caused
Image>Stacks>Z Project to not work with 3D composite color images.
- Fixed a bug that caused overlays to be lost when opening TIFF files using a URL.
- Fixed a bug that caused an exception when the user canceled the
File>Import>Results dialog box.
- Fixed a bug in Process>Binary>Skeletonize that caused it to
sometimes create skeletons that were more than one pixel wide.
- Fixed a bug that caused the setf() functions to not round
when storing values in ByteProcessors and ShortProcessors.
- Fixed a bug that caused the Sync_Windows plugin to not work with hyperstacks.
- Fixed bugs that caused an error message, or caused the command to be ignored,
when saving results created by some MBF plugin using File>Save As>Results.
- Thanks to Arttu Miettinen, fixed bugs that sometimes caused histogram bin counts
of stacks larger than 2 gigapixels to be incorrect.
- Thanks to Michael Cammer, fixed a bug in Image>Stacks>Reslice that
caused it to not work as expected if there was global calibration and "Avoid interpolation"
was not checked in the dialog box.
- 1.46h 28 February 2012
- Added the Arrow, Overlay Brush, Pixel Inspector,
Spray Can and LUT Menu tools to the toolbar's >> menu.
- Image>Color>Merge Channels now works with up to 7 channels.
- Added the String.getResultsHeadings() macro function
(example).
- Thanks to Xiao Chen, fixed a bug that caused ImageJ to not correctly
open PNG images with alpha.
- Fixed a bug that caused the Results window to flicker when
the ResultsTable.show("Results") method was called repeatedly
(example).
- Thanks to Andrew French, fixed a bug that caused the ImageStack.getVoxel()
method to fail with RGB stacks.
- Fixed a bug that could cause File>Import>Text Image
to fail with files containing empty lines.
- Thanks to Gregory Reneff, fixed a bug that caused the
call("ij.plugin.frame.RoiManager.getName", index) macro function
to not work in batch mode.
- Vilppu Tuominen and Jorma Isola have released
ImmunoMembrane,
a plugin for analyzing HER-2 immunohistochemistry.
- 1.46g 16 February 2012
- The ">>" toolbar menu lists installed
plugin tools.
- Added "Help" buttons to the Image>Stacks>3D Project
and Process>Enhance Contrast dialog boxes.
- Fixed a bug that caused hyperstacks to be converted to interleaved stacks
in macros that opened a hyperstack and did a crop or type conversion operation.
- Thanks to Gilles Carpentier, fixed a bug that sometimes caused commands in
the Image>Lookup Tables submenu to not work as expected with
single channel composite images.
- Thanks to Michael Cammer, fixed a bug that caused Process>Enhance Contrast
to not work as expected when the "Equalize histogram", "Process all n slices" and
"Stack histogram" options were enabled.
- Thanks to Rainer Engel, fixed bug that caused Image>Stacks>Z Project
to not correctly perform "Median" and "Standard Deviation" projections of RGB stacks.
- Thanks to Eik Schumann, fixed a bug that caused the run("Merge Channels...","...")
macro function to not close source images in batch mode macros.
- Thanks to Zeljka Maglica, fixed a bug that caused position-dependent overlays to not
be saved when using the Image>Overlay>Flatten, File>Save As>AVI
and Image>Stacks>QuickTime Movie commands.
- Thanks to Fabian Svara, fixed a bug that caused an incomplete ROI to be added to the
ROI Manager if you pressed "t" (Edit>Selection>Add to Manager) before
you finished drawing the ROI.
- 1.46f 5 February 2012
- Michael Schmid contributed an
improved Curve Fitter.
- Built in Joachim Walter's
Sync Windows
plugin as the Analyze>Tools>Synchronize Windows command.
- Thanks to Denny Hugg, ImageJ uses a custom crosshair cursor
if there is a GIF image named "crosshair-cursor.gif" in the ImageJ/images
folder. There is an example custom cursor at
imagej.nih.gov/ij/images/crosshair-cursor.gif.
- With hyperstacks, the Image>Stacks>Delete Slice
command can delete the current channel, slice or frame.
- Michael Schmid added support for I420, YV12 (a.k.a. IYUV),
NV12 and NV21 formats to the AVI Reader.
- The GifWriter now uses ImageIO to save single images.
- Thanks to Norbert Vischer, fixed a bug that made it impossible to
select an image with a duplicate name from the Window menu.
- Thanks to Michael Schmid, added the IJ.d2s(n,significantDigits,maxDigits) method,
which is used by the macro language to convert numbers to strings,
by Analyze>Histogram to display values in histogram windows,
and by ImageJ to display values in the status bar as the curser is moved over float images.
- Replaced the SocketListener class with Johannes Schindelin's RMI-based OtherListener
class from Fiji, which works on multi-user machines and is more secure.
- Thanks to David M. Gauntt, added the FHT(ImageProcessor,boolean)
constructor to the FHT class.
- Thanks to Denny Hugg, fixed a bug that caused File>Save As>Gif
to create GIF images that would not work as custom cursors.
- Thanks to Gilles Carpentier, fixed a bug that cuased Image>Stacks>Z Project
to throw an exceptions if no image window was open.
- Thanks to Wilhelm Burger, fixed a bug that caused the Image>Adjust>Canvas Size
command to not properly repositioned overlays.
- Thanks to Christopher Harrison, fixed a bug that caused LUTs to be improperly applied
to "Grayscale" mode composite images.
- Fixed a bug that caused Analyze>Plot Profile
to not work with rectangular selections containing NaN values.
- 1.46e 18 January 2012
- Thorsten Wagner added a "Label" (display slice labels) option to the
Image>Stacks>Label dialog box.
- Changes made to options in the Edit>Options>Appearance
dialog box cause the current image to be immediately updated.
- Upgraded the Image>Stacks>Tools>Concatenate plugin
to the Jon Jackson version from the MacBiophotonics distribution and Fiji.
- Less memory is required to display float images.
- Thanks to Michel Julier, images zoomed less than 100%
are displayed with higher quality.
- Edit>Selection>Rotate uses floating-point coordinates
- Added the call("ij.gui.ImageWindow.setNextLocation",x,y) macro call.
- Added the Roi.getFloatBounds() and FloatPolygon.getFloatBounds() methods.
- Added the ParticleAnalyzer.setResultsTable() method.
- Thanks to Jan Eglinger, ImageJ displays an error message when you attempt to
apply a threshold or brightness/contrast change to a virtual stack.
- Thanks to Martin Dressler, fixed bugs in
Image>Duplicate and Image>Stacks>Tools>Make Substack
that caused image "Info" metadata to be discarded.
- Thanks to Johannes Schindelin, fixed a 1.46a regression that could cause
plugins to fail if they extended the PolygonRoi class, did spline fitting and accessed the
protected xp and yp arrays.
- Thanks to Vytas Bindokas, fixed bugs that could cause
Edit>Selection>Rotate to not work as expected
with straight line selections.
- Fixed a bug that caused the makeLine(x1,y1,x2,y2,width) macro function
to round non-integer arguments.
- Fixed a bug that caused thresholds to not be reset when
converting from 16-bit to 8-bit.
- Fixed a v1.45c regression that caused Process>Math>Macro to fail
on multiprocessor machines with expressions containing "getPixel".
- Aleksandr Mironov contributed
Merz grid,
a macro that creates a Merz grid with semicircular lines and points as
a non-destructive overlay.
- 1.46d 1 January 2012
- Added the Plugins>New>Macro Tool and
Plugins>New>Plugin Tool commands.
- Single macro tools are now installed in the first available toolbar slot, or
if no slots are free, in the last slot.
- Added the ij.plugin.tool.PlugInTool class, which was inspired by
Johannes Schindelin's AbstractTool class in Fiji
(examples).
- Added the getC(), getZ(), getT(), setC(), setZ() and setT()
methods to the ImagePlus class.
- Thanks to Norbert Vischer, fixed a bug the caused the setZCoordinate()
macro function to not work as expected.
- Thanks to Ian Lim, fixed a bug that prevented some AVI files from opening.
- Thanks to Cheryl McCreary, fixed a bug that caused the run("Histogram","...")
macro function to sometimes not work as expected.
- Thanks to Jerome Mutterer, fixed bugs in Process>Batch>Macro and
Process>Batch>Virtual Stack that caused them to fail with macro code
that duplicated or opened images.
- Thanks to Paul Jurczak, fixed a bug that caused some RGB BMP files to fail to open.
- Fixed a bug that caused the makeText() macro function
to not work if the text was too wide.
- Fixed a regression, introduced in v1.46a, that caused measurements of spline fit
freehand and traced selections to be inconsistent with earlier versions of ImageJ.
- Wilhelm Burger fixed a bug that caused the Edit>Crop command to not
correctly handle overlays.
- Dimiter Prodanov contributed
Results Importer, a plugin
that imports numeric values from text windows (e.g., histogram or profile plot lists)
into the ResultsTable.
- 1.46c 12 December 2011
- Thanks to Tiago Ferreira, the ColorChooser widget now displays hex values.
- Thanks to Jesper Pedersen and Michael Schmid, ImageJ opens >2GB AVI 2.0 files,
opens AVIs faster as virtual stacks and opens MJPEG encoded AVIs that are
missing Huffman tables.
- Thanks to Jerome Muttere, Process>Find Maxima, when the output type is "Count",
respects the Analyze>Set Measurements "Display label" setting.
- Added the "Sub-pixel resolution" option to the
Edit>Options>Profile Plot Options dialog box
(documentation).
- Added the Array.concat(), Array.slice() and Array.print() macro functions
(example1,
example2).
- Thanks to Norbert Vischer, fixed a bug that caused the Stack.setActiveChannels() macro
function to not update the "Channels" window.
- Thanks to Balazs Nyiri, fixed a bug that caused the image id of composite color
images to change after using the Image>Stacks>Add Slice and
Image>Stacks>Delete Slice commands.
- Fixed a bug that caused the slice selector scrollbar to not be updated after using
the Add Slice or Delete Slice commands.
- Thanks to Jakob Preus, fixed a bug that caused use of "&" to pass directory path
variables in macros using the File>Save As>Image Sequence command to fail.
- 1.46b 29 November 2011
- Added the File>Import>XY Coordinates command.
- Added a "List coordinates" checkbox to the
Edit>Selection>Properties dialog box.
- "Help" buttons in dialog boxes can display HTML formatted messages
(macro,
JavaScript).
- The Edit>Selection>Line to Area
command now works with one pixel wide straight lines.
- The color of the rounded rectangle tool no longer defaults
to the foreground color.
- Thanks to Aryeh Weiss, the ROI Manager's "OR (Combine)"
command now works with line selections.
- Added the ParticleAnalyzer.setRoiManager() method
(example).
- To support sub-pixel positioning, added constructors that accept
double arguments to the Roi, OvalRoi and TextRoi classes
(example).
- Thanks to Norbert Vischer, added the ij.util.StringSorter.sortNumerically() method.
- Thanks to Jose Wojnacki, fixed a bug that could cause a macro to fail if
a drawing tool was used during a waitForUser() break.
- Thanks to Norbert Vischer, fixed a bug that caused the
"Sort names numerically" option in the File>Import>Image Sequence
dialog to sometimes not work as expected.
- Fixed a bug that caused the default stroke width and color to
change when an arrow was added to an overlay.
- Fixed a bug that caused lines to be displayed incorrectly in the
ROI Manager "Show All" mode after adding a rounded rectangle.
- Thanks to Norbert Vischer, fixed a bug that sometimes caused the Plot.show()
macro function to return before the plot window was fully displayed.
- Thanks to Norbert Vischer, fixed a bug that caused macros displaying
showMessage() dialogs to not be aborted when the user pressed the esc key.
- Thanks to Jerome Mutterer, fixed a bug that sometimes caused selections in
ROI Manager "Show All" mode and in overlays to be displayed with the wrong stroke width.
- Thanks to Winfried Wurm, fixed a bug that could cause the run("Restore Selection") and
run("Enlarge...") macro functions to fail in batch mode macros.
- 1.46a 12 November 2011
- The segmented line, freehand line, point and multi-point tools
now support sub-pixel resolution.
- The Plot class constructors generate an X value sequence
if the X array argument is null or empty
(JavaScript examples).
- An informative message is displayed when a batch
mode macro attempts to open an ROI set using open(path)
(which does not work) instead of roiManager("open",path).
- Thanks to Tiago Ferreira, the ROI Manager "Multi Plot" command
no longer ignores "Fixed y-axis scale" in Edit>Options>Profile Plot Options.
- Thanks to Bob Hamilton, "Area Fraction" (renamed "%Area") in the Analyze Particles
Summary window now uses the Set Measurements decimal places.
- Added the MaximumFinder.getMaxima() method
(example).
- Fixed a bug that caused the length of non-straight line
profile plots to be greater that the measured line length.
- Michael Schmid fixed a bug that could cause the RankFilters
(Mean, Minimum, Median, etc.) to hang.
- Thanks to Jan Eglinger, fixed bugs that could cause the recorder to throw
bogus error messages or to record "null" or "nullnull" when opening or saving files.
- Fixed a bug that caused the elliptical selection tool to always have
integer starting coordinates.
- Thanks to Oliver Bannach, fixed a bug that caused Histograms in
batch mode macros to not be properly closed.
- Thanks to Norbert Vischer, fixed a bug that caused
File>Import>TIFF as Virtual Stack to not correctly
open c=3, z=1, t=1 16-bit hyperstacks.
Version 1.45, 29 October 2011 (download)
- 1.45s 29 October 2011
- Added the setOption("ExpandableArrays") macro function
(example).
- The Roi.getFloatPolygon() method works with more selection types.
- Thanks to Kees Straatman, fixed a bug that caused
Edit>Selection>Fit Ellipse to not work with
spatially calibrated images.
- Thanks to Gilles Carpentier, fixed a bug that caused the
Overlay.drawString() macro function to display text at
the wrong Y location and another bug that caused the run("From ROI Manager")
macro function to not work in batch mode.
- Thanks to Michael Schmid, fixed a bug that caused the
CurveFitter.setMaxIterations() method to not work as expected.
- Thanks to Jamie Robinson, fixed a bug that could cause the mm scale
of newly opened hybrid DICOM/TIFF files to not be set.
- David Gauntt fixed a bug that caused the NonBlockingGenericDialog
to not correctly handle esc and enter key presses.
- Thanks to Bentorey Hernandez Cruz, fixed a bug that caused the
Panel Window
example plugin to not work with hyperstacks.
- Thanks to Norbert Vischer, fixed a bug that could cause the
Plot.add("error bars", errorBars) macro function to throw an exception.
- Mahdi Rawak contributed
Command Bar, a plugin
that adds a toolbar with 19 buttons for running ImageJ commands.
- Kris Sheets contributed
3D Convex Hull, a plugin
that calculates 3D shape descriptors, solidity and convexity based on
a convex hull constructed from a stack.
- The University of Leicester is offereing two
ImageJ/FIJI workshops
in December.
- 1.45r 15 October 2011
- Thinks to Norbert Vischer, macro arrays automatically expand as needed
(example).
- Thanks to Gilles Carpentier, image selections created using
Edit>Selection>Image to Selection or Image>Overlay>Add Image
can now be saved and restored.
- Thanks to Johannes Schindelin, fixed a bug that caused the status bar to not
be updated when scrolling a stack using the mouse wheel.
- Thanks to Nagananda Gurudev and Johannes Schindelin, fixed a bug that
sometimes caused an exception when opening LZW-compressed LSM files.
- Thanks to Christophe Leterrier, fixed a bug in the newArray() macro function
that caused it to not correctly handle array element arguments.
- Thanks to Gilles Carpentier, fixed a bug that caused
Analyze>Tools>Scale Bar to delete pre-existing overlays.
- 1.45q 4 October 2011
- Added "Live" buttons to histogram and profile plot windows.
- Added an "RGB" button to RGB histogram windows.
- The Histogram command displays composite image LUTs.
- Thanks to Gabriel Landini, fixed bugs that caused TIFF images
larger than 2GB to not be correctly saved or opened.
- Fixed a bug that caused File>New>Image to throw an exception
when the user attempted to open an image larger than the maximum supported
size (2 gigapixels).
- Fixed a bug that sometimes caused the cursor coordinates to not
be displayed in plot windows.
- Thanks to Christophe Leterrier, fixed a bug in the newArray() macro
function that caused it to sometimes not correctly handle string variable arguments.
- Thanks to Norbert Vischer, fixed bugs that caused the plot window "List" and "Save"
options to sometimes not work as expected if the window contained multiple plots.
- Fixed a bug that sometimes caused a blank Results table to be displayed
after changing "Decimal places" or enabling/disabling "Scientific notation" in
the Analyze>Set Measurements dialog box.
- Thanks to Christophe Leterrier, fixed bugs in Image>Color>Merge Channels
that sometimes caused it to fail.
- 1.45p 20 September 2011
- Image>Stacks>Make Montage works with hyperstacks.
- Added the roiManager("Remove Slice Info") macro function.
- Thanks to Daniel Hornung, removed the Toolbar.setBrushSize()
lower limit of 5.
- Worked around bug in the FileDialog class on Mac OS X that could cause
files to be overwritten without warning if "Show all filename extensions"
was not enabled in Finder Preferences.
- Thanks to Bill Mohler, fixed a bug that caused File>Import>Image Sequence
to not ignore .zip files created by the ROI Manager .
- Make Magazine
Vol. 27 has an
ImageJ tutorial,
written by Bob Goldstein.
- 1.45o 12 September 2011
- Thanks to Christophe Leterrier, File>Import>Image Sequence
loads overlays when opening a folder of TIFFs as a non-virtual stack.
- Added the ResultsTable.showRowNumbers() method
(example)
and the setOption("ShowRowNumbers",false) macro function
(example).
- Thanks to Airen Peraza, fixed a bug that caused the setTool() macro
function and IJ.setTool(String) method to not work with macro tools.
- Thanks to Charles Anderson, fixed a bug in the
run("Make Composite") macro function that sometimes caused non-batch
mode macros to not work as expected.
- Thanks to Gilles Carpentier, fixed a bug that sometimes caused
images with extra periods in their names to be saved without an extension.
- Fixed a bug that caused the run("Straighten...") macro function to require
user input with line selections wider than one pixel.
- Thanks to Christophe Leterrier, fixed an ROI Manager "Properties" bug that made it
impossible to set the line width to 1 after having set it to greater than 1.
- Thanks to Bill Mohler, fixed a bug in Analyze>Summarize
that caused it to fail if the "Integrated Density" option was enabled.
- Fixed bugs that caused Analyze>Measure to not calculate perimeter,
circularity, feret-x, feret-y, feret angle, aspect ratio, roundness and solidity when there was no selection.
- Fixed a bug that caused Analyze>Measure to not calculate feret-x, feret-y, feret angle
and solidity of edited ROIs.
- Fixed a v1.45n regression that caused the ROI Manager "Save" command
to create corrupted .zip files if ROIs had been updated.
- Norbert Vischer contributed the
AdvancedPlots
macro set, five macros that demonstrate advanced plotting techniques.
- 1.45n 5 September 2011
- Added the Image>Overlay>Labels command.
- Added the Edit>Selection>Image to Selection command,
which replaces the "Create image selection" option in the
Image>Overlay>Add Image dialog.
- Added the "Use file chooser to import [/export image] sequences" option
to the Edit>Options>Input/Output dialog box.
- Thanks to Damon Poburko, the ROI Manager "Delete" and "Deselect"
commands are much faster on Windows.
- The Image>Adjust>Brightness/Contrast command
records as a comment.
- The "Propagate to all open images" option in the "B&C" window's "Set" dialog
box works with multi-channel images.
- The run("Brightness/Contrast...") macro function does nothing
if the "B&C" window is open and the current image is RGB.
- Thanks to Norbert Vischer, added the toScaled(x,y), toUnscaled(x,y) and
Plot.setFrameSize(width,height) macro functions
(examples).
- Added the getInfo("threshold.method") and getInfo("threshold.mode")
macro functions and the ThresholdAdjuster.getMethod() and
ThresholdAdjuster.getMode() methods.
- Added the makeSelection(type,x,y,n) macro function
(example).
- Thanks to Ajay Gopal, fixed a bug that sometimes caused plots
created in macros to be displayed twice and plots created in
batch mode to not be displayed.
- Thanks to Norbert Vischer, fixed a bug that sometimes caused selections
added to the ROI Manager using roiManager("Add") to
not be associated with the correct stack slice.
- Thanks to Norbert Vischer, fixed a bug that caused plot window cursor locations
displayed in the status bar to be incorrect if the plot x-origin was not zero.
- Thanks to Jean-Pierre Clamme, fixed a bug that caused the color thresholder
to somethimes not work as expected.
- Fixed a bug that caused macro tools to be restarted on mouse clicks.
- 1.45m 20 August 2011
- Added the Image>Overlay>Overlay Options command.
- Added an "Add to overlay" option to the
Analyze>Set Measurements dialog box.
- The Image>Overlay>Add Selection command
only displays a dialog if the alt key is down.
- Thanks to Ved Sharma, added a "Use text tool font" option
to the Image>Stacks>Label dialog box.
- Improved the appearance of the "Threshold" window on Windows.
- File>Import>Image Sequence ignores files named "RoiSet.zip".
- Overlay selection names are preserved when saving in TIFF format.
- Added the FileSaver.serialize() and Opener.deserialize() methods
(example).
- Thanks to Arttu Miettinen, fixed bugs that caused auto-thresholding of
large (>1 gigapixel) stacks to fail and caused the "Threshold" tool
to generate unneeded stack histograms.
- Fixed a bug that sometimes caused the "Threshold" tool to generate incorrect
16-bit image thresholds when enabling/disabling the "Stack histogram" option.
- Thanks to Ved Sharma, fixed a bug in Image>Stacks>Label
that caused it to not work correctly for ranges not starting with 1.
- Thanks to Michael Cammer, fixed a bug that caused an exception when adding
a slice after splitting channels.
- Fixed a bug that caused Process>Math>Square to not work
as expected with 16-bit pixel values greater than 46341.
- Fixed a bug that caused the run("Make Binary") macro function to display
a dialog when the current image was thresholded.
- Thanks to Steven Green, fixed bugs that caused intensity measurements
made with line and point selections to not be redirected.
- Thanks to Emmanuel Levy, fixed a bug that caused
Image>Overlay>To ROI Manager to ignore selection names.
- Bruno Vellutini fixed a bug that caused the roiManager("show all with labels") macro
function to not work as expected.
- Aleksandr Mironov contributed three macros
(Multipurpose grid,
Multiple Circles grid and
Unbiased Frames)
for creating stereological grids and unbiased counting frames
as non-destructive overlays.
- Tiago Ferreira updated the
ImageJ User Guide (PDF)
for v1.45m and added several new sectons. He also completely redesigned the
HTML version
and made available printable booklets in
US and
A4 versions.
- 1.45l 20 July 2011
- Thanks to Richard Cole, added a "Use system proxy settings"
option to the Edit>Options>Proxy Settings dialog.
- Thanks to Ved Sharma, added a "Delete slices from original stack"
option to Image>Stacks>Tools>Make Substack
- Added the "Max Dimension" macro snippet,
which resizes images to specified maximum dimension,
to Process>Batch>Macro.
- Thanks to Jerome Mutterer, the saveAs("raw",path) macro function
no longer requires a ".raw" extension
(example).
- The getFileList() macro function now filters "Thumbs.db" files.
- Added the ParticleAnalyzer.setFontSize() and ParticleAnalyzer.setLineWidth() methods.
- Thanks to David McDonald, fixed a bug that caused horizontal and vertical straight line
selections to not work with Edit>Selection>Restore Selection.
- Thanks to John Oreopoulos, fixed bugs that sometimes caused the
Plot.getValues() macro function to fail and the run("Distribution...","...") function
to throw an exception.
- Fixed a bug that caused headings of non-displayed results tables to not be saved.
- Thanks to Ingo Bartholomaeus, fixed a bug that caused drawing tools to not
set the image 'changes' flag.
- Thanks to Gilles Carpentier, fixed a bug that caused an exception when
duplicating a stack with a selection extending beyond the image edge.
- Thanks to Daniel Kalthoff, fixed a bug that caused slice labels to be
lost when importing stacks using File>Import>Image Sequence.
- 1.45k 5 July 2011
- Added the Image>Stacks>Tools>Remove Slice Labels command.
- The Process>Batch>Convert command averages when downsizing.
- Thanks to Michael Doube, fixed a bug that could cause an exception
when the image window was closed while a stack was being saved in TIFF format.
- Thanks to Valerio Mussi, fixed bugs that caused the ROI Manager to not
work as expected when the image origin was not at the top left corner.
- Thanks to Tomas Karlsson, fixed a bug that sometimes caused the "+" and "-"
keyboard shortcuts (zoom in/zoom out) to not work as expected with non-US keyboards.
- Fixed bugs that caused run() macro calls with options like "open=&dir", "size=&min-&max"
and "range=&first-&last" to fail.
- Fixed a 1.45j regression that caused the RankFilters.rank() method to fail.
- 1.45j 24 June 2011
- Added the Plugins>Utilities>Monitor Events command.
- Thanks to Michael Schmid, the Median, Mean, Minimum,
Maximum and Variance filters use less memory when processing non-float images.
- Added a "Overlay" checkbox to the Analyze>Tools>Scale Bar dialog.
- Added a "Stack histogram" checkbox to the Image>Adjust>Threshold dialog.
- Added "Center" and "Right" text justification options to the Edit>Options>Fonts dialog,
and, with text selections, to the Edit>Selection>Properties,
Image>Overlay>Add Selection and the ROI Manager "Properties" dialog boxes.
- The default text editor directory for saving is saved in the preferences file.
- Image>Scale no longer limits the X and Y scale factors to 25.
- Thanks to Johannes Weissmann, added the ImageProcessor.drawString(String, int, int, Color) method
and drawString("text", x, y, background) macro function
(example).
- Added the ImagePlus.setImage(ImagePlus) and PlotWindow.getResultsTable() methods.
- Thanks to Bruno Vellutini, fixed a bug that caused point selection measurements
on single images to include a "Slice" Results table column even when "Stack position" was
not checked in Analyze>Set Measurements.
- Fixed bugs that caused JavaScript and Java code recorded by
Image>Color>Stack to RGB and Image>Hyperstacks>Reduce Dimensionality
to not work as expected.
- 1.45i 3 June 2011
- Thanks to Jean-Yves Tinevez and Johannes Schindelin (creators of the Fiji ArrowTool plugin),
added an "outline" checkbox to the arrow tool options dialog.
- Added the Edit>Options>Rounded Rect Tool command.
- Thanks to Michael Schmid, the popup menu activated by
right clicking on an image window now works
as expected with non-foreground images.
- Added an "Ignore source LUTs" option to the
Image>Color>Merge Channels dialog box.
- Added "X center" and "Y center" fields to the Image>Zoom>Set dialog box.
- The DICOM reader applies the Rescale Slope value when "Open as 32-bit float"
is enabled in Edit>Options>DICOM and tag 0028,1053 has a value1.0.
- Added the openFolder(), openAsVirtualStack() and sortFileNames() methods to
the FolderOpener class;
- Added drawRoi() and drawOverlay() methods to the ImageProcessor class
(example).
- Added the roiManager("select",indexes) macro function and
RoiManager.setSelectedIndexes() method.
- Fixed a bug that caused the magnification to be dropped from the title bar when
using Image>Stacks>Add Slice on a single image.
- Thanks to Vytas Bindokas, fixed bugs that caused the wand tool and the getStatistics() macro
function to not work with virtual stacks imported using the Bio-Formats plugin.
- Thanks to Johannes Schindelin, fixed a bug that sometimes caused the "Add [t]"
command in the ROI Manager to sometimes save incorrect slice positions.
- Michael Schmid, fixed bugs that sometimes caused objects to disappear when using
Process>Binary>Ultimate Points and sometimes caused
Process>Find Maxima to not work correctly on high dynamic range
float images.
- Thanks to Jan Eglinger, fixed a bug that caused transparent arrows
to not be displayed correctly.
- Thanks to Vytas Bindokas, fixed bugs that sometimes caused
Edit>Selection>Make Band to fail.
- Thanks to Jonathan Silver, fixed a regression that caused File>Save As>Text Image
to not save float images using scientific notation when "Scientific notation" was checked
in the Analyze>Set Measurements dialog box.
- Thanks to Norbert Vischer, fixed a bug that caused TIFF virtual stacks
to not gracefully handle the deletion of the source TIFF file.
- Tseng Qingzong has released
PIV,
a plugin that performs iterative particle image velocimetry analysis.
- 1.45h 17 May 2011
- Added a "Use ROI names as labels" checkbox to the ROI Manager's
More>>Options dialog box.
- The ij.util.Java2.setSystemLookAndFeel() method (called by
File>Import>Image Sequence) no longer sets the
Swing look and feel to the system look and feel on Linux.
- Added Stack.getFrameInterval(), Stack.setFrameInterval() and
Stack.getUnits() macro functions.
- Added setAntialiased() and getAntialiased() methods to
TextRoi class.
- Worked around a bug in the text tool that sometimes caused
Edit>Clear to clear an area narrower than the drawn text.
- Thanks to Peter Haub, fixed an ROI Manager "Edit Mode" bug that
sometimes made selection of ROIs in stacks unreliable.
- Thanks to Jan Eglinger, fixed a bug that caused mouse
wheel scrolling of inactive hyperstack windows to not work.
- Thanks to Daniel Kalthoff and Michael Schmid, fixed a macro
bug that sometimes caused the Image>Crop,
Image>Duplicate and Image>Adjust>Size
commands to erroneously change the image focus.
- Thanks to Mat Al-Tamimi, fixed a bug that caused profiles of image-height
vertical lines and image-width horizontal lines to contain one extra value.
- Thanks to Barry DeZonia, fixed a bug that sometimes caused the
ImagePlus.setPositionWithoutUpdate() method to not work as expected.
- Thanks to Andrii Savchenko, fixed a bug that caused the particle
analyzer to not corretly summarize zero particle images.
- Thanks to Jerome Mutterer, fixed a bug that caused IJ.redirectErrorMessages()
to not work as expected with IJ.open(URL).
- Thanks to Andrew French, fixed a bug that caused Image>Overlay>Flatten
to always render text antialiased.
- 1.45g 2 May 2011
- Thanks to Philippe Gendre, added the More>>Multi Plot
command to the ROI Manager.
- Thanks to Jason Newton, ImageJ can now open ZIP-compressed TIFFs.
- The GenericDialog.getNextNumber() method returns NaN
if the user has not entered a valid number
(example).
- The makePoint() macro function can now both add and delete points
(example).
- Fixed v1.45 regression that caused the ROI Manager "Show All" option
to not respect slice info.
- Thanks to Carne Draug, fixed a bug that sometimes caused ImageJ
to hang on quitting when running on OpenJDK 6.
- 1.45f 23 April 2011
- Added the Edit>Selection>Area to Line command.
- Thanks to Michael Schmid, the Mean and Variance filters
no longer propagate NaNs to the end of the line.
- Thanks to Marcel van Herk, File>Import>Stack from List
works with URLs
(example).
- Added the Dialog.addSlider() method
(example).
- Fixed a bug that caused Image>Scale and Image>Adjust>Size
to throw an exception when there was a selection and "Average when downsizing" was
enabled.
- Thanks to Simon Roussel, fixed a bug that caused overlays to be lost
when converting stacks to hyperstacks and vis versa.
- Thanks to Kris Sheets, fixed a bug that could cause the ROI Manager to not work
as expected on Mac OS X when using the waitForUser() macro function.
- Thanks to Norbert Vischer, fixed a bug that caused incorrect centroid, major and minor
results when using Analyze>Measure on thresholded images with
"Fit Ellipse" and "Limit to Threshold" enabled.
- Fixed a bug that caused the size of JPEG files to not be
reduced when re-saving at lower resolution or quality.
- Thanks to Vytas Bindokas, fixed a bug that caused an exception when
an image was listed twice in the Image>Color>Merge Channels
dialog box.
- J. Lewis Muir has released
CBF Reader,
a plugin for reading miniCBF image files produced by DECTRIS PILATUS detectors.
- 1.45e 2 April 2011
- File>Import>Image Sequence and File>Save As>Image Sequence
now use the directory chooser.
- Thanks to Michael Schmid, added the Process>Noise>Remove NaNs command.
- Analyze>Plot Profile ignores NaNs.
- "Feret" and "MinFeret" of selections created using the elliptical tool are calculated
more accurately.
- Added the Overlay.copy and Overlay.paste macro functions.
- Added the FolderOpener.open() method.
- Thanks to Gabriel Landini, fixed a bug that sometimes caused the ability to
record the selectWindow() macro function to be lost after a macro error.
- Fixed a bug that caused File>Save As>Image Sequence to record
duplicate "save=" keys.
- Thanks to John Pearl, fixed a bug that caused the "Label points" option in
Edit>Options>Point Tool to sometimes not work as expected.
- Thanks to Michael Schmid, fixed a bug that caused the Dynamic Profiler plugin
to flicker and sometimes crash.
- Thanks to Francis Burton, fixed a bug that caused the Plot.update macro
function to throw an exception in batch mode.
- Thanks to Michael Doube, fixed a 1.45d regression that caused
Edit>Selection>Add to Manager to sometimes lose the
slice position.
- Thanks to Karen Collins, fixed several bugs in the directory chooser.
- Thanks to Norbert Vischer, fixed a bug that caused the run("Add to Manager")
macro function to sometimes draw the ROI.
- Dimiter Prodanov contributed
nVidia Fix, a plugin
that fixes display problems caused by buggy nVidia drivers.
- 1.45d 19 March 2011
- Thanks to Tiago Ferreira, the Plugins>Utilities menu is now
more logically organized and the "Do:" drop down menu in the Process>Binary>Options
dialog includes "Outline", "Fill Holes" and "Skeletonize" choices.
- An ROI Manager selection no longer loses its stack position when its
label is changed.
- The "Update" ROI Manager command now updates the z-position.
- Thanks to Tseng Qingzong, the particle analyzer respects the Process>Binary>Options
"Black background" setting when working with non-thresholded 8-bit binary images.
- The Image>Duplicate command can duplicate a range
of channels in C>1, Z=1, T=1 hyperstacks.
- Thanks to Frank Sprenger, fixed bugs that caused Image>Color>Split Channels and
Image>Hyperstacks>Reduce Dimensionality to sometimes not work correctly in batch mode
and to not generate grayscale images when the input image was in "Grayscale" mode.
- Added the Overlay.setPosition() and IJ.pad() macro functions
(example).
- Added roi.setPosition(), roi.getPosition() and
IJ.pad() methods
(example).
- Fixed a bug that could cause Image>Duplicate to fail in
non-batch mode macros.
- Thanks to Jarek Sacha, fixed bugs that caused the coordinate origin
to be unchanged after Image>Crop and Image>Duplicate.
- Thanks to Bill Mohler, fixed a bug that could cause an exception when
working with single channel composite images.
- Fixed a bug that caused overlays stored in the TIFF header to not display
on stacks opened using File>Import>TIFF Virtual Stack.
- 1.45c 10 March 2011
- Process>Filters>Gaussian Blur processes single images much faster
on multi-core computers thanks to multi-threading support added by Stephan Saalfeld.
- The Process>Math>Macro, Convolve, Despeckle, Remove Outliers,
Median, Mean, Minimum, Maximum, Variance and Unsharp Mask
commands are faster when processing single images on computers with multi-core CPUs.
- Tiago Ferreira made the Plugins>Utilities>Search command
recordable and added support for scripts.
- Image Selections (ImageRois) created using Image>Overlay>Add Image
can be moved beyond the image boundary and their location is displayed in the status
bar as they are moved.
- Removed the broken Help>Search Website command and renamed
Help>List Archives to Help>Mailing List.
- Thanks to Bill Mohler, fixed a bug that caused the
Image>Stacks>Tools>Concatenate command
to not work as expected in batch mode macros.
- Fixed a bug the caused the waitForUser() macro function to not work
with the brush and pencil tools.
- Thanks to Alberto Duina, fixed a bug that caused
the IJ.redirectErrorMessages macro function to not prevent macros
from being aborted when opening DICOM images.
- Fixed a bug that enabled "Show All" mode in the ROI Manager when
unchecking "Edit Mode".
- Fixed a bug in Image>Stacks>Make Montage that sometimes caused
borders to overlap labels.
- Fixed a bug in File>Import>Image Sequence that could cause the pixel width
and height to be incorrect if the value of "Scale images" in the dialog was not 100.
- Thanks to Daniel Senff, fixed a bug that caused an exception when using the
setForeGroundColor() macro function after starting ImageJ using
"new ImageJ(ImageJ.NO_SHOW)".
- Thanks to Stephan Saalfeld, fixed a bug that caused overlays on composite images
to sometimes not display correctly.
- Alberto Duina contributed
Dicom Sorter,
a macro that reorders a directory with a lot of dicom
files by moving the files to subdirectories
sorted by patient id, study id etc.
- 1.45b 18 February 2011
- Improved Memory Monitor (Plugins>Utilities>Monitor Memory):
it is larger, it displays the number of open images, it remembers its screen position,
it is no longer an image window, keyboard shortcuts work when it has focus
and clicking on it runs the garbage collector.
- The "Run single instance listener" option in Edit>Options>Misc
is set by default with new Windows installations.
- Image>Stacks>Add Slice and Delete Slice work
with composite images.
- Fixed a bug that sometimes caused composite images with custom LUTs
to not be saved correctly as TIFFs.
- Thanks to Michael Daube, fixed a bug that could cause the FHT.dfht3()
method to throw an exception.
- Fixed a bug that sometimes caused the DICOM reader to not correctly
decode the pixel spacing.
- Thanks to Michael Schmid, fixed a bug that sometimes caused dynamically
updated messages in GenericDialogs to be truncated.
- Thanks to Michael Schmid, fixed a bug that caused Process>FFT>Inverse FFT
to lose the image calibration if the size of the original image was not a power of two.
- Fixed a bug that made it impossible to open the Color Picker and Fonts windows after they
had been closed using File>Close.
- Fixed a bug that caused the scale of profile plots created using wide line selections
on globally calibrated images to be incorrect.
- Tseng Qingzong has released
plugins
that use the
OpenCV library
to do template matching and image alignment.
- 1.45a 6 February 2011
- The Edit>Undo command is, in most cases, undoable.
- Added the "Keep multiple undo buffers" option to the
Edit>Options>Memory dialog box.
- Image>Stacks>Tools>Concatenate works with composite images and stacks.
- Keyboard shortcuts now work in all TextWindows (e.g., the Log window).
- Users are prompted to save changed editor windows when quitting ImageJ.
- Added a keyboard shortcut to the Editor's Debug>Run To Insertion Point command.
- The waitForUser macro function uses a default "Click OK to continue" message if called without an argument
and without parentheses.
- Added the ImageProcessor.swapPixelArrays() method, which is used to
make Undo undoable.
- Fixed a bug, introduced in 1.44n, that sometimes caused Image>Color>Merge Channels
to not work as expected.
- Fixed a bug that caused pasting of non-rectangular selections the same size
as the target image to not work as expected.
- Fixed a bug that caused the "Run single instance listener" option in
Edit>Options>Misc to not work as expected.
Version 1.44, 31 January 2011
- 1.44o 31 January 2011
- Process>FFT>Bandpass Filter uses multiple threads when processing stacks.
- Plugins and scripts can now use IJ.log("\\Close") to close the Log window.
- Added a constructor to the FileInfoVirtualStack class that
allows opening of TIFF stack subsets
(example).
- Added the RGBStackMerge.mergeChannels(ImagePlus[],boolean) method.
- Fixed bugs that caused incorrect recording of B&C window commands.
- Fixed a bug that caused incorrect passing of variables using the '&' operator in run()
calls within macro functions.
- Thanks to Norbert Vischer, fixed a bug that caused error messages generated by the
selectImage() macro function to be missing the source line number.
- Fixed a bug that could cause 16-bit LZW compressed TIFFs to fail to open.
- Tiago Ferreira updated the
ImageJ User Guide (PDF)
for v1.44 and added sections on advanced ImageJ usage, IJ and Fiji Scripting,
command line usage and ImageJ interoperability. He also created a greatly improved
HTML version, available either online
or as a downloadable ZIP file.
- 1.44n 17 January 2011
- Image>Color>Merge Channels preserves LUTs and
display ranges when merging images and stacks to create composite images.
- Thanks to Michael Schmid, the current image is now only auto-thresholded
when the Threshold window is activated via the menu command or by pressing "T".
- Thanks to Duncan Mak, the "Loop back and forth" option in the
Image>Stacks>Tools>Animation Options dialog box
is now persistent.
- Added the setOption("loop", boolean) macro function.
- Fixed a bug that sometimes caused a DICOM sequence opened as a virtual stack
to not be sorted correctly.
- Fixed a bug that caused Plugins>Macros>Run to record
incorrect code.
- Thanks to Michael Schmid, fixed bugs that caused commands that bring windows
to the front, like selecting from the Window menus and Window>Show All,
do not de-iconify windows on Windows and Linux.
- Fixed a bug that sometimes caused the More>>Fill command in the
ROI Manager to fail with composite ROIs.
- Fixed a bug that could cause an out of memory error when opening a DICOM
sequence from a folder containing a .xml file.
- Thans to Barry DeZonia, fixed a bug that caused the Paste command to not
work as expected in "Transparent-white" mode with 32-bit images.
- Thanks to Nico Stuurman, fixed a bug that caused channel and slice position changes
in animating hyperstacks to be ignored.
- Fixed a bug that caused an exception when an empty folder was dragged and dropped
on the "ImageJ" window.
- Fixed a bug that caused the getSelectionCoordinates() macro function to not
work as expected with wider than one pixel straight line selections.
- Norbert Vischer contributed
Offline Macro Help,
a macro that downloads "functions.html" and the files it references,
making macro programming documentation locally accessible.
- David Stepensky contributed
IntraCell,
a plugin for analysis of nanoparticle colocalization with organelles within the cells
- 1.44m, 1 January 2011
- Thanks to Ved Sharma and Michael Doube, added the Edit>Selection>Fit Circle command,
which fits a circle to line and multi-point selections. With area selections, it creates a circle with the
same area and centroid.
- Thanks to Barry DeZonia, fixed a bug that caused Undo of finalized pastes to fail.
- Thanks to Bill Mohler, Image>Stacks>3D Project now works with hyperstacks,
and with 16 and 32 bit images.
- Thanks to Michael Ellis, added support for single channel CompositeImages.
- Added the ImagePlus.duplicate() method.
- Fixed a bug that caused the roiManager("reset") macro function to not
not remove the "Show All" overlay.
- Fixed a bug that caused macros using run("Calibrate...", "...") to fail.
- Fixed a bug that caused File>Open Next to fail after saving an image.
- Fixed a bug that caused an exception if a file displayed in a virtual stack
was deleted.
- Fixed a bug that caused a "Save changes?" dialog to be displayed
when closing a virtual stack window.
- Jan Bonne Aans contributed
Nonlinear Polar Transformer,
a plugin that corrects radial and angular distortions in X-ray images.
- 1.44l, 16 December 2010
- Image>Stacks>Orthogonal Views works with hyperstacks
and can be started/stopped using the shift-h keyboard shortcut.
- Thanks to Bob Dougherty, the color bar in histograms is now scaled
to reflect the display range of the image.
- Thanks to Michael Doube, voxel depth of imported DICOMs is based
on the distance between the first and last slices.
- Thanks to Michael Schmid, zooming in or out no longer causes the
position to be lost when the cursor is not over the image.
- Image>Stacks>Z Project saves the projection method in the preferences file.
- Added a "Bare Outlines" option to the particle analyzer.
- Thanks to Christian Moll, added the getInfo("log") macro function and the
IJ.getLog() method.
- Added the DicomTools.getTag() method.
- Fixed a bug in Image>Stacks>Reslice that caused, with
a stright line selections, inconsistent line shifting if "Slice count" was greater than 1 and
"Avoid interpolation" was enabled.
- Fixed several bugs in Image>Stacks>Orthogonal Views.
- Jan Funke fixed a bug that made it impossible to use the ZProjector
class concurrently.
- Fixed a bug that caused Image>Stacks>Make Montage, when used with
signed 16-bit images, to sometimes draw borders using pixel values of -32768.
- Fixed a bug that caused Image>Transform>Translate to fill with
white for non-integer bicubic translations.
- Thanks to Johannes Schindelen, fixed bugs that sometimes caused Image>Color>Merge Channels
to not work as expected when merging four stacks.
- The 2004 ImageJ paper by Michael Abramoff, Paulo Magalhaes and Sunandra Ram,
which has over 2000 citations, is now
available as a PDF.
- Wilhelm Burger has released
Export EPS,
a plugin that exports images as Encapsulated PostScript (EPS) files.
- Run the
Find 3D Max benchmarks
to compare the speed of various dimension and type independent pixel access methods.
- 1.44k, 26 November 2010
- Thanks to Norbert Vischer, added the ellipse tool, which shares the second slot
on the toolbar with the oval and the selection brush tools.
- Karen Collins contributed an improved FITS_Writer (File>Save As>FITS).
- Image>Show Info displays the pixel or voxel size.
- Edit>Selection>Straighten checks to see if the line has
already been prepared for straightening by a run("Fit Spline", "straighten") call.
- The getPixel(x,y) macro function now interpolates if x or y are non-integer.
- Thanks to Norbert Vischer, added the Array.rankPositions()
(example)
and makeEllipse() macro functions.
- Thanks to Jerome Mutterer, added the getDisplayedArea() macro function
(example).
- Ved Sharma fixed a bug that caused Image>Stacks>Label to not
correctly display negative times in min:sec and hour:min:sec modes.
- Fixed a bug that caused selection adjustment handles to be too
small on zoomed images.
- Fixed a bug that sometimes caused batch mode macros that used the particle
analyzer with the "Add to Manager" option to fail.
- Thanks to Michael Schmid, fixed a bug that caused a bogus syntax error
when calling a user-defined macro function with an expression similar to a[i]+b.
- Thanks to Wilhelm Burger, fixed a bug that caused the stroke
width of ShapeRois to not scale with the zoom factor.
- Fixed a bug that caused the pixel width of the output image to be incorrect
after using Image>Stacks>Reslice with a line selection on a spatially
calibrated image.
- Fixed a bug in IJ.d2s() that caused it to not correctly convert infinite values.
- Gilles Carpentier contributed the
Zoom_in_Images_and_Stacks
macro tool
(example).
- Samuel Pean has released the
Heatmap From Stack,
HeatMap Histogram and
Image Stack Merger Plus (background remover)
plugins.
- The photos from the 2010 ImageJ conference in Luxembourg are
now online.
- The Macro Language Reference Guide
and
example macros
from Jerome Mutterer's Macro Tutorial at the ImageJ conference in Luxembourg are now available.
- Norbert Vischer contributed
RandomEllipseTool,
a macro tool for creating elliptical selections with arbitray orientations and aspect ratios.
- 1.44j, 10 November 2010
- The Image>Duplicate command now works with hyperstacks.
- Double click on the angle tool icon to enable measurement of reflex angles.
- Thanks to Johannes Schindelen, added the More>>XOR command to the ROI Manager.
- Added a "y" keyboard shortcut to the Edit>Selection>Properties command.
- Added the ImageJ(ImageJ.NO_SHOW) constructor, which allows other Java applications
to open ImageJ invisibly.
- Fixed a bug that caused ImageCanvases to ignore mousePressed and
mouseMoved events when using ImageJ as a library.
- Fixed a bug that caused the Image>Adjust>Size interpolation setting
to be changed to "None" after using Image>Crop.
- Thanks to Wilhelm Burger, fixed a bug in the ByteBlitter class that caused it to throw an
exception if the copyBits() method was passed a ShortProcessor or a FloatProcessor.
- Fixed a bug that caused saving of Results windows created using IJ.write() calls to fail.
- Thanks to Norbert Vischer, fixed a bug that caused TIFF files opened as virtual stacks
to become corrupted when saved in place.
- Fixed a bug that caused Process>Binary>Skeletonize to not work
as expected for some diagonal objects.
- Fixed a bug that caused use of the up and down arrow keys in the Control Panel to
zoom the image in and out.
- Fixed bugs that caused the "Control Panel" and "List Commands" commands to fail in the drop down
menu that appers when right-clicking on an image.
- Usage statistics for imagej.nih.gov
for the month of October are now available. In one month, there were 216,007 visits from 159,623 unique sites
and 3029 gigabytes of data were downloaded. ImageJ was downloaded 213,921 times, an average of 6900 times
per day.
- Gilles Carpentier contributed the
Protein Array Analyzer
toolset (online documentation).
- Volker Baecker has made available a comprehensive 93 page
ImageJ tutorial (11MB PDF).
- 1.44i, 8 October 2010
- Added the Edit>Selection>To Bounding Box command.
- Added the "Run garbage collector on status bar click" checkbox to the
Edit>Options>Memory&Threads dialog box.
- Added "Help" buttons to the FFT dialog boxes.
- Pressing "+" (Image>Zoom>In) now zooms to
the center of the image when the cursor is not over the image window.
- File>Revert now works with stacks.
- The particle analyzer now works with virtual stacks and with RGB images
thresholded using Image>Adjust>Color Threshold.
- The state of the Image>Adjust>Threshold and
ColorThreshold "Dark background" checkboxes are saved
in the preference file.
- The Array.sort() macro function now does case-insensitive string sorts.
- Fixed a bug that sometimes caused the magnifying glass tool to zoom the wrong image on Linux.
- Thanks to Matthew Smith, fixed a bug that caused non-rectangular pastes to fail
when switching to another image.
- Fixed a bug that caused the wrong button to be highlighted in
showMessageWithCancel() dialog boxes.
- Fixed a bug that caused 3D projection of RGB stacks to fail if "Use inverting lookup table" was
enabled in Edit>Options>Appearance.
- Fixed a bug that caused a "Rename as" dialog to be displayed if the alt key was
held down while a batch mode macro using the ROI Manager was running.
- Fixed a bug that caused an FFT window to always be displayed when "Raw power spectrum"
was checked in the "FFT Options" dialog box.
- Fixed a bug with the roiManager("Add") macro function that
caused it to set the ROI stroke color to cyan.
- Fixed a bug that caused duplicate images with names ending in "-xx" do sometimes be renamed incorrectly.
- Timm Weitkamp, David Haas and Alexander Rack contibuted
ANKAphase,
a plugin that processes X-ray inline phase-contrast radiographs.
- Kristopher Sheets contributed
Open Heyex Raw Files,
plugins that import Heidelberg Spectralis OCT images.
- Dimitrios Vavylonis has released
JFilament,
a plugin for segmentation and tracking of 2D and 3D filaments in fluorescenece microscopy images.
- 1.44h, 21 September 2010
- Added drop down menus to the Image>Adjust>Color Threshold window
for selecting any of 16 different automatic thresholding methods and for selecting the
threshold color.
- Fixed a bug that sometimes caused the Image>Adjust>Contrast/Brightness
"Apply" option to fail with RGB stacks.
- Erik Meijering released an updated version of
TransformJ
that works with hyperstacks and includes source code.
- 1.44g, 18 September 2010
- Plugins>Utilities>Control Panel no longer creates a "PCPanel2.ini" file in the user's home directory.
- ImageJ can now open zip archives, using a URL, that contain multiple DICOM images.
- The arrow keys can now be used to vertically scroll the Results window.
- The getInfo() macro function can now retrieve Bio-Formats metadata values.
- Added the selectionContains(x,y), is("animated") and debug("dump") macro functions.
- The TextPanel.setSelection() method now insures that the selection is visible.
- Added the TextPanel.addMouseListener() method.
- Thanks to Barry DeZonia, fixed a bug that caused Process>Smooth to not round
results with 8-bit images.
- Fixed a bug that sometimes caused passing of choices in macro run() calls to fail when
"item=&varname" notation was used.
- Fixed a bug that caused virtual stacks backed by a folder containing a script to not open correctly.
- Fixed a bug that sometimes caused the image count displayed in the dialog box
to be incorrect when a folder is dragged and dropped.
- Barry DeZonia fixed a bug that sometimes caused division of 16-bit images to fail
and a bug that could result in Windows directory paths ending in "/\\".
- Fixed a bug that caused an exception to be thrown when opening LZW compressed 32-bit float TIFFs.
- Fixed a bug that caused the macro debugger to sometimes fail to work
with macro code pasted into the editor on Mac OS X.
- Thanks to Barry DeZonia, fixed a bug that caused the ImageProcess.convolve3x3() method (used by
Process>Sharpen) to not correctly handle edge pixels of 8-bit and RGB images images.
- Tseng Qingzong fixed a bug in the MaximumFinder.findMaxima() method that caused it to fail when
called with outputType List or Count.
- Andreas Maier fixed an edge handling bug in ImageProcessor.getInterpolatedValue(), which is
used by Analyze>Plot Profile.
- Christian Aeberhard contributed
GHT,
a plugin that uses the General Hough Transformation to
recognize rotated and scaled objects.
- Thanks to Evan McCreedy, the ImageJ website has a new, easier to remember, URL
(imagej.nih.gov/ij).
The old URLs
(rsbweb.nih.gov/ij and rsb.info.nih.gov/ij)
will continue to work.
- 1.44f, 22 August 2010
- Added the Image>Stacks>Tools>Grouped Z Project command.
- Thanks to Michael Schmid,
Image>Adjust>Size and Image>Scale
have "Average when downsizing" options and
Image>Adjust>Size supports Undo.
- Thanks to Michael Doube, the Ortho Viewer (Image>Stacks>Orthogonal Views)
can be controled by clicking and dragging in the XZ and YZ views and
the mouse wheel changes the screen plane in all three views..
- Image>Stacks>Z Project now works with RGB hyperstacks.
- The headers are now saved when saving a DICOM virtual stack in TIFF format.
- Thanks to Mark Longair, IJ.getScreenSize() now returns the correct
size when the screen size is changed after ImageJ has started.
- The perimeter of a composite selection is now calculated by decomposing it into
individual selections. The composite perimeter and the sum of the
individual perimeters may be different due to use of different calculation methods.
- Thanks to Michael Doube, added getInstance(), getCrossLoc() and setCrossLoc() methods to the Orthogonal_Views class
(example).
- SetStack() calls no longer cause a new ImageWindow
to be constructed when adding a slice to a single image or subtracting a slice
from a two slice stack.
- Newly opened macro sets with two or more macros are installed in the
Plugins>Macros submenu.
- Added the getInterpolationMethod() and resize(int,int,boolean) methods
to the ImageProcessor class.
- Fixed a regression than caused the particle analyzer to fail with stacks
when "Display labels" was enabled in Analyze>Set Measurements.
- Fixed bugs in Image>Stacks>Orthogonal Views that caused it
to not work correctly with anisotropic voxels.
- Fixed a bug that caused Edit>Selection>Rotate to fail with
thick lines.
- Thanks to Johannes Schindelin, the 16 plugins developed under the supervision of Noël Bonnet
were recovered and are now available at
plugins/inserm514.
- Sean Parsons contributed
MetaData (Line Scan Analysis),
a plugin that saves and opens images with metadata and does filtering, normalization
and spark detection of confocal line scans of intracellular calcium.
- Jorma Isola has released
ImmunoRatio,
a plugin for analyzing ER, PR, and Ki-67 immunohistochemistry.
- Ben Corry and Rasha Ruhayel contributed
2D NMR Analysis,
a plugin for analysing and integrating peaks in 2D NMR spectra.
- 1.44e, 2 August 2010
- Added the Image>Stacks>Tools>Make Substack command, based on the
Substack Maker plugin by Anthony Padua, Daniel Barboriak and Ved Sharma.
- Added an "AND" command to the ROI Manager.
- The Image>Overlay>Add Selection dialog remembers the stroke width and color.
- The run("Close All") macro function no longer displays a warning message when there are unsaved changes.
- The particle analyzer now displays a blank image when the count is zero and "Show:" is not "None".
- Added the
Overlay.*
macro functions
(example).
- Added the CompositeImage.setChannelsUpdated() and Macro_Runner.runMacroFromJar() methods.
- Fixed a regression that caused the save() macro function to change the image name.
- Fixed a regression that caused File>Import>Text Image to fail if the file contained values
with a plus sign (e.g., "1.23e+02").
- Fixed a macro run() call parsing bug that caused
"min=234;run("Analyze Particles...", "size=&min");" to fail.
- Fixed a bug that caused an exception if the newImage() macro function
was called with width or height set to zero.
- Fixed a bug that caused setAutoThreshold("Default") to sometimes not generate
the expected threshold with images that had a sharp peak in its histogram.
- Fixed a bug that caused Plugins>Utilities>Control Panel to not correctly save its preferences.
- 1.44d, 12 July 2010
- Added the Edit>Selection>Line to Area command.
- Added "Help" buttons to the File>Import>Image Sequence,
File>Import>Raw and Process>Math>Macro
dialog boxes.
- The CurveFitter resolves 6 parameter user-defined equations.
- Image>Color>Make Composite now opens the
new composite color image in place.
- Removed the "Convert to 8-bit grayscale" option from
File>Import>Image Sequence. As a replacement, use the
"Use virtual stack" option and then convert to 8-bit using Image>Type>8-bit.
- Assigned the "U" keyboard shortcut to Plugins>Utilities>Control Panel.
- ImageJ no longer automatically installs, at startup, plugins
in JAR file directories that start with a lower case letter.
- ImageJ runs "-batch" command line scripts in batch mode.
- Added setImage(ImagePlus) and setNextLocation(Point) methods
to the ImageWindow class.
- The up and down arrow keys no longer cause the LOCI Data Browser
window to zoom in and out.
- Fixed a bug that sometimes caused an exception when an
animating stack window was closed.
- Fixed a bug that sometimes caused Process>Image Calculator
to not work correctly with signed 16-bit stacks.
- Fixed a bug that caused an exception when using
Image>Overlay>Flatten on an image without an overlay.
- Fixed a bug that sometimes caused the "Ch", "Slice" and "Frame" Results table
columns (enabled by checking Stack Position in Set Measurement) to contain
incorrect values.
- Fixed a bug that caused JPEGs smaller than 8x8 pixels to always open as 8-bit grayscale images.
- File>Save As>AVI no longer caps the frame rate at 60 FPS.
- Fixed a bug that caused the slice range to be ignored by Image>Stacks>Label
when using an overlay.
- Adam Gorlewicz has released
Colocalization Colormap,
a plugin for quantification and visualization of
colocalized fluorescent signals.
- Michael Mohn and Jannik Meyer contributed
Asymmetry,
a plugin for automated analysis of variations in imaging conditions
across the field of view in high resolution TEM images.
- 1.44c, 15 June 2010
- Raw integrated density (sum of pixel values) is displayed when "Integrated density"
is enabled in Analyze>Set Measurements.
- Added a File>Rename command and Results menu to Results windows.
- Added "Help" buttons to the Process>Find Maxima,
Process>Image Calculator and Process>Subtract Background
dialog boxes.
- Pressing 'esc' aborts macros displaying a "WaitForUser" dialog.
- Changed the name of the File>Save As>Measurements command to
File>Save As>Results and changed Help>Update Menus to
Help>Refresh Menus.
- Plugins>Compile and Run adds the Bio-Formats plugin (loci_tools.jar) to the
Java compiler's classpath.
- The TIFF reader displays information needed to import the file
(number of images, offset to first images, gap between images) when ImageJ is in debug mode.
- The MacClipboard plugin, which opens PICT images from the clipboard
using QuickTime for Java, is now included in ij.jar.
- Added the IJ.renameResults() macro function.
- Worked around a bug that caused the Image>Stacks>Reslice
command to be very slow on some 64-bit versions of Java.
- Fixed a bug that sometimes caused a "negative seek offset"
error when opening TIFF files larger than 2GB.
- Fixed a bug that caused File>Import>TIFF Virtual Stack
to not display the TIFF tags when ImageJ was in the debug mode;
- Fixed a bug that caused "/" to be added to the FileInfo directories when opening
a folder of images using drag and drop on Windows.
- Fixed a bug in the setAutoThreshold() macro function and ImageProcessor.setAutoThreshold()
method that caused the threshold level to be one less than the level set by the "Threshold" widget
when "Dark background' was enabled.
- Jerome Mutterer has released
Serial Macro Extensions,
a plugin that provides macro language functions to talk to a device attached to a serial port.
- 1.44b, 1 June 2010
- Added the "Unsigned 16-bit range" drop down menu to the
Image>Adjust>Contrast/Brightness "Set" dialog.
- Added show="Overlay Outlines", show="Overlay Masks" and "In situ Show" options
to the Analyze>Analyze Particles dialog box.
- Added "Help" buttons to the Process>Binary>Options,
Analyze>Analyze Particles, Analyze>Set Measurements,
Analyze>Set Scale and Analyze>Calibrate dialog boxes.
- Added a "Use overlay" option to Image>Stacks>Label.
- File>Export>AVI and File>Export>Image Sequence
(when saving JPEG or PNG) now preserve overlays.
- Added the Overlay.setStrokeColor() and Overlay.setfillColor() methods.
- Fixed a bug that caused the getResult() macro function to return NaN
with imported results containing column headers with leading or trailing spaces.
- Fixed a bug that caused 8 and 16 bit grayscale stacks saved as JPEG-compressed
AVIs to not play correctly in the Windows 7 Media Player.
- Fixed a bug that caused macros to become uninterruptible after doing a custom curve fit.
- Fixed a bug that caused redirected sampling of non-displayed images to fail.
- Franklin Shaffer, an engineer at the USDOE National Energy Technology Laboratory in Pittsburgh,
used ImageJ to help estimate the leak rate from the Gulf oil spill.
- The 3D Viewer plugin,
included with imageJ as the Plugins>3D>ImageJ 3D Viewer command,
was published in
BMC Bioinformatics.
Please cite this article when using it for your visualization needs.
- The
RGB to CMYK plugin
converts an RGB image into a 32-bit CMYK stack.
- 1.44a, 13 May 2010
- Overlays are preserved when printing and when saving in PNG format.
- Thanks to Tiago Ferreira, Image>Stacks>Tools>Montage to Stack
now takes borders into acount.
- Added "Rotate YZ" and "Flip XZ" options to
Edit>Options>DICOM.
- Thanks to Juan Grande, added "Save column headers" and "Save row numbers"
options to Edit>Options>Input/Output.
- Constructing a HistogramWindow when using ImageJ as a library
no long causes an image to be displayed.
- Added a GenericDialog.addCheckboxGroup() method that specifies
column headings.
- Fixed a bug that caused "Results" window summary data to not be saved.
- Fixed a bug that caused Orthogonal Views crosshair lines to be saved as
an overlay when saving in TIFF format.
- Thanks to Barry DeZonia, fixed a bug that sometimes caused an
exception when drawing a composite selection (ShapeRoi).
- Fixed a bug that could cause the Threshold tool to not work correctly
after using File>Revert on a 16-bit DICOM image.
- Fixed a bug that could cause the Image>Overlay>Hide Overlay
and Show Overlay commands to not work as expected.
- Thanks to Johannes Schindelin, fixed a bug in the PluginClassLoader that could
cause an exception when running plugins using MIJ (Matlab to ImageJ interface).
- Fixed a bug that caused DialogListeners to not be called with checkbox groups
with fewer than five checkboxes.
- Worked around a Linux bug that caused labels in GenericDialog checkbox groups to be
centered rather than left justified.
- Fixed bugs in Image>Stacks>Othogonal Views that caused it
to not work correctly with zoomed images and with the
"+" (Zoom In) and "-" (Zoom Out) commands.
- The
MultiColumnDialog plugin
demonstrates how to create a dialog box with checkboxes in two or more columns.
- Ben Tupper contributed
Graph Demo,
a plugin that demonstrates the creation of adjacency lists based
on particle separation distances.
- Tiago Ferreira's
ImageJ User Guide (PDF)
is now also available in HTML format, either
online
or as a downloadable ZIP file.
- Ricardo Henriques has released
QuickPALM,
a plugin for real-time acquisition, reconstruction and visualization of
3D PALM (PhotoActivated Light Microscopy) or
STORM (STochastic Optical Resolution Microscopy) images.
- Michael Fischer contributed
Diameter,
a plugin for measuring the diameter of a blood vessels.
Version 1.43, 22 April 2010
- 1.43u, 22 April 2010
The code for opening PICT images from the clipboard using
QuickTime for Java was moved to a separete plugin
(MacClipboard.java)
distributed with the OS X version of Image.
- Fixed a bug that caused the setAutoThreshold() macro function, and the IJ.setAutoThreshold()
and ImageProcessor.setAutoThreshold() methods, to not work correctly
with 16 and 32 bit images that were not using the default display range.
- Barry DeZonia contributed an improved OvalRoi.contains() method.
- Guanghua Du contributed
Foci Picker3D,
a multithreaded plugin that finds local maxima in 2D and 3D images.
- 1.43t, 17 April 2010
- ImageJ now requires Java 1.5 or later.
- Added the Image>Stacks>Tools>Insert and
Image>Stacks>Tools>Montage to Stack commands.
- Image>Stacks>Label works with hyprestacks and support
for 00:00 and 00:00:00 timestamp formats.
- Edit>Draw now draws to left and
below rectangular selections when the line width is one.
- Add "Timestamp" code generator to Process>Batch>Macro
and Process>Batch>Virtual Stack.
- The "Auto", "Reset" and "Set" buttons of the B&C widget are now recorded
correctly when the Recorder is in "Script" or "Plugin" mode.
- File>Import>Raw opens stacks with the middle slice selected.
- Changed the initial Log fit 'a' and 'b' parameter values to 1.0.
- Added the SetOption("black background", boolean) macro function.
- Added the LutLoader.open(String), LutLoader.open(InputStream) and
LutLoader.createImage(IndexColorModel) methods.
- Thanks to Wilhelm Burger, The AutoThresholder class now uses a compile-time safe enum to
specify the method rather than a string that can cause an exception to be thrown.
- Fixed a bug that caused File>Import>Image Sequence to not
create slice labels for images imported from stacks.
- Fixed a bug that caused the "+" shortcut for zooming in
to not work with German keyboards.
- Fixed a bug that could cause ImageJ to hang when when displaying
an error message in debug mode.
- Jonathan Glass contributed
Export Point Cloud,
a plugin that creates a point cloud viewable in Excel, Matlab or Paraview from a stack of CT scans.
- Tiago Ferreira contributed
The ImageJ User Guide,
an 8 MB PDF document that contains:
- 188 pages
- 198 illustrations
- 867 internal cross-references
- 332 external links to the WWW
- 5 tables
- 7 macro listings
- Tiago Ferreira contributed
SourceCodeRetriever,
a macro that searches for a menu entry and tries to
retrieve the java source file of the respective plugin.
- The Laboratory of Scientific Image Analysis
has released the
CDA (Confined Displacement Algorithm for Colocalization) plugin.
- 1.43s, 19 March 2010
- Moved the Combine, Concatenate, Start Animation, Stop Animation
and Animation Options commands from the Image>Stacks submenu to the
Image>Stacks>Tools submenu.
- Moved the Find Maxima command from the Process>Binary submenu to the
Process menu.
- Moved the List Shortcuts command from the Plugins>Utilities submenu to the
Plugins>Shortcuts submenu.
- Moved the Options... command to the bottom of the Process>Binary submenu.
- Changed the default Find Maxima output type to "Point Selection".
- Changed the default AVI Writer compression from "Uncompressed" to "JPEG".
- ImageJ now displays an error message when the user attempts to open a tiled TIFF file.
- Thanks to Daniel White, Analyze>Tools>Scale Bar is no longer
annoyingly slow for image stacks with thousangs of slices.
- The ROI Manager More>>Options dialog is now recordable.
- ImageJ now opens 48-bit TIFFs that are missing the required StripByteCounts tag.
- Added the ResultsTable.getResultsWindow() and TextWindow.close(boolean) methods.
- Fixed a bug that caused the particle analyzer to sometimes not work as
expected when the "Display Results" option was not enabled.
- Thanks to Barry DeZonia, fixed a bug that caused big-endian, ARGB,
uncompressed TIFFs to not open correctly.
- Thanks to Barry DeZonia, fixed a bug that sometimes caused an exception
when IJ.getImage() was called and the "ImageJ" window was not open.
- Fixed a bug that caused an exception when opening
some BioRad Quantity One 16-bit TIFFs.
- Fixed a bug that caused PackBits-compressed 16-bit TIFFs to not open correctly.
- Tiago Ferreira contributed
MathMacroDemo,
a macro that demonstrates how to use the Process>Math>Macro command to apply
custom formulas to each pixel in an image.
- 1.43r, 4 March 2010
- Added the Edit>Options>DICOM command.
- Added a "Headless" style to the arrow tool.
- Overlays are preserved when saving in JPEG format.
- Restored the ROI Manager "FIll" and "Draw" commands.
- Added the getInfo("overlay") macro function
(example).
- Fixed regressions that caused 16-bit composite images to be converted to grayscale
when saving in JPEG and PNG format.
- Fixed a bug that caused the particle analyzer to open the Results
window when the "ImageJ" window was not open.
- Fixed a bug that caused the File>Open Next command
to not work correctly with composite images and hyperstacks.
- Fixed a bug that caused stacks created by importing Analyze format images using
File>Import>Image Sequence to contain duplicate images.
- Fixed a bug that sometimes caused the wrong channel to be selected
when clicking on the channel slider.
- Jerome Mutterer contributed
MacBook Position,
a plugin that uses the JNI library at
www.shiffman.net/p5/sms/
to read a MacBook's Sudden Motion Sensor.
- Gabriel Landini has released
Dithering,
a macro that dithers an image using one of nine available methods, including
Floyd-Steinberg, Atkinson, Jarvis-Judice-Ninke, Stucki, Bayer, Clustered and Random.
- 1.43q, 12 February 2010
- Fixed a bug, introduced in v1.43p, that caused Image5D to crash.
- 1.43p, 11 February 2010
- Added the File>Close All command.
- Selections and overlays are saved in the TIFF header.
- Stack sliders now have a play/pause button, and hyperstack
channel sliders have a "c" label, hyperstack slice sliders have a "z" icon
and hyperstack frame sliders have a play/pause button.
- Added "Print actual size" checkbox and "Print" button to the
File>Page Setup dialog box.
- Most of the Process>Math commands are now faster
when operating on 16-bit and float images.
- ShortProcessor constructors no longer call the time-consumming findMinAndMax() method.
- Fixed a bug in Analyze>Calibrate that caused it to ignore minus signs.
- Fixed a bug that caused incorrect histograms of stacks larger than two gigapixels.
- Thanks to Barry DeZonia, fixed a bug that caused big-endian, ARGB, LZW-compressed
TIFFs to not open correctly.
- Michael Schmid fixed a bug that caused Process>Binary>Find Maxima
to not display zero counts in the Results window.
- Julian Cooper fixed a bug that caused resizing of rectangular and oval selections from the
center (by holding down Control and Shift) to fail when moving handles on the top and left.
- Fixed a bug that caused the run("Next Slice [>]") macro function to fail in batch mode macros.
- David Entenberg contributed a
tutorial
on how to use the Eclipse IDE to develop ImageJ plugins.
- The
Floyd_Steinberg_Dithering
plugin converts an image to binary using the Floyd Steinberg algorithm.
- Mark Chopping has released
CANAPI (CANopy Analysis with Panchromatic Imagery),
a macro for analysis of forest/shrub canopies.
- Emerson Ferreira de Lucen contributed
Fractal Surface Measurement,
a plugin that estimates the fractal dimension of fracture surfaces.
- Damon Poburko contributed the
Mulitple Thresholds macro,
which segments locally bright puncta in images with varying background intensity.
- Emerson Ferreira de Lucena and Luis Rogerio de Oliveira Hein contributed
Depth From Focus,
a plugin for improving the focal depth of light microscopy z-series stacks.
- 1.43o, 27 January 2010
- Added a "Double headed" option to the Edit>Options>Arrow Tool dialog box.
- The Edit>Options>Arrow Tool options are saved in the preferences file.
- Thanks to Matt Smith, the "List" and "Save..." buttons in plot windows now list and save
all the data that has been plotted.
- Added the IJEventListener interface
(example).
- Added the "-debug" command line option.
- The ThresholdAdjuster now records the default thresholding method as setAutoThreshold("Default") or
setAutoThreshold("Default dark");
- ImageJ now opens TIFF files with invalid compression tag values of 0
created by the PerkinElmer Acapella system.
- The macro language "+=" operator can now be used for string concatenation.
- Added the open(path,n) macro function and the IJ.open(path,n) and IJ.openImage(path,n)
methods, which open the nth image in a tiff stack.
- Added the random("seed", seed) macro function.
- FloatProcessor() constructors no longer call findMinAndMax().
- Fixed a bug that caused some "-batch" mode command line macros to fail.
- Fixed a bug that caused the line width adjuster slider
to sometimes not be set correctly.
- Fixed a bug that caused the run() and doCommand() macro functions, and the IJ.run() and IJ.doCommand()
methods, to fail to run commands in the File>Open Recent menu.
- Fixed a bug that sometimes caused Analyze>Calibrate to not correctly
calibrate 16-bit images with straight line functions.
- Matt Smith fixed a bug that caused a "nullnull" file to be created when
a plot window file save was canceled.
- Fixed a bug that caused ImageJ64 on Mac OS X to fail to start if the
memory limit was set to less that 256MB.
- Fixed the FloatProcessor(int[][]) constructor.
- Thanks to Barry DeZonia, fixed a bug that caused odd-width 12-bit TIFFs
to not open correctly.
- The
FlipSelection macro
flips a selection either vertically or horizontally.
- Pablo Manuel Jais contributed the
SetScaleFromTiffTag macro,
which uses the
TIFF Tags plugin
to set the scale of SEM images taken with the Carl Zeiss SmartSEM program.
- 1.43n, 28 December 2009
- Added the rounded rectangle and arrow tools, which share
space on the toolbar with the rectangle and line tools. The arrow tool was
inspired by the Fiji arrow tool written by Jean-Yves Tinevez and Johannes Schindelin.
- Selections (e.g., arrows) can be added to a non-destructive overlay by pressing "b", the new keyboard
shortcut for the Image>Overlay>Add Selection command.
- Added the Edit>Options>Arrow Tool command.
- Added support for saving results tables as .csv (comma-separated values)
files and for opening them using drag and drop.
- The color picker is no longer an ImageWindow, and it remembers its location.
- Removed the "JPEG Quality" option (which wasn't working) from the File>Save As>AVI
dialog box.
- The ROI Manager works with stacks that have more than 9999 images.
- The Command Finder (Plugins>Utilities>Find Commands) remembers
the state of the "Close when running" checkbox.
- The 'changes' flag is now reset after saving an image in PNG, BMP, PGM or FITS format.
- The "Antialiased tool icons" setting in Edit>Options>Appearance
is enabled by default.
- Fixed a bug in the Command Finder that caused it to fail to run macros
installed in the Plugins>Macros submenu.
- Fixed a bug that caused File>Revert to vertically flip FITS images.
- Fixed a bug that caused ImageJ to not correctly open some 16-bit TIFFs.
- Fixed bugs that caused the lineTo() and drawLine() macro functions to not
correctly draw lines with negative starting coordinates.
- Vincent Dorcet et al. have contributed
EXTRAX,
a plugin for electron diffraction intensity extraction.
- Ben Tupper contributed the
RATS (Robust Automatic Threshold Selection) plugin.
- 1.43m, 7 December 2009
- Virtual stacks can now be saved in TIFF, "raw",
Analyze and
NIfTI
format.
- Thanks to Michael Schmid, "MinFeret" calculations are now
more accurate and correctly handle pixel aspect ratios not equal to 1.
- Results tables (in tab-delimited text format) with an ".xls" extension can be
opened using File>Open and drag and drop.
- When using the particle analyzer in a macro, the default values (0-Infinity, 0-1 and "Nothing")
are assumed if the 'size', 'circularity' or 'show' options are omitted.
- The updateResults() macro function and ResultsTable.show() method,
when creating a new table, scroll to the top of the window
(example).
- Added the Overlay.getSize() and Overlay.removeSelection() macro
functions.
- Added the ImagePlus.setOverlay(Overlay) method
(JavaScript example).
- Added the ImagePlus.setOverlay(Roi,Color,int,Color) method
(JavaScript example).
- Added open(path) and saveAs(path) methods to the ResultsTable class
(JavaScript example).
- Fixed a bug that caused Analyze>Summarize to somethimes
fail if "Stack Position"
was enabled in Analyze>Set Measurements.
- Volker Backer fixed a bug that sometimes caused the B&C adjuster
to work with the wrong channel of a composite color image after having changed
the channel by dragging the channel selection slider.
- Tiago Ferreira has released
ROI Color Coder,
a macro that labels segmented particles by matching measured parameters to indexes of a chosen LUT.
- Gilles Carpentier contributed
Object_Color_Sorting,
a macro that demonstrates how to segment objects based on their color.
- Eugen Labun has released
ImageJ SURF,
a plugin that does feature detection and image comparison.
- The
ToothRootToCrownRatio
macros use a non-destructive overlay to allow easy measurement of tooth dimensions in
dental radiographs.
- 1.43l, 24 November 2009
- Gabriel Landini's Threshold_Colour plugin is now built in as the
Image>Adjust>Color Threshold command.
- Added the Image>Overlay>Remove Overlay command.
- Added a "New Overlay" option to the
Image>Overlay>Add Selection dialog box
(example).
- Added "Opacity" and "Create image selection" options to the
Image>Overlay>Add Image dialog box.
- The Recorder, in "JavaScipt" and "Plugin" mode, correctly
records ROI Manager commands.
- Added the IJ.getToolName() macro function and method.
- Added the Analyzer.setRedirectImage() method.
- The AVI Writer displays an error message if the user
attempt to overwrite a virtual stack
- Fixed a bug that caused Image>Color>Merge Channels
to always create a composite image when merging four channels.
- Fixed a bug related to passing path variables to export plugins by
macros using "&varname" notation
(example).
- Gabriel Landini fixed a bug in Image>Adjust>Threshold
that caused the mask created when "Dark Background" was enabled
to not be identical to an inverted version of the mask created when
"Dark Background" was not enabled.
- Fixed a bug in Analyze>Calibrate that could cause values copied
into the dialog box from a webpage to be converted to zeros.
- Fixed a bug that caused 8-bit images with pseudo-color LUTs to be incorrectly
classified as type "8-bit Color" (ImagePlus.Color_256).
- Ignacio Arganda-Carreras has released
SIOX (Simple Interactive Object Extraction),
a plugin for segmenting color images.
- Stephan Saalfeld has released
CLAHE,
a plugin that implements Contrast Limited Adaptive Histogram Equalization.
- 1.43k, 10 November 2009
- Added the multi-point tool, which is enabled by right-clicking on the
point tool.
- Added a "Record:" drop down menu, with three choices ("Macro", "JavaScript" and "Plugin"), to the Recorder.
- The Recorder generates thread safe JavaScript and Java code.
- Thanks to Michael Schmid, Process>Binary>Find Maxima has a
"List" output option, and is faster.
- File>Import>Image Sequence sets the voxel depth equal to the pixel width.
- Image>Stacks>Reslice displays the voxel size in its dialog box.
- Spline fit selections and Text selections can now be saved (using File>Save As>Selection)
and restored (using File>Open or drag and drop).
- The Edit>Clear command in the "Results" table is now recorded.
- Added the IJ.deleteRows() macro function and method.
- Added the getInfo(DicomTag) macro function.
- Michael Schmid worked around a Java bug on Windows and Linux that prevented
selection of mutltiple ROIs in the ROI Manager with a single shift click.
- Michael Schmid fixed a bug in Process>Binary>Find Maxima,
with "Segmented" output, that caused it to create extra invalid features.
- Fixed a bug that could cause 8-bit DICOMs to not open correctly.
- Fixed a bug that could cause headings in empty custom results tables to not be displayed.
- Fixed a bug in Image>Stacks>Images to Stack that caused it do
not work properly with 8-bit color images.
- Fixed a bug in Image>Hyperstacks>Stack to Hyperstack that caused it
to not shuffle the slice labels of stacks not in CZT order.
- Yugo Sakamoto & Adilson Zacaro contributed
Levan,
an ROI Manager-like plugin for chromosome morphology.
- Roberto Sotto-Maior contributed
HanningWindow and
DirectionalFilterWindow,
macros that generate 32-bit images useful for Fourier filtering applications.
- 1.43j, 28 October 2009
- Bruno Vieira contributed
Colony Counter,
a plugin for counting bacteria colonies in agar plates.
- Marcel Austenfeld contributed
Twain Scan,
a plugin that uses the open source library from
www.mms-computing.co.uk
to capture images from Twain campatible scanners and cameras.
- 1.43i, 22 October 2009
- Added the Edit>Selection>Properties command.
- Added the Plugins>Macros>Record Script command.
- Thanks to Jay Unruh, File>Import>Text Image
opens images in comma-delimited text format.
- Thanks to Gabriel Landini, the Thresholding tool's "B&W" mode now respects the
"Black background" flag in Process>Binary>Options.
- Added the "Flatten" button to the ROI Manager and removed the "Draw", "Fill" and "Label"
commands from the "More>>" drop down menu.
- The aspect ratio of rectangular and elliptical selections is displayed in
the status bar as they are created and resized.
- The "Transparent-zero" mode in Edit>Paste Control and Process>Image Calculator
now works with 16-bit and 32-bit images.
- Assigned the shift-f keyboard shortcut to Image>Flatten
and the "]" (close bracket) shortcut to Window>Show All.
- Worked around a bug with Java 1.6 on Mac OS X that caused multiple
selection in the ROI Manager to not work.
- Jerome Mutterer has released
Droplet,
a drag and drop file processor that uses customizable macros.
- Thanks to Johannes Schindelin, ImageJ now has a
Git
version control
repository,
which is updated daily.
- Niels Jensen contributed
PlateMontage,
a macro that creates a labeled plate montage image from BD Pathway 855 / AttoVision 1.6 data sets.
- 1.43h, 9 October 2009
- ROI Manager selections can be assigned colors and line widths using the "Properties..." button and
selection labels can be disabled/enabled using the "Edit Mode" checkbox.
(example).
- Added the Image>Flatten command.
- Changed the name of the Image>Rotate submenu to
Image>Transform.
- Removed the "Double buffer selections" option from
Edit>Options>Appearance. ROIs and display lists (overlays) are
now always double buffered on Linux and Windows.
- Dialogs can be dismissed by pressing ctrl+w.
- Added the Image>Transform>Flip Z command.
- Added the makeText(), Array.invert(), getInfo("image.directory" ),
getInfo("image.filename" ), roiManager("Set Color", color) and
roiManager("Set Line Width", width) macro functions.
- Added the setStrokeColor(), setFillColor(), setStrokeWidth() and setNonScalable() methods to the Roi class
(example1,
example2,
example3).
- Fixed a bug that could cause an exception if the "l" key
(Plugins>Utilities>Find Commands) was pressed immediately after launching Fiji.
- Fixed bugs that could cause commands to be recorded when a macro was running.
- Jan Eglinger contributed
ThreeColorPlot,
a macro that creates profile plots of each channel of a color image and
overlays the plots in composite image.
- 1.43g, 18 September 2009
- Added the Process>Batch>Virtual Stack command.
- Added the "Draw As Overlay" (display ROIs using a display list) and "Remove Overlay"
commands to the ROI Manager.
- Multi-point and text selectons are now properly
displayed in the ROI Manager "Show All" mode.
- Tiff stacks with a .tif extension open as virtual stacks when dragged
and dropped on the ">>" toolbar icon.
- The Image>Show Info command and the getMetadata() macro function
retrieve the "DateTime" and "Software" TIFF tags.
- Plugins>Compile and Run defaults to the plugins
directory instead of the ImageJ directory.
- Added the IJ.handleException() and IJ.setExceptionHandler() methods.
- Fixed a bug that could cause an exception when using the Measure
command with segmented line selections wider than 1 pixel.
- Fixed a bug that caused commands that opened a web page to fail on
Mac OS X 10.6 when running the 32-bit version of Java 1.6.
- Fixed a bug that caused "[aborted]" to be displayed in the Log
window when a macro called using runMacro() was canceled.
- Fixed a bug that could cause macro files containing 100 or more
functions to fail to install.
- Fixed a bug in Analyze>Measure that cause it to incorrectly
calculate the area of line selections on spatially calibrated images and to
incorrectly calculate the mean of straight line selections wider than one pixel
on spatially calibrated images.
- Jacqui Ross has written four
ImageJ Tutorials (in PDF format),
Introduction to ImageJ,
Color Analysis Tools,
Colocalization Tools and
Using and Writing Macros.
- Joachim Wesner contributed
TIFF Tags,
a plugin that displays the tags of a specified TIFF file.
- Curtis Rueden contributed
TIFF Dumper,
a plugin that uses the
Bio-Formats
plugin to display the TIFF tags of the current image.
- Marco Righi has released
Vessel_Distribution,
a macro that compares the space-filling properties of microvessels networks.
- 1.43f, 24 August 2009
- The Image>Scale and Image>Adjust>Size commands
now scale stacks and hyperstacks in the Z dimension.
- The Image>Color>Merge Channels command
now works with hyperstacks.
- Added the File>New>Hyperstack command,
an alias for Image>Hyperstacks>New Hyperstack.
- Analyze>Tools>Fractal Box Counter writes results that
can be read by macros.
- Added the List.setCommands, setFont("user"), getInfo("font.name"),
getValue("font.size") and getValue("font.height") macro functions.
- Thanks to Johannes Schindelin, added the NonBlockingGenericDialog class,
now used by the Process>Batch>Process command.
- Fixed a bug that sometimes caused the Image>Adjust>Brightness/Contrast
"Apply" function to fail with RGB stacks.
- Fixed a bug that sometimes caused Image>Color>Split Channels
to display a "save changes?" dialog box.
- Fixed a bug that caused File>Save As>Image Sequence to throw an
exception if the window was closed before all the images in the stack were saved.
- Jerome Mutterer has released
PDF Macro Ext,
a plugin that uses the
iText library
to add PDF creation functions to the ImageJ macro language.
- 1.43e, 6 August 2009
- Added the Process>Batch> submenu, containing Measure,
Convert and Process commands.
- Thanks to Norbert Vischer, it is now much easier to outline circular objects
using the constrained (shift key down) elliptical selection tool.
- Added an "Export" button to Plugins>Utilities>Command Finder.
- Added the selectWindow("ImageJ") macro function.
- Fixed a bug that caused image zooming to fail on secondary monitors.
- Fixed bugs that caused the particle analyzer to sometimes not work as expected
when "Black Background" was enabled in Process>Binary>Options.
- Fixed a bug that caused the Plugins>Utilities>Memory Monitor
tool to not work correctly when the line width was greater than one.
- Robert Clements contributed
Demontager,
a plugin that converts an image montage into a stack.
- 1.43d, 21 July 2009
- Thanks to Dimiter Prodanov, plugins (.jar and .class files)
dragged from a browser window and dropped on the "ImageJ" window
are installed and the menus are updated.
- Text files (.txt, .ijm, .js and .java) can be opened in ImageJ by dragging from a browser window
and dropping on the "ImageJ" window.
- Thanks to Julian Cooper, the alt key constrains resizing to
the current aspect ratio for rectangle and oval selections, and
keeps the same length for line selections.
- Added a "32-bit ABGR" option to the File>Import>Raw
dialog box.
- The ImageJ and Java version numbers are displayed when
you click in the status bar.
- Added the getInfo("micrometer.abbreviation") macro function.
- Added the IJ.openUrlAsString() method.
- Fixed a bug that sometimes caused the micron symbol (µ) to not
be displayed correctly on Linux.
- Fixed a bug that caused big-endian ARGB TIFFs to open incorrectly.
- Fixed a bug that caused LUTs in the ImageJ/luts folder to not be
added to the Image>Lookup Tables menu when running Fiji on OS X.
- Fixed a bug that could cause Metamorph .stk files to open with
an all zero LUT.
- Fixed a bug that could cause ImageJ to generate an exception or fail
to start if there was a corrupted jar file in the plugins folder.
- Fixed a bug in the TIFF reader that could cause
a "Strip offsets are not in order" error.
- Gilles Carpentier contributed an enhanced
LUTs, Macros and Tools Updater toolset.
- Janos Roszik et al. have released
RiFRET,
a plugin for the evaluation of intensity-based ratiometric FRET images.
- 1.43c, 8 July 2009
- Thanks to Olaf Freyer, ImageJ can now open 48-bit LZW compressed TIFFs.
- Thanks to Michael Schmid, the
Process>Binary>Options dialog box
now has a "Preview" option.
- Roi Manager "Show All" mode selections can again be moved by
clicking on the selection's label and dragging.
- Images can be opened by dragging from a browser window and dropping on
the ImageJ window.
- When dragging and dropping, "<<Drag and Drop>>" is displayed in the status bar
when the cursor is over the drop site.
- Increased the size of toolbar icons from 24x24 to 26x26 pixels,
which increased the width of the ImageJ window by 42 pixels.
- With composite images, Image>Show Info adds a "Composite mode: mode" line to its output.
- Added the GenericDialog.enableYesNoCancel(yesLabel,noLabel) method
(example).
- The setVoxelSize() macro function converts "um" units "µm".
- Worked around a "feature" in the latest Mac OS X Java update that
caused the getDirectory("temp") macro function to return paths like
"/var/folders/C-/C-bqCJHiFxOuNwlNmBmRG1UNxXY/-Tmp-/" instead of
the expected "/tmp/".
- Fixed a bug, introduced in v1.43a, that caused the XStart and YStart values saved
by the particle analyzer to be incorrect.
- Fixed a bug that caused Image>Show Info to not display metadata of stacks
opened using File>Import>Stack from List.
- Fixed a bug that sometimes caused
Image>Hyperstacks>Stack to Hyperstack to not correctly
set the active image.
- Fixed a bug that caused the File.directory() macro function and
the OpenDialog.getLastDirectory() method to return a path to the luts
directory after a LUT had been loaded from the
Image>Lookup Tables submenu.
- Julian Cooper contributed the
CT Window Level and
Anonymize IJ DICOM
plugins.
- Romain Francois has released a
package
that embeds ImageJ in R.
- Andrew Weitz contributed
SomaRoiTool,
a tool macro for labeling somas (cell bodies) or other elliptical structures.
- 1.43b, 23 June 2009
- Added the "Use Titles as Labels" checkbox to the
Image>Stacks>Images to Stack dialog box.
- Kevin Moll contributed an enhanced and simplified PluginClassLoader
that extends URLClassLoader
(example).
- Fixed a bug, introduced in v1.43a, that caused
Help>Update ImageJ to fail if the path to ij.jar contained a space.
- Fixed a bug that caused Image>Show Info to not display metadata of stacks
opened using File>Import>TIFF Virtual Stack.
- Fixed a bug that sometimes caused the threshold limits to not be passed to PlugInFilters
using the CONVERT_TO_FLOAT flag.
- 1.43a, 19 June 2009
- Thanks to Michael Schmid, the wand tool now supports 4-connected
and 8-connected tracing, and a tolerance can be specified. Double click
on the tool icon to configure.
- The Image>Stacks>Delete Slice command works
with hyperstacks.
- Added a "Name" field to the Image>Stacks>Images to Stack dialog box.
- Thanks to Johannes Schindelin, Help>Update ImageJ updates ij.jar files
in non-standard locations, and those embedded in ImageJ64 on OS X.
- ImageJ can now be compiled with OpenJDK, thanks to
Johannes Schindelin and Mark Longair.
- Added the doWand(x,y,tolerance,mode) macro function and
IJ.doWand(x,y,tolerance,mode) method.
- Fixed a bug that caused plugins in packages with names starting
with "ij" to sometimes not be found.
- Fixed a bug that caused the Threshold tool "Apply" option to not be
recorded for 32-bit images with "Set Background Pixels to NaN" enabled.
- Fixed a bug that caused uncompressed TIFF stacks larger than
2GB to not open correctly.
Version 1.42, 8 June 2009
- Michael Schmid contributed
Smallest Enclosing Circle,
a macro that creates a circular selection that is the smallest circle enclosing the current selection.
- 1.42q, 8 June 2009
- Fixed bugs, introduced in v1.42p, that caused an exception when opening a virtual stack
or when closing an Image5D stack.
- Fixed a bug that caused bicubic intepolation edge artifacts.
- David Marso contributed
StackBlaster,
a macro that allows an image or stack to superimposed upon a background image or stack.
- Gilles Carpentier contributed
List Online Macros,
a macro that generates a list of all the macros, tools and toolsets available on the ImageJ website.
- Michael Schmid has released
Versatile Wand,
a wand tool with selectable tolerance, gradient detection, 4-connected or 8-connected operation and preview.
- 1.42p, 4 June 2009 (release candidate)
- Thanks to Gabriel Landini, the Image>Adjust>Threshold
tool now has a drop down menu for selecting any of
16 different thresholding methods.
- Thanks to Julian Cooper, rectangular and elliptical selections can now be
created and resized from their centers by holding down the control key (command key on Macs).
- Added the Label (Time Stamper), Combine and Concatenate commands
to the Image>Stacks submenu.
- The Stack Reducer
plugin replaces the Image>Stacks>Reduce Size command.
- Added the "Run socket listener" option to the Edit>Options>Misc dialog. Enabling this
option prevents multiple copies of ImageJ from starting but it can cause a security alert when ImageJ starts.
- Added the setAutoThreshold(string) and getList("threshold.methods") macro functions
(example).
- Added the ImageProcessor.setAutoThreshold(String) method.
- Added the Dialog.addHelp(string) macro function and the GenericDialog.addHelp(String) method.
The new Image>Stacks>Label command uses the addHelp() method.
- The ImagePlus.flush() method not longer runs System.gc() and no longer nulls the ImageProcessor pixel
array.
- Bicubic interpolation edge artifacts are reduced.
- Michael Schmid fxed a bug in Edit>Selection>Straighten that caused it to not
work well for very wide selections.
- Fixed a bug that caused the x values to be deleted in the Analyze>Calibrate dialog box.
- Fixed a bug that caused the Plot.getValues() macro function, when
retrieving values from plot windows, to not work in batch mode macros.
- Steffen Schmidt contributed the
TIA Reader plugin,
which opens .ser files created by the TIA software (FEI/Emispec).
- Julian Cooper contributed the
Make Isotropic and
Untilt Stack
plugins.
- Michael Schmid contributed
Erode Demo,
a plugin that demonstrates how to do binary erosion using the EDM, how to
provide a "Preview" option, how to process stacks using parallel threads,
and how to add a "Help" button to a dialog box.
- Michael Schmid has released
Radially Averaged Autocorrelation,
a macro that calculates the radial average of the autocorrelation of a (binary) image, and
Radial Distribution Function,
macro that calculates the radial distribution function (RDF) of particle centers.
- Gilles Carpentier contributed the
Scale Bar Tools for Microscopes
toolset (online documentation).
- 1.42o, 14 May 2009
- Added the Image>Stacks>Orthogonal Views command, which is based on
Dimiter Prodanov's
StackSlicer
plugin and Albert Codona's Updater class.
- Thanks to Julian Cooper, a straight line selection can now be
rotated about its center by holding down the control key (command key on Macs).
- File>Save As>AVI now works correctly with 5D hyperstacks
(e.g., the Mitosis sample image).
- Thanks to Michael Schmid, the
EDM algorithm
is more accurate,
there are options for 16-bit and float output, stacks are processed using
multiple threads, and
Voronoi diagrams
can be generated.
- Thanks to Michael Schmid, Process>Binary>Find Maxima
works with images>32768 pixels in width or height.
- Gabriel Landini added the "Pad edges when eroding" option to
Process>Binary>Options.
- With hyperstacks, Image>Stacks>Make Montage displays instructions that explain
how to create C, Z or T montages.
- Added the Mitosis (26MB, 5D Stack) sample image, courtesy of
Eric Griffis and Nico Stuurman.
- Fixed a bug that caused images with a width or height greater than 65,535
to not be correctly saved in TIFF format.
- Fixed a bug in the File.openAsRawString() macro function that caused it to not
correctly read bytes with values greater than 127.
- Fixed a bug that caused an error message to be displayed when a URL
stack download was aborted by pressing 'esc'.
- Fixed a bug that caused Process>Filters>Convolve to sometimes
record an extra "\".
- Fixed a bug that caused TIFF and RAW virtual stacks greater than 2GB to
not open correctly.
- Fixed a bug that could cause the measurent length of rapidly drawn freehand line selections
to be incorrect.
- Fixed a bug that could cause the newImage() macro function to display
a bogus "out of memory" error.
- Fixed a bug that caused the TIFF reader to not correctly decode
metadata containing non-ASCII characters.
- Fixed a bug that caused Image>Color>Merge Channels to throw an
exception of the source images were not all the save type.
- Philippe Thevenaz has released
SheppLogan,
a plugin that generates a sampled version of the Shepp-Logan phantom.
- Tiago Ferreira contributed
Filename_Randomizer,
a macro that randomize the names of files in a folder.
- 1.42n, 26 April 2009
- Added the is("binary") macro function and ImageProcessor.isBinary() method.
- Fixed bugs, introduced in v1.42m, that caused LSM images to open with incorrect channel colors and
sometimes caused the Image>Color>Merge Channels command to fail.
- Fixed a bug that caused the saveAs() macro function to sometimes truncate file names containing periods and no extension
- Jerome Mutterer has released
IJ Ed,
a jEdit-based
code editor plugin for ImageJ.
- Jean-Yves Tinevez and Albert Cardona have released the
Dynamic Reslice plugin,
a dynamic version of the built in Image>Stacks>Reslice command.
- Gabriel Landini has released
Auto Threshold,
a plugin that converts 8-bit images to binary using any of 15 global
thresholding methods, and Auto Local Threshold,
that converts to binary using any of 5 local thresholding methods.
- 1.42m, 22 April 2009
- The Image>Stacks>Reslice command works with hyperstacks.
- The up and down arrow keys now substitute for the "+" and "-" shortcuts
when zooming in and out. This only works if the shift or control key is down when
there is a selection.
- When there is no selection, or the shift key is down, the arrow keys can
substitute for "<" and ">" when navigating stacks and hyperstacks.
- The More>>Multi Threshold command in the ROI Manager is much faster.
- When previewing point selections, Process>Binary>Find Maxima
does not label the points regardless of the "Label Shift-Click Points" setting.
- The Adjust>Threshold tool saves the LUT mode ("Red", "B&W" or "Over/Under")
in the preferences file.
- Added the Stack.getStatistics(), is("changes"), getInfo("selection.name") and
File.nameWithoutExtension macro functions.
- Added the ImageProcessor.setOverColor() and setUnderColor() methods, which can
be called from a macro to set the Over/Under threshold colors
(example).
- Norbert Vischer fixed a bug that caused the macro debugger to not work, and error
message line numbers to be invalid, with macros containing multiple line /*...*/ comments.
- Michael Schmid fixed a bug in the public RankFilters.rank() method that caused it
to only process the red channel of RGB images.
- Sylvain Mainguy fixed a bug that caused the cursor to change to a
hand at the corners of the bounding box of composite selections.
- Fixed a bug that caused FL and FD DICOM VRs to not be correctly decoded.
- Fixed a bug in Image>Hyperstacks>Reduce Dimensionality that caused it to not
preserve image labels.
- Fixed a bug that caused jar files containing class files with "_" in the
name in subfolders and no plugins.config file (e.g., ImageJ_3D_Viewer.jar)
to generate startup error messages.
- Fixed a bug, introduced in 1.42i, that could cause ImageJ to hang when
using the Measure command if "Shape Descriptors" or
"Feret's Diameter" were enabled in Set Measurements.
- Fixed bugs that caused the Image>Type>RGB Color, Image>Color>Stack to RGB
and File>Save As>AVI commands to not work correctly with
hyperstacks when called from batch mode macros.
- Fixed bugs that caused Image>Hyperstacks>Reduce Dimensionality to not be
macro compatible.
- Fixed a bug that caused Image>Hyperstacks>Stack to Hyperstack to throw
an exception when converting one channel Image5D stacks.
- Fixed a bug that caused the Image>Adjust>>Threshold tool to sometimes override
existing threshold settings of 16 and 32 bit images.
- Fanny Serman contributed
Smart Projector,
a plugin that optimizes, for each time point, the projection of time-lapse stacks.
- Dimiter Prodanov contributed the
StackSlicer plugin.
- 1.42l, 24 March 2009
- Added keyboard shortcuts for hyperstacks:
- > - next channel
- < - previous channel
- ctrl+> - next slice
- ctrl+< - previous slice
- alt+> - next frame
- alt+< - previous frame
- Added bicubic interpolation option to
Image>Rotate>Arbitrarily, Image>Scale
and Image>Adjust>Size. The bicubic interpolation method is from Chapter 16 of
Digital Image Processing: An Algorithmic Introduction Using Java
by Wilhelm Burger and Mark Burge, with the 'a' control parameter set to 0.5 (Catmull-Rom interpolation).
- The range of images to be copied can be specified when
duplicating a stack using Image>Duplicate.
- Image>Stacks>Images to Stack no longer requires that all images
be the same type and size.
- The Image>Translate command works with sub-pixel offsets
(example).
- Image>Stacks>Make Montage draws antialiased labels and
allows the font size to be set in the dialog box.
- File>Import>URL replaces spaces in URLs with "%20".
- Thanks to code contributed by Mark Longair, Image>Type>HSB Stack
now converts RGB stacks to a 3 channel (Hue, Saturation and Brightness) hyperstacks.
- Image>Type>RGB Stack now
converts RGB stacks to a 3 channel (Red, Green and Blue) hyperstacks.
- Mark Longair made usability improvements to
Plugins>Utilities>Command Finder:
1) double-click to run a command; 2) press backspace to switch focus
to prompt; 3) press escape to close.
- Added the Edit>Copy to Image Info command to the text editor.
- The search command in the text editor remembers the
"Case Sensitive" setting.
- Added the fill(Roi), fileOutside(Roi) and draw(Roi) methods to the
ImageProcessor class
(example).
- Fixed a bug in Image>Stacks>Plot Z-axis Profile that caused it to not
work correctly in batch mode macros.
- Fixed a bug that prevented the selection from being resized after
using Edit>Selection>Select All.
- Fixed a bug that could cause an exception when opening
24-bit BMP images.
- Fixed a bug that caused Process>Binary>Find Maxima to not
work with composite color images.
- The
Multiple LUT Stack
plugin demonstrates how to display a stack using a lookup table for each image.
- Gabriel Landini contributed
Colorize,
a macro which adds hue and saturation to user defined regions in a greyscale image, while leaving the brightness constant.
- Gilles Carpentier contributed
PlotSigmoidDerivatives,
macros that demonstrate how to do curve fitting and how to calculate and plot first and second derivatives.
- 1.42k, 6 March 2009
- Added the Image>Zoom>Set command,
which is based on Albert Cardona's
ZoomExact
plugin.
- Process>Math> commands now support "Preview" and use
parallel threads when processing stacks.
- Image>Type>RGB Color will convert the channels in a multichannel composite
color stack to an RGB stack if the number of channels is the same as the number of images in the
stack and the display mode, set with the "Channels" tool, is "Color" or "Grayscale".
- Scripts can be passed a string argument when called from the command
line (using the -macro or -batch options) or using the IJ.runMacroFile() method.
Scripts can use the getArgument() function to retrieve the argument.
- Removed the "Input Slice Spacing" field from the Image>Stacks>Reslice
dialog box.
- File>Import>URL opens JPEG, PNG and GIF images from URLs based
on either the extension or the content type.
- Added the Plot.drawLine(x1,y1,x2,y2) macro function
(example).
- Added the Stack.setTUnit(string) and Stack.setZUnit(string) macro functions.
- Julian Cooper fixed a bug in Image>Stacks>Reslice that somethimes caused the preview
rectangle did not accurately show the extent when starting with a line selection.
- Berthold Daum fixed a bug that caused ImageJ to fail to open 48-bit TIFFs created by
the RawTherapee program.
- Fixed a bug that caused run("Measure") to not work as expected when used in "-batch" command line macros.
- Fixed a bug that sometimes caused the cursor X and Y coordinates to not be displayed
in plot windows.
- Fixed a bug that caused scripts called from the command line using the
"-batch" option to fail to run.
- Fixed a bug that caused IJ.getDirecory() calls to not be recorded on Linux and Windows.
- Fixed a bug that caused Image>Stacks>Reslice to not work correctly
with signed 16-bit stacks.
- Fixed bugs the caused batch mode macros that used
Process>Math>Macro or did user-defined curve fitting to fail.
- Fixed a bug on Windows that sometimes caused paste operations in the macro editor
to not insert the text in the correct location.
- Winnok de Vos contributed the
RegisterStackUsingTranslation
macro, which registers a stack based on the center of mass of each image.
- Daniel Senff and Kai Uwe Barthel have released
ImageFlow,
a plugin that provides a node-based graphical user interface for macro-creation and image editing.
- Jerome Mutterer contributed the
GammaCorrectionTool
macro, which allows the Gamma curve to be adjusted by dragging on the image.
- Julian Cooper contributed
Radial Reslice,
a plugin that reslices a stack by rotating the sliced plane around the z-axis, and
RC Montage,
an enhanced version of the Image>Stacks>Make Montage command.
- 1.42j, 23 February 2009
- Analyze>Analyze Particles is faster because results are no longer continuosly displayed.
- With 32-bit (float) images, Process>Math>Divide creates Infinity, -Infinity or NaN
pixels when the source pixels are positive, negative or zero.
- Added the Array.copy(), Array.getStatistics(), Array.sort() and Array.trim() macro functions
(example).
- Values passed to the makeRectangle() and makeOval() macro functions are rounded.
- JavaScript scripts import more packages (ij.util, ij.plugin, ij.plugin.filter and ij.plugin.frame).
- The addResults() and updateResults() methods in the ResultsTable class
allow values to be added to the "Results" window more quickly.
- Fixed a bug, introduced in 1.42i, that caused the Smooth, Sharpen and Find Edges
commands to invert16-bit stacks.
- Fixed a bug that caused the Stack.setSlice() macro function to sometimes
not work correctly in batch mode macros.
- Peter Stierlen has released
Scan Calculator,
a plugin that calculates 3D data from 2D scanline data captured with a laserscanner.
- Added a Windows version of ImageJ bundled with 64-bit Java to the
Download
page.
- 1.42i, 17 February 2009
- Circularity (4pi*area/perimeter^2) , aspect ratio (major axis/minor axis), roundness (4*area/pi*major axis2)
and solidarity (area/convex area) are calculated and displayed
when "Shape Descriptors" is enabled in Analyze>Set Measurements.
- The angle of the Feret's diameter is displayed
when "Feret's Diameter" is enabled in Analyze>Set Measurements.
- Histograms of 16-bit stacks are generated much faster.
- Edit>Invert inverts 16-bit stacks based on the stack min and max.
- File>Save As>Selection now saves only the base coordinates of spline fit selections.
- The frame interval and unit set in Image>Properties are now saved with both single
images and stacks.
- Added "(32-bit)" or "(64-bit)" to the Java version displayed in the Help>About ImageJ
window and in the status bar on startup and when the cursor is over an unused toolbar slot.
- Added the List.setMeasurements() and List.getValue() macro functions
(example).
- The getCursorLoc() macro function sets a flag bit when the cursor is inside an
area selection
(example).
- Added the setOption("ShowMin", boolean) macro function.
- Added the getNonSplineCoordinates() and getUncalibratedLength() methods to the PolygonRoi class.
- Fixed a bug that caused the "(V)" in the title bar to remain after type converting a virtual stack.
- Fixed a bug in Analyze>Measure that caused the bounding rectangle
to not be calculated correctly for line selections.
- Fixed a bug on Windows Vista that caused the first few characters of the image subtitle
to be cut off.
- Rob Lewis Fixed a bug that caused File>Import>URL to throw an exception when opening
DICOMs with headers larger than 200,000 bytes.
- Berthold Daum fixed a bug that sometimes caused an exception
when opening 48-bit RGB TIFFs.
- Greg Joss fixed a bug that sometimes caused Edit>Selection>Straighten
to not work correctly.
- Jerome Mutterer contributed the
DrawParticleEllipseAxis
macro, which demonstrates how to add axis to the ellipses drawn by the particle analyzer.
- Michael Doube contributed the
CheckDICOMSlicePositions
macro, which verifies that the slice positions in a DICOM stack agree with the voxel depth.
- Jerome Mutterer contributed the
Fixed Angle Line Tool
and
L-Shape Tool
macros.
- 1.42h, 30 January 2009
- Added the Process>Math>Macro command, which is modeled after Ulf Dittmer's
Expression
plugin.
- A pasted image no longer needs to be the same type as the receiving image.
- Minimum Feret diameter (minimum rotatating calipers width) is calculated when "Feret's Diameter"
is checked in Analyze>Set Measurements
- Tweaked the default settings in the curve fitter (Analyze>Tools>Curve Fitting)
so that it is more likely to converge
(example).
- Selected lines in the Results and Log windows can be deleted by pressing the backspace key.
- An updated Menus class, contributed by Johannes Schindelin, provides better Fiji compatibility and
allows plugins to be installed in more menus.
- Added the centerDialogMethod() to the GenericDialog class
(example).
- Fixed a bug that caused the Macro>Run Macro and Debug>Debug Macro
commands in the macro editor to not run the first macro in a macro set with global variables
(example).
- Fixed a bug on the Mac that caused the macro debugger to fail to work with macros pasted from
the system clipboard using File>New>System Clipboard.
- Fixed a bug with the Convolver.convolve() method that caused it to throw an exception
if it passed a non-float image.
- Fixed a bug with the Fit.doFit() macro function that caused to throw an exception of the arrays
were not the same length.
- Gabriel Prieto Renieblas contributed
MS_SSIM_index,
a plugin that calculates the MS-SSIM (multi-scale structural similarity) and MS-SSIM* Indexes.
- 1.42g, 12 January 2009
- ImageJ now checks for, and deletes, duplicate plugins on startup, when running Help>Update Menus
and when running Plugins>Compile and Run.
- Fixed a bug, introduced in v1.42f, that caused commands in the
Plugins>Macros submenu to fail to work and caused extra commands
to be added to the Plugins>Utilities submenu.
- Use Benjamin Schmid's
3D Viewer
plugin for hardware-accelerated 3D visualization of image stacks as volumes, surfaces and orthoslices.
- 1.42f, 9 January 2009
- Added the Plugins>Utilities>Capture Image command.
- Added a "Show 'Debug' Window" option to macro error messages.
- Added a "*User-defined*" fit option to Analyze>Tools>CurveFitting.
- The LUT Editor (Image>Color>Edit LUT) displays the ending index in
the status bar as the user drags to select a range and it no longer moves the
green and blue sliders when the red slider is moved.
- The Fit.doFit() macro function will now fit a user-defined equation to a set of data points
(example).
- Added the Fit.showDialog and Fit.logResults macro functions.
- Reported UnsupportedClassVersion exceptions now include the line
"This plugin requires Java 1.x or later."
- ImageJ no longer throws an exception when opening DICOMs with
UT (unlimited text) tags.
- Fixed a bug on Windows, introduced in v1.42e, that made it impossible to
enter into editor windows some characters (e.g., "{") accessed using the AltGr key.
- Fixed a bug in the particle analyzer that caused it to sometimes
not correctly add particles to the ROI Manager.
- Fixed a bug in the saveAs() macro function that sometimes caused it to fail
if the path contained a period and the file name did not have an extension.
- Luke Miller has written a
tutorial
on how to quantify western blots using ImageJ.
- 1.42e, 17 December 2008
- Added a "Debug" menu to the macro editor.
- Histograms of 8-bit and RGB stacks are created much faster.
- "Convert RGB to Composite" option added to Image>Hyperstacks>Stack to Hyperstack
dialog when image is in RGB format.
- Added the is("Caps Lock Set") macro function.
- The save() and saveAs() macro functions work with text editor windows.
- Fixed a rounding error with histograms of RGB stacks.
- Fixed a bug that sometimes caused ImageJ to create
TIFF stacks that caused Matlab to crash.
- Fixed a bug in File>Save As>FITS that could cause an error
when resaving a FITS image.
- Gabriel Landini created a
macro
you can run to evaluate your system's performance and compare results with 36 other systems.
- The Open Source Paleontologist blog has an
article
about ImageJ.
- Dimiter Prodanov contributed the
Image Moments plugin.
- Gabriel Prieto Renieblas contributed
SSIM Index,
a plugin that calculates the structural similarity index.
- 1.42d, 5 December 2008
- The Image>Colors>Channels Tool is recorded.
- Added the setMinAndMax(min,max,channels) macro function.
- Fixed a bug, introduced in v1.42c, that caused the run("Set Scale...", options)
macro function to fail.
- Fixed a bug, introduced in v1.38, that caused the threshold to be reset
when clearing or filling a stack slice.
- 1.42c, 2 December 2008
- Added a "Scaled Units" checkbox to the Edit>Selection>Specify dialog and
"Pixel Units" checkboxes to the Analyze>Analyze Particles and Edit>Selection>Enlarge dialogs.
These checkboxes are only displayed if the image is spatially calibrated.
- The ROI Manager "Multi Measure" command adds the ROI name to the column headers if
the name does not start with a digit or if its length is less than nine characters.
- The length of the current straight line selection is now displayed in the Analyze>Set Scale dialog
even when the image is spatially calibrated.
- The getDirectory("image") macro function is more likely to work with an image loaded by an external plugin.
- Worked around a bug on Mac OS X that required pressing the "Remove Scale" button twice in the Analyze>Set Scale dialog box.
- Jeffrey Woodward contibuted the
QTVirtualStack class,
which has been incorporated into the
QuickTime Opener
plugin.
- Michael Schmid has released
Fast Filters,
a collection of filters (mean, min, max, median, background, ...) that are up to 40 times faster
than the filters in the Process>Filters submenu.
- Ignazio Gallo contributed
Poisson Noise,
a plugin that adds Poisson distributed noise to all ImageJ data types (8-bit, 16-bit, float and RGB),
to stacks and to non-rectangular selections.
- 1.42b, 20 November 2008
- Edit>Selection>Straighten works with stacks.
- Added an "Add to ROI Manager" option to the Edit>Options>Point Tool dialog box.
- The File>Import>Image Sequence "Convert to RGB" option now
works with the "Use Virtual Stack" option.
- Added a "Convert to RGB" option to the dialog box displayed when a folder
is dragged and dropped onto the "ImageJ" window.
- Edit>Draw displays a "Process Stack" dialog when operating on a stack.
Use the "d" shortcut to avoid this dialog.
- Image>Show Info now displays the display range of 8-bit images.
- Process>FFT>Custom Filter now mirrors the image around its
edges to avoid wrap around artifacts.
- The ROI Manager "Multi Measure" function now works with line and (single) point selections.
- Renamed the "Reset" button in the Analyze>Set Scale dialog to
"Remove Scale" and changed the unit displayed with unscaled images from "cm" to "pixel".
- Image window activations are recorded.
- 16-bit composite color images are now correctly converted to 8-bits.
- Fixed a bug, introduced in 1.41n, that caused Process>Math>NaN Background
to fail with stacks.
- Fixed a bug that caused Analyze>Tools>Calibration Bar
to throw an exception on Windows if the default calibration
bar was taller than the image.
- Fixed a bug that caused virtual stacks to hang if the backing folder contained images that
were not all the same size and type.
- Fixed a bug that caused indexed 8-bit grayscale images to not be correctly converted to 16 and 32 bits.
- Photos from the ImageJ Conference
have been posted to the Wiki.
- 1.42a, 31 October 2008
- Added the 4200x4200 "NileBend" image and the "Confocal Series" 4D stack to the File>Open Samples menu.
- The Image>Color>Stack to RGB command is faster.
- The Help>Update ImageJ drop down menu no longer displays the letter
suffix except for the prerelease version at the top of the list.
- The IJ.openImage(path) method displays a file open dialog if the 'path' argument
is omitted or it is an empty string.
- Fixed bugs that caused Image>Adjust>Color Balance to not
work correctly with composite color images.
- Fixed a bug that caused the Adjust>Brightness/Contrast "Set"
option to not work as expected with composite color images.
- Fixed a bug that caused the first slice and frame to always be displayed after
using Image>Hyperstack>Channels Tool to switch a hyperstack
to "Composite" mode.
Version 1.41, 24 October 2008
- 1.41o, 24 October 2008
- Added the Process>Math>Set command.
- Help>Update ImageJ, except when updating to the
"daily build", deletes "functions.html" in the macros folder,
which forces the macro editor's Macros>Function Finder
command to download a fresh copy.
- The call() macro function can now call static methods with
integer arguments.
- Added the getOutputImage() and setHideOutputImage(boolean)
methods to the ParticleAnalyzer class.
- Added the Toolbar.setBrushSize() method.
- Fixed a bug, introduced in v1.41k, that caused macro functions not in
an installed macro set to not be able to write to global (var) variables.
- Fixed a bug that caused plugins using the ImagePlus.getImage() method
to not work as expected when called from a stack-processing batch mode macro.
- Michael Schmid contributed a new
Accurate Gaussian Blur plugin.
- 1.41n, 17 October 2008
- Added the Edit>Options>Compiler command.
- Added support for opening PackBits compressed TIFFs
and ARGB TIFFs.
- Added a "Scientific Notation" option to the Analyze>Set Options dialog box.
- Files in the plugins folder with ".ijm" and ".js" extensions
no longer require an "_" in the name to be installed in the Plugins menu.
- JPEGs are saved using ImageIO if the JpegWriter class is removed,
allowing ImageJ to be compiled with the OpenJDK.
- Added "Exponential Recovery" [y=a*(1-exp(-b*x))+c] fitting to the CurveFitter class.
This function is used by the FRAP_Profiler plugin included with the MBF package.
- The d2s() macro function uses scientific notation if the second argument is negative.
- Help>Update Menus resets the plugin class loader.
- Added the ImageProcessor.getPixelInterpolated(double,double) method, which was
contributed by Stephan Saalfeld.
- Fixed bugs that caused the setThreshold(), getThreshold() and setMinAndMax() macro
functions to not work correctly with intensity calibrated 8-bit images.
- Fixed a bug, introduced in v1.41l, that caused File>Save As>FITS
to create FITS files that could not be opened by some other FITS readers.
- Fixed a bug that caused the calibration plot to be displayed when
running the Analyze>Calibrate command in a macro.
- Fixed a bug that caused run("Command", "stack") macro statements to not
process the entire stack if "Hide 'Process Stack?' Dialog" was enabled in
Edit>Options>Misc.
- Tiago Ferreira contributed
Toolset Creator,
a macro that creates toolbar menus for running plugins, macros and scripts.
- Janos Roszik, Janos Szollosi and Gyorgy Vereb have released
AccPbFRET,
a plugin for analysis of acceptor photobleaching FRET images.
- Jenoptik
has released an
ImageJ driver
for their ProgRes microscope cameras.
- 1.41m, 19 September 2008
- File>Save no longer displays a "Save As" dialog when
resaving a TIFF stack.
- A more informative error message is displayed when
attempting to process a virtual stack.
- Analyze>Plot Profile now uses the full file name,
minus the extension, in plot window titles.
- Added the eval("script", javascipt) macro function.
- Fixed a bug, introduced in v1.41l, that caused infinite numbers to
be displayed as "∞" instead of as "Infinity".
- 1.41l, 16 September 2008
- Added the Help>Update Menus command, which allows
plugins to be installed and/or removed without restarting ImageJ.
- Area, line, angle and point measurements can be recorded in the same
Results window.
- The Roi Manager "Measure" function no longer requires that all
selections be areas or all selections be lines.
- Making a change in the Analyze>Set Measurements dialog box
no longer caused the Results window to be reset.
- The Particle Analyzer's "Summarize" option displays the average mean, mode,
perimeter, major axis, minor axis, angle, circularity, Feret diameter,
integrated density, median, skewness and kurtosis if the corresponding option
is enabled in Analyze>Set Measurements.
- Frederic Hessman contributed an improved version of File>Save As>FITS
that preserves any existing FITS header.
- Image>Stacks>Stack to Images no longer discards
slice labels (e.g., DICOM headers).
- Numbers displayed using scientific notation in plots, histograms,
and in the Results window, now use a maximum of 3 decimal places.
- The angle tool is now correctly recorded.
- File>Save As>AVI
now accepts frame rates as low as 0.5 (2 seconds per frame).
- Fixed a bug that caused the Process>Binary>Erode and Dilate
commands to throw an exception with one pixel wide images.
- Sebastian Rhode contributed
Calc_Objective,
a plugin that calculates parameters of interest for an objective lens.
- Gilles Carpentier contributed the
Dot Blot Analyzer toolset
(online documentation).
- 1.41k, 2 September 2008
- The "Line Width", "Fonts", "Log"
and "ROI Manager" windows remember their locations.
- The Edit>Adjust>Adjust Line tool updates all images
with lines selections and has increased slider range of 1-300.
- The Measure command and getStatistics() macro function calculate area statistics
of line selections wider than one.
- Process>FFT>Inverse FFT improvements (courtesy of Michael Schmid):
- Areas marked as "pass" or "filter" in the power spectrum are
made symmetric.
- The smoothing algorithm uses periodic boundary
conditions.
- Inverse FFT on a cropped power spectrum does not cause an exception.
- The filter created after symmetrizing and smoothing is shown
in debug mode or if the alt key is down.
- The particle analyzer assumes the size is in pixels if it is followed by a "p", for example
run("Analyze Particles...", "size=100p display clear").
- Added a "Close when running" checkbox to the
Plugins>Utilities>Find Command window and
changed the "Cancel" button to "Close".
- Added curve fitting functions (Fit.*) to the macro language
(example).
- Added the Plot.getValues() macro function.
- The open() macro function now works with image URLs.
- Gzip compressed FITS images on network drives open up to 10 times faster.
- Fixed a bug, introduced in v1.41b, that caused the ImageJ applet
to fail to load DICOM images on startup
(example).
- Fixed a bug in File>Import>AVI, introduced in 1.41h, that caused some
color video formats to open as 16-bit grayscale.
- Fixed a bug that caused the slider in the
Image>Adjust>Line Width window to blink
on Windows.
- Fixed a bug that caused the setForegroundColor() macro
function to reset the line width.
- Reduced the likelyhood of a bug that caused the Image>Adjust>Threshold "Set" option
to sometimes enter incorrect values on Linux.
- Fixed a bug that caused upper case shortcuts created using
Plugins>Shortcuts>Create Shotcut
to open macros instead of running them.
- Jerome Mutterer contributed
TiltedRectangleTool, a macro
tool that creates tilted rectangular selections.
- Joel Sheffield has made available an
ImageJ tutorial in PowerPoint format
he gave at a recent
Microscopy & Microanalysis meeting and the
images and stacks
used in the tutorial.
- David Webb contributed
Toe_Indexer,
a macro set for measuring footprints and calculating the toe index.
- 1.41j, 8 August 2008
- Profile plots of segmented and freehand lines wider than 1 are averaged across the line.
- File>Save As>Image Sequence exports
hyperstacks as C/Z/T labeled files (e.g., "name_t01_z01_c01").
- Added the Image>Adjust>Line Width command (or double click on the line tool).
- Added a "Spline Fit" checkbox to the Image>Adjust>Line Width tool.
- Added a "Background Value" field, and "Invert Y Coordinates" and "Suppress Log Output"
options, to the Analyze>Tools>Save XY Coordinates dialog box.
- The ROI Manager "Deselect" option is recorded.
- Added the File.saveString(string,path) and File.append(string,path)
macro functions, and corresponding IJ.saveString() and IJ.append() methods.
- Fixed a bug, introduced in v1.41f, that could cause batch mode
macros to fail.
- Fixed a bug that could cause LZW-compressed TIFFs to be incorrectly decoded.
- Fixed a bug in Image>Stacks>Reslice the caused the spatial calibration to
not be correctly transformed if the voxel width and height were not the same.
- Fixed a bug that sometimes caused the wrong selection to be copied
when duplicating stacks with non-rectangular selections.
- Fixed a bug that caused a "Data chunk size too short" error when
opening uncompressed RGB AVI files.
- Fixed a bug that caused .flex files to fail to open if the Bio-Formats
plugin was not installed.
- Fixed a bug that caused an exception when opening PGM images
less than 20 pixels in size.
- Fixed a bug that caused the LUT to not be correctly copied when
duplicating a single image in hyperstack in a batch mode macro.
- 1.41i, 25 July 2008
- Added the Edit>Selection>Straighten command.
- An extension is added to file names in File>Save As dialogs that do not have one.
- Added the substring(string,index) macro function.
- Fixed a bug that caused the Analyze>Summarize command to not work
with "IntDen" results.
- 1.41h, 18 July 2008
- Added the Plugins>Macros>Edit command, which replaces the Plugins>Edit command
removed in v1.41g. There is also a plugin version of this command
at rsb.info.nih.gov/ij/plugins/download/jars/Edit_.jar.
- JavaScript programs in the plugins folder with an underscore in the name and a ".js" extension
are installed in the Plugins menu at startup.
- Virtual stacks imported using File>Import>Image Sequence now include slice label metadata.
- ImageJ opens 16-bit grayscale AVIs created by
MIL (Matrox Imaging Library), thanks to a patch by Reinhard Mayr.
- Added the run("Fit Spline", "straighten") macro function, which converts a line selection to one
defined by points spaced one pixel apart
(example).
- The point selection tool is now recordable.
- The ROI Manager "Combine" function works with point selections.
- Added the makePoint(x,y) macro function and IJ.makePoint(x,y) method.
- Fixed a bug that caused selections extending beyond the image
boundary to not be correctly copied to the clipboard.
- Fixed a bug that caused the round() macro function to not work
correctly with NaN and infinite arguments.
- Fixed a bug that caused images to no longer be displayed after
aborting a batch mode macro by pressing Esc.
- Fixed a bug that caused the
setOption("QueueMacros",true)
macro function to not work as expected with macros using a function key shortcut.
- Fixed a bug that caused the ROI Manager "Update" option to hold a
reference to the image, preventing it from being garbage collected.
- Johannes Schindelin contributed
Thread Killer,
a plugin that aborts plugins that do not quit when the escape key is pressed.
- The
Dodge Burn and Smooth
macros demonstrate how to use the
"QueueMacros" option
to avoid "Image is Locked" errors caused by overlapping macro execution.
- Wilhelm Burger has released
MovieIO,
a library that can be used to read and write video files frame-by-frame.
- Albert Cardona has written a
tutorial
on how to use JavaScript with ImageJ. ImageJ 1.41g, which adds the Macros>Evaluate JavaScript (in the editor)
and Plugins>New>JavaScript commands, is required to run the examples.
More JavaScript examples are available at
rsb.info.nih.gov/ij/macros/js/.
- 1.41g, 3 July 2008
- Dialogs can now be canceled by clicking on the close box.
- Added Merge Channels, Edit LUT, Red, Green, Blue, Cyan, Magenta,
Yellow and Grays command to the More» menu in the "Channels" tool.
- Split the Plugins>New command into a submenu with Macro, JavaScript, Plugin, Plugin Filter,
Plugin Frame, Text Window and Table commands.
- Removed the Plugins>Edit command. In its place, use File>Open or drag and drop.
- Thanks to a patch by Ulf Dittmer, the File>Open Recent menu
no longer lists files multiple times.
- The "The calibration of this image conflicts with the current global calibration."
warning message is not displayed for images opened in macros.
- The waitForUser() macro function remembers the dialog box location.
- The PlugInClassLoader loads classes faster from JAR files.
- Norbert Vischer has released
Wrap AppleScript,
a macro that allows you to run AppleScript in ImageJ, and
AliasResolver,
a macro for resolving aliases. Both macros require Mac OS X 10.4 or later.
- Ulf Dittmer has released
Animated PNG Writer,
a plugin that creates APNG files from stacks of images.
- 1.41f, 24 June 2008
- The File>Import>URL command now opens
Java (.java) and JavaScript (.js) programs.
- Renamed the Image>Color>RGB Split and RGB Merge
to Split Channels and Merge Channels.
- Added a redundant Image>Color>Channels Tool command.
- Added a Split Channels command to the More» menu in the "Channels" tool, replacing
the Open HeLa Cells command.
- Added a "JavaScript" type to the Plugins>New dialog.
- To run JavaScript on Java 1.5 and earlier, and on Mac OS X, download
JavaScript.jar
to the plugins folder.
- Added the List.set(key,value), List.get(key), List.size, List.clear,
List.setList(string) and List.getList macro functions.
- Added the IJ.run(ImagePlus, command, options),
IJ.save(ImagePlus, path) and IJ.saveAs(ImagePlus, format, path) methods.
- Fixed bug that could cause Image>Color>RGB Merge
to throw an exception if one of the input images was a hyperstack.
- Fixed a bug that caused an extra tab at the end of Results window lines copied
to the clipboard or saved as a text file.
- 1.41e, 10 June 2008
- Michael Schmid added the ability to save using
Motion JPEG
and
PNG
compression to
the File>Save As>AVI command and the ability to read JPEG and PNG
compressed AVIs to the File>Open command.
- Added the Macros>Evaluate JavaScript command to the macro editor
(example).
This command requires Java 1.6, which has the Mozilla
Rhino
JavaScript interpreter built in.
- Added the Help>Update ImageJ command, which duplicates the
Plugins>Utilities>Update ImageJ command.
- Added the "Move Isolated Plugins to Misc. Submenu" option to the
Edit>Options>Misc dialog. Enable this option and single .class plugins in a
directory are installed in the Plugins>MIscellaneous submenu instead of in
submenus with only one command.
- Jerome Mutterer contributed the macro editor's new Macros>Find Functions command.
- Edit>Selection>Rotate works with composite selections.
- Edit>Selection>Restore Selection works with non-rectangular
selections that extend beyond the boundary of the destination image.
- The getStatistics() and getRawStatistics() macro functions
now work with line selections.
- The File.delete() macro function now returns true (1) if the file or directory was
successfully deleted. "1" will be displayed in the Log window if
File.delete() is not called in an assignment or 'if' statement.
- Fixed a bug that sometimes caused 16-bit signed
stacks to not be correctly converted to 32-bits.
- The
OpenTextImagesAsStack
macro opens a sequence of text images as a stack.
- Michael Schmid contributed
Video Capture Tool,
a macro for capturing video on Windows via
VirtualDub.
- 1.41d, 28 May 2008
- Mark Longair contributed the Plugins>Utilities>Find Commands
command, which provides a dialog for interactively finding ImageJ commands by
typing a substring of the command name. Type "l" (launch), a few
letters for disambiguation and then 'enter' to run the matching command.
- Gabriel Landini contributed an improved version of
Process>Binary>File Holes that is up to 100 times faster.
- The Image>Stacks>Make Montage command now
works with composite color images.
- Enable "Save TIFF and Raw in Intel Byte Order" in
Edit>Options>Input/Output and File>Save As>Tiff
will save in little-endian format.
- File>Save As>PNG saves 8, 16 and 32 bit images as 8-bit PNGs, and
now works with composite color images.
- Changed the "GIF Transparent Index (0-255)" field in Edit>Options>Input/Output
to "GIF and PNG Transparent Index".
- The "" keys and the mouse wheel now change hyperstack channels.
- Added a "Copy Row Numbers" option to the
Edit>Options>Input/Output dialog box.
- Changed the Results window
File>Set File Extension menu item to File>Options.
- Right-clicking on a macro tool runs a macro with the name <tool name>+" Options".
- DICOM IMPLICIT_VR tags with a length less than 4 are now displayed in the Image>Show Info
window.
- Added the Neuron (1.6M, 5 channels) sample image,
which was contributed by John Alexander. Press "i" (Image>Show Info) to get a description.
- Added the getStringWidth(string) macro function.
- Added getBufferedImage() methods to the ImagePlus and ImageProcessor classes.
- Added a get16BitBufferedImage() method to the ShortProcessor class.
- Fixed a bug that caused Image>Crop to fail with merged
composite images when using Java 1.6.
- Fixed bugs in the Plot class and Plot.* macro functions that caused
incorrect axis labeling if setLimits() was not called first and caused lines
and shapes wider than three pixels to sometimes be drawn outside the
plot frame.
- Fixed a bug in the imageCalculator() macro function that sometimes caused
the result image to not be the currently selected image.
- Fixed a bug in the setColor() macro function that caused it to always
convert the argument to an integer.
- Fixed a bug in the Image>Adjust>Threshold tool that
caused the "Auto" feature to not work correctly on images with line
selections.
- Brade Busse has released
MultiStackReg,
an extenson of the
StackReg
plugin that supports saving and loading of alignment parameters
and multi-stack alignment
(requires TurboReg).
- 1.41c, 16 May 2008
- Added the Plugins>Utilities>Proxy Settings command,
based on the NetSetup plugin contributed by Dimiter Prodanov.
- With merged composite color images, the "Preview" check box is not
added to dialog boxes and the "Process all n images?" dialog is not
displayed.
- Added 13 tags to the built in DICOM dictionary.
- ImageJ calls system.gc() when a stack and/or the last
image is closed.
- Added the Dialog.addCheckboxGroup() macro function.
- Added the GenericDialog.setEchoChar() method, which is used to implement
the password field in the Edit>Options>Proxy Settings
"Authentication" dialog.
- Fixed a bug that sometimes caused the Image>Adjust>Brightness/Contrast "Auto" option
to fail on images with non-rectangular selections.
- Fixed a bug, introduced in v1.40b, that caused the labels in images
created by the particle analyzer Show:Outlines option to be
black instead or red.
- Fixed a bug that caused 8-bit PNGs to open in RGB format.
- Fixed a bug that caused ImageJ to not correctly read ImageJ
TIFF stacks modified by LibTIFF.
- Fixed a bug that sometimes caused 90 degree rotated large
composite color images to not be correctly displayed.
- Fixed a bug that caused an "out of memory" error when opening
DICOM files with a UT (Unlimited Text) tag.
- Fixed a bug that caused the "Show All" feature of the ROI Manager
to not work as expected with more than 10,000 slice-associated ROIs.
- The
Virtual Stack From List
macro demonstrates how to generate a list of images and then use that list to open the images as a
virtual stack.
- 1.41b, 6 May 2008
- Michael Schmid's
AVI Reader
plugin is now built in. AVI files can be opened using File>Open,
File>Import>AVI and drag and drop.
- To reduce the size of the Plugins menu, JAR files that implement fewer than four
Plugins submenu commands are installed in the submenu corresponding to
the folder containing the JAR file.
In addition, single plugins distributed as ZIP archives are installed in
the "Miscellaneous" submenu.
- Johannes Hermen and Christian Mol added the ability
to parse float header values to the DICOM reader and also contributed a 2652 tag dictionary
(DICOM_Dictionary.txt)
that the DICOM reader will use if it is copied to the ImageJ folder.
- The DICOM reader uses the value of the "Slice Thickness" tag for
voxel depth if the "Slice Spacing" tag is missing.
- The particle analyzer, when run from a batch mode macro, no longer
opens the ROI Manager window when "Add to Manager" is enabled,
resulting in faster and more reliable operation.
- Process>Enhance Contrast works with composite
color images.
- The minimum plot size that can be set in
Edit>Options>Profile Plot Options was reduced from 300x100 to 100x50.
- Added a "Restore ROIs Centered" option to the ROI Manager's
More»Options command.
- Added the Stack.setActiveChannels() macro function.
- Fixed a bug that could cause an exception when saving composite
color images.
- Fixed a bug that caused composite color images with custom LUTs
to revert to the default LUTs after resaving.
- Fixed a bug that caused Z projection of hyperstacks to fail in batch
mode macros.
- Fixed a bug that caused ImageJ to not correctly read ImageJ TIFF stacks modified by LibTIFF.
- Fixed a bug that caused macros using the Analyze>Surface Plot plot command, with both the
"Draw Wireframe" and "Draw Axis" options enabled, to fail.
- Michael Schmid contributed a new
AVI Reader plugin that
adds support for YUV formats, the ability to specify the starting and ending frame,
an option to convert to 8-bit grayscale and an option to open the movie as a virtual stack.
- Jerome Mutterer has released
Magic Montage,
a macro toolset for easy montage and overlay creation.
- 1.41a, 21 April 2008
- The Duplicate, Scale, Adjust>Size, Z Project,
Reduce Dimensionality and Image Calculator commands now work
correctly with hyperstacks that have custom channel LUTs.
- The Copy to System, Make Binary and Convert to Mask commands now work
with composite color images.
- Added the setAutoThreshold() method to the ImageProcessor class.
- Fixed bugs that caused the setAutoThreshold() macro function, and the
Make Binary and Convert to Mask commands, to sometimes
not produce the same result as the "Auto" button in the "Threshold" window.
- Fixed a bug that caused the getLut() macro function to throw an exception
when attempting to retrieve a LUT from a composite image in batch mode
Version 1.40, 18 April 2008
- 1.40g, 18 April 2008
- The Java version is displayed in the status bar on startup.
- Fixed a bug that caused images saved in TIFF format to have their
contents shifted left if the "Info" property was set to an empty string.
- Fixed a bug, introduced in v1.40c, that caused stacks saved in TIFF format to have their
contents shifted left if any slice had a blank label and all
other slice labels where null.
- 1.40f, 18 April 2008
- Increased the maximum frame rate accepted by Image>Stacks>Animation Options
to 1000.
- When animating stacks, the frame rate is displayed in the ImageJ status bar.
- Drag and Drop exceptions are now displayed in an ImageJ window.
- Fixed a bug that caused some Bruker "fid" files to fail to open.
- Jerome Mutterer contributed two macro tools
(Macro Sliders Demo
and RGB Color Picker)
that demonstrate how to create customizable sliders for entering macro parameters.
- Albert Cardona has written a
tutorial
on how to create image file reader and writer plugins, and how to integrate them with
the rest of ImageJ.
- 1.40e, 15 April 2008
- While creating a straight line selection, hold down the alt key to force the two points that
define the line to have integer coordinate values.
- Results table labels now include the file name extension.
- Set the JPEG Quality in Edit>Options>Input/Output to 100%
to disable color sub-sampling, reducing the likelihood of artifacts.
- The DPI of images saved in JPEG format is set to the scale defined in
Analyze>Set Scale if the unit of length is "inch".
- Added the setOption("Display Labels", boolean) and setOption("Limit to Threshold", boolean)
macro functions.
- Added the Analyzer.setMeasurement(int, boolean) method.
- Worked around a OSX Leopard/Java 1.5 bug that caused dialogs boxes to return default
field values when the return key was pressed.
- Fixed a bug that caused the LSM Reader to not correctly open 16-bit files using
LZW compression with differencing.
- Fixed a bug that caused saving in BMP format to fail with
16-bit and 32-bit images.
- Dimiter Prodanov contributed the
RSS Feed Reader plugin,
which uses RSS to download the pictures of the day from the NASA website.
- Bob Dougherty contributed
macros
that add a calibration bar to a stack or to all the images and stacks in a folder.
- The search box on the ImageJ home page now uses the
ht://Dig search engine, which is better
at seaching the contents of source files. For example, seach for
"waitForUser" and it quickly finds a
description
of this macro function, a macro
that demonstrates how to use it, the method that implements it in
Functions.java,
the WaitForUserDialog
class the method uses, and a
plugin
that uses WaitForUserDialog.
- 1.40d, 9 April 2008
- Converted the FluorescentCells sample image into a three channel
composite color image.
- The Image Calculator now creates a hyperstack when the input
is a hyperstack.
- Fixed a bug that could cause macros (not in batch mode)
running the particle anlyzer on a stack to not run reliably.
- Fixed a bug that caused reading of LZW compressed TIFF stacks to fail.
- Fixed a bug that caused Image>Color>RGB Merge,
when creating a composite image, to sometimes not use
expected the channel colors.
- 1.40c, 2 April 2008
- Image>Stacks>Z Project now works with t-series hyperstacks.
- Image>Hyperstacks>Stack to Hyperstack will
now convert an Image5D to a hyperstack.
- Added the File>Open Samples>Organ of Corti
sample hyperstack, courtesy of Glen MacDonald.
- Made the "Channels" window wider on Windows and Linux.
- Added the Stack.swap(n1,n2) macro function.
- Fixed a bug, introduced in v1.40b, that caused decimal points to be
replaced with commas on European systems.
- Fixed a bug that causedImage>Color>Stack to RGB
to fail to work with 32-bit composite images.
- Fixed a bug that caused an incorrect z value to be displayed
in the status bar as the cursor was moved over a hyperstack.
- Fixed a bug that caused stack slice labels after the first null
label to not be saved.
- Fixed a bug that made it impossible to open the "Channels" window after
it had been closed by WindowManager.closeAllWindows().
- Sebastian Rhode contributed
Calc_TIRF,
a plugin that does TIRF microscopy calculations and plots the results.
- Sebastian Rhode contributed
Calc_CCD_SNR,
a plugin that calculates and compares the SNR of two CCD cameras.
- 1.40b, 28 March 2008
- Added the Image>Hyperstacks>Reduce Dimensionality command,
based on Jerome Mutterer's
Reduce HyperStack
macro.
- Thanks to Alden Dima, added the "Count Mask" option to the
particle analyzer, which generates masks filled with a pixel value
corresponding to the particle count.
- Removed the Image>Hyperstacks>Split Channels command. Instead,
use Image>Color>RGB Split.
- The Image>Color>RGB Split command, when working
with composite images, is faster and uses less memory, and it no longer
displays a dialog box.
- Added the setMetadata("Info", string), getMetadata("Info"),
setMetadata("Label", string) and getMetadata("Label") macro functions.
- Fixed a bug, introduced in v1.39s, that could cause ImageJ to
deadlock (hang) when opening a dialog box, especially on Java 1.5.0.
- Fixed a bug that caused some 48-bit interleaved RGB TIFFs to
not display correctly.
- The
Make Slice Binary
macro converts the current stack slice to binary and advances to the next when you press a key.
- Jerome Mutterer contributed the
Reduce HyperStack macro,
which reduces the dimensionality hyperstacks (requires v1.40a).
- 1.40a, 21 March 2008
- Added the Stack.setDisplayMode(string) and Stack.getDisplayMode(string)
macro functions.
- Added the setSelection(start, end) method to the TextPanel class.
- Fixed numerous hyperstack and composite image bugs.
- Joachim Wesner contributed
ImpProps,
a plugin that allows macros to set and get image properties using the
call
function.
Version 1.39, 13 March 2008
- 1.39u, 13 March 2008
- Image>Stacks>Start Animation now works with hyperstacks.
- Added a "Use Virtual Stack" option to the dialog displayed when a folder
is dragged and dropped on the ImageJ window.
- The Gel Analyzer displays an error message if the user clicks
with the wand tool and the shift key is down.
- The command recorder now records blank string fields as "key=[]".
- Fixed several composite image and hyperstack bugs.
- Fixed a bug that could cause incorrect centroid
calculation on an 8-bit image with a non-rectangular selection larger than ~4 megapixels.
- Worked around a bug that could cause a thread deadlock
in macros attempting to open a non-existant file.
- 1.39t, 3 March 2008
- The Image>Adjust>Brightness/Contrast
histogram is now updated when the B&C window is brought to the front.
- The Analyze>Gels>Select First Lane command
displays a "Are the lanes really horizontal?" dialog when the selection
is more than twice as wide as it is tall.
- An error message is displayed when a calibrated image is opened and
"Global" calibration is enabled.
- PNGs are again opened using ImageIO, which fixes several bugs
(introduced in v1.39i) that caused 16-bit and RGB PNGs to not open or to
not open correctly.
- Added the getInfo("image.description") macro function.
- Added the ImportDialog.getLastFileInfo() method.
- Fixed a bug that caused File>Import>URL to fail to open
GIF, JPEG, PNG and DICOM files with uppercase extensions.
- Fixed several bugs in Edit>Selection>Specify, thanks to
patches contributed by Joachim Wesner.
- Fixed a bug in Image>Scale that could cause
a blank result if the source was RGB, the x scale was less
than 0.25 and the y scale was greater than 0.5.
- 1.39s, 15 February 2008
- Added the Plugins>Utilities>Update ImageJ command,
which is also available for earlier versions of ImageJ as the
ImageJ Updater plugin.
- File>Import>URL now correctly opens 16-bit PNGs.
- Added the DirectoryChooser.setDefaultDirectory() method.
- Fixed a bug, introduced in v1.39i, that sometimes caused an exception
when opening 16-bit PNGs.
- Fixed a bug that caused the B&C and W&L tools to record incorrect
setMinAndMax() calls with signed 16-bit images.
- Fixed a thread synchronization bug that sometimes caused the IJ.d2s()
method to return numbers with the wrong number of decimal places.
- Paolo Ariano added ImageJ 1.39q to the official Debian repository at
packages.debian.org/sid/imagej.
- Jerome Mutterer contributed the
Dynamic Stats and Histo
macro tools, which dynamically calculate and display statistics and histograms as
a selection is moved around.
- Kang Li contributed
Image Stabilizer,
a plugin that stabilizes jittery image stacks using the Lucas-Kanade algorithm.
- The ImageJ Updater
plugin updates ImageJ to the latest version.
- Dwight Bartholomew contributed
Calculate 3D Noise,
a plugin for analyzing 3D noise in videos.
- 1.39r, 8 February 2008
- Added the "or Enter Pattern [regular expression]" text field to the
File>Import>Image Sequence dialog box.
- Plugins>Compile and Run adds .jar files without an underscore in
the name to the compiler's classpath.
- The Image>Stacks>Set Slice command, the ROI Manager and the setSlice() macro function
were updated to work with hyperstacks.
- Image>Show Info displays the image ID.
- Added the waitForUser(string), waitForUser(title, string), matches(string, regex)
and is("composite") macro functions.
- Added an optional second argument (decimal places) to the toString() macro function.
- Fixed a bug that resulted in incorrect measured median values for thresholded images
with "Limit to Threshold" enabled.
- Fixed a bug that caused the information displayed by
Image>Show Info (e.g., DICOM tags) to be incorrect for images opened with File>Open Next.
- Thanks to Stefan Starke, fixed a bug the caused the call() macro function to fail
when ImageJ was running as a signed applet.
- Carles Mitj and Raquel Revuelta contributed
Slanted Edge MTF,
a plugin that calculates the Modulation Transfer Function from an image containing an edge.
- Piotr Wendykier has released
Parallel Iterative Deconvolution 2D,
a multithreaded plugin that does iterative deblurring using MRNSD, CGLS or HyBR.
- Bob Dougherty has released
Label Image,
a plugin that adds x and y scales and labels to an image.
- A Practical Approach to Medical Image Processing [Using ImageJ] by Elizabeth Berry is now
available.
The book includes a CD with example images and the Windows version of ImageJ 1.37.
- 1.39q, 26 January 2008
- When using the Image>Adjust>Brightness/Contrast tool,
hold the shift key down to simultaneously adjust all channels of a composite image
(e.g., File>Open Samples>HeLa Cells).
- Clicking "Apply" in Image>Adjust>Brightness/Contrast
propagates the current composite image display range to the other channels.
- Image>Adjust>Color Balance works with composite images.
- The text tool is recorded.
- ImageJ now opens LZW-compressed RGB planar TIFFs.
- Stefan Woerz added Gaussian fitting to the CurveFitter class.
- Albert Cardona added
HandleExtraFileTypes
support for File>Import>URL.
- Added the is("Virtual Stack") macro function.
- Fixed a bug that caused hyperstacks and images with panels to
not be displayed correctly when the window was maximized.
- Fixed a bug that caused files in folders dropped onto ImageJ
to not be sorted in numeric order.
- Fixed a bug in File>Import>Raw (ImageReader class) that
caused it to not correctly handle EOF errors with data types other than 8-bit.
- Fixed a bug in the PGM_Reader that caused pixel intensities of imported
48-bit images to differ slightly from the expected values.
- Digital Image Processing: An Algorithmic Introduction Using Java
[and ImageJ] by Wilhelm Burger and Mark Burge is
now available.
The ImageJ Short Reference (Appendix C of the book) and the source code for the example plugins
are available
on the book's website.
- Gilles Carpentier contributed the
Time-Lapse Video Macros,
which can be used to capture a video sequence using the
QuickTime Capture plugin.
- 1.39p, 15 January 2008
- Image>Stacks>Z Project works with hyperstacks.
- Image>Hyperstacks>New Hyperstack settings are saved in the preferences file.
- Added a "Sliding Paraboloid" option to Process>Subtract Background. ImageJ
uses the original rolling ball algorithm when this option is not enabled.
- Added a "Create Composite" option to Image>Color>RGB Merge.
- Image>Color>RGB Split works with composite images.
- Process>Smooth, Process>Sharpen and Process>Find Edges
now process edge pixels of 16-bit and 32-bit images thanks to code contributed by Michael Schmid.
- Composite images (e.g., File>Open Samples>HeLa Cells) use less memory.
- 48 bit PPM files open as 16 bits per channel composite images.
- 16-bit images use less memory when running Java 1.6 or later.
- The getInfo("window.contents") macro function
works with the Recorder.
- Added the is("batch mode") macro function.
- Fixed a bug with Image>Rotate>Arbitrarily
that caused it to sometimes clip the image when "Enlarge Image to Fit Result" was enabled.
- Fixed a bug that caused Image>Hyperstacks>New Hyperstack
to fail when ImageJ was running as an applet.
- Fixed a memory leak in ByteProcessor.resetMinAndMax() when not running on
Java 1.6 or later.
- 1.39o, 7 January 2008
- Image>Stacks>Z project works with hyperstacks.
- Custom channel LUTs are saved in the TIFF header.
- Added the "Copy Column Headers" option to Edit>Options>Input/Output.
- The Image>Adjust>Brightness/Contrast "Auto" option no longer deletes the selection.
- Image windows open at the top of the screen on systems with a screen
height of 600 pixels or less (e.g., the Eee PC).
- Increased the maximum radius in Median, Mean, Minimum, Maximum and
Variance filters from 100 to 1000 pixels.
- Increased the width of the "Maximum Memory" field in Edit>Options>Memory & Threads
from 4 to 5 digits to allow easy entry of values greater than 9999 (9.8GB).
- Removed the System.gc() call, which sometimes
caused long pauses when closing images, from ImagePlus.flush().
- Fixed a bug that could cause a bogus "Selection required" message when closing the Results
window or using the Analyze>Clear Results command.
- The
National Resource For Imaging Mass Spectrometry contributed
OpenMIMS, a plugin that
that opens, displays and processes MIMS (Multi Isotope Mass Spectrometry) data.
- 1.39n, 21 December 2007
- Custom channel LUTs are saved in the TIFF header.
- The Image>Adjust>Brightness/Contrast "Auto" option no longer deletes the selection.
- Increased the width of the "Maximum Memory" field in Edit>Options>Memory & Threads
from 4 to 5 digits, which allows easier entry of values greater than 9999 (9.8GB).
- Removed the System.gc() call from ImagePlus.flush().
- Jerome Mutterer contributed the
Workspaces
macro set, which allows the user to save his or her current 'workspace'
(images, results and text windows) and restore it later.
- 1.39m, 17 December 2007
- The Image>Hyperstacks>Stack to Hyperstack command converts
an RGB stack into a 3 channel hyperstack.
- For stacks larger than 1GB, memory usage displayed
in the image subtitle is in gigabytes.
- The title of the Edit>Options>Memory and Threads dialog is "Memory (32-bit)" on
32-bit systems and "Memory (64-bit)" on 64-bit systems.
- Added the IJ.is64Bit() method.
- Big-endian TIFF files with names ending in .flex are passed to the Bio-Formats plugin.
- Fixed a bug, introduced in 1.39l, that caused the Stack to Hyperstack
command to not appear in the Image>Hyperstacks> submenu.
- Fixed a bug that sometimes caused the maximize button in stack windows
to not work as expected.
- Worked around a bug with 64-bit Java on OS X that caused ImageJ
to crash when opening a Web page.
- Fixed a bug with Plugins>Utilities>Memory Monitor that
caused an exception of a batch mode macro was running.
- David Marso contributed
Kaleidoscope,
a macro for computationally intensive artistic endeavors. For an example of what this macro does,
view
this
QuickTime movie.
- Kai Uwe Barthel contributed
Mean Shift Filter, a plugin that
that can be used for edge-preserving smoothing or for color segmentation.
- 1.39l, 7 December 2007
- Added the Image>Translate, Image>Hyperstacks>Split Channels and
File>Import>Stack From List commands.
- Added a "Use Virtual Stack" option to File>Import>Raw.
- The File>Import>TIFF Virtual Stack command now works with hyperstacks.
- B&C settings for each channel in hyperstacks and CompositeImages are saved in the TIFF header.
- Changed the Histogram x-axis label from 0-256 to 0-255 for 8-bit and RGB images.
- Added the setTool(name) and roiManager("Multi Measure") macro functions.
- Added the Stack.isHyperstack(), Stack.getDimensions(), Stack.setDimensions(),
Stack.getPosition(), Stack.setPosition(),
Stack.setChannel(), Stack.setSlice() and Stack.setFrame() macro functions
(example).
- Added the getSelectedRoisAsArray() method to the RoiManager class
and made the getSliceNumber() method public.
- ImageListeners are now notified when the Revert command is used.
- Fixed a bug that caused the ROI Manager More>>Fill, More>>Draw and More>>Label commands
to sometimes not work correctly with selected ROIs.
- Fixed a bug that could cause an invalid error message when opening
gzip compressed FITS and raw images.
- Michael Schmid has released
Pixel Inspector,
a plugin that displays pixel values at the cursor and its surroundings,
and
Wait For User,
a plugin that asks for user intervention while a macro is running.
- Nikon Instruments contributed
ND2 Reader (Windows only), a plugin that
opens Nikon ND2 images and displays them in six dimensions.
- Michael Schmid has created a
plugin version
of the Subtract Background command used in ImageJ 1.39e and earlier, with
added support for "Preview" and multiple processors.
- 1.39k, 21 November 2007
- Added the File>Import>TIFF Virtual Stack command.
- When calculating the background, Process>Subtract Background
now uses a 3x3 maximum filter to remove outliers.
- Added a "Display Mode" popup menu to the
Image>Hyperstacks>New Hyperstack and
Stack to Hyperstack dialogs.
- A better error message is displayed when the user attempts
to open a JPEG compressed TIFF.
- Added the is("Hyperstack") macro function.
- Gilles Carpentier contributed
CustomTabStatFromResults,
a macro set that demonstrates how to create, modify, open and save custom results tables.
- 1.39j, 14 November 2007
- Image>Duplicate preserves non-rectangular area selections.
- Thanks to a patch by Johannes Schindelin, the macro language now accepts numbers in
scientific notation.
- Plugins>Compile and Run uses the -Xlint:unchecked option on Java 1.5 and later.
- Fixed a bug that prevented Image>Adjust>Brightness/Contrast,
Window/Level and Color Balance from opening if
any of these tools was already open.
- Fixed a bug that caused the Roi Manager to sometimes not work as expected
when more than 9999 ROIs were added to it by the particle analyzer.
- Fixed several bugs related to hyperstacks and composite color images.
- Fixed several ImageListener interface problems.
- Fixed a bug that caused File>New>Image to display an invalid
message in the status bar when opening stacks larger than 2GB.
- Fixed a bug that caused Plugins>Utilities>Memory Monitor to not
work correctly when using more than 2GB.
- 1.39i, 8 November 2007
- Updated to support ImageJ64,
a launcher for Mac OS X Leopard that runs ImageJ in 64-bit mode.
ImageJ64 requires a Mac with a 64-bit Intel processor and
at least 2.5 GB of memory.
- Column headers are now included when copying data from the Results window.
- Tables created by Analyze>Gels are now compatible with the nResults()
and getResult() macro functions.
- Reverted to reading PNGs using Toolkit.createImage(), rather than ImageIO, which is much slower and does
not correctly read some 8-bit PNGs.
- Maria Barilla contributed
Color Transformer, a plugin that
converts an RGB image into XYZ, Yxy, YUV, YIQ, Luv, Lab, AC1C2, I1I2I3, Yuv, YQ1Q2, HSI, HSV, HSL,
LCHLuv, LSHLuv or LSHLab color space.
- 1.39h, 5 November 2007
- Updated the setLut() macro function to work with composite color images.
- Fixed a bug, introduced in 1.39g, that caused Plugins>Compile and Run to fail when using Java 1.6.
- 1.39g, 2 November 2007
- Added the Image>Hyperstacks submenu, containing New Hyperstack...,
Stack to Hyperstack..., Hyperstack to Stack and Channels... commands.
- Added a "Transparent Zero" (zero pixels are transparent)
operator to Process>Image Calculator and Edit>Paste Control.
- The "List", "Save" and "Copy" options in profile plot windows use 9
decimal places for y values if "Decimal Places" in the Analyze>Set Measurements
dialog is less than 6.
- Multi-image 48-bit RGB TIFF files open as a single composite color stack.
- Maximizing a zoomed image causes it, if needed, to fill the screen.
- "(G)" is displayed in all image title bars if the "Global" flag is set in
Analyze>Set Scale, Analyze>Calibrate or
Image>Properties.
- Custom tables now use the "File Extension for Tables"
default extension specified in Edit>Options>Input/Output.
- Changed Image>Color>Convert to Composite to Make Composite
- Use the -port0 command line option and ImageJ will not start the
SocketListener used to check for other ImageJ instances.
- Fixed a bug that caused the memory size displayed in the sub-title of
stacks larger than 2GB to be incorrect.
- Fixed a bug that caused File>Import>Text Image to leave the
progress bar in an invalid state if there was an error.
- Philippe Thévenaz has released
MosaicJ,
a plugin for building a larger image (a mosaic) out of a collection
of overlapping partial images.
- Edwin Donnelly contributed
Polar Transformer,
a plugin that converts images to and from polar coordinates.
- Gilles Carpentier contributed
AutoThresholdAndSegment, a macro set
that detects bright and dark areas using autothresholding.
- Michael Schmid contributed an
enhanced version of Tony Collins'
Sigma Filter, a noise reduction filter that preserves edges.
- Tiago Ferreira contributed the
Rename and Save ROI Sets, a macro toolset
that allows fast renaming and saving of multiple ROIs.
- Sebastien Huart contributed the
Slow Fourier Transform macro,
which does forward and inverse 1D discrete Fourier transforms.
- Bruno Vellutini contributed
QuickSetScale,
an easily customizable macro tool for setting the scale of images aquired from
specific microscope and camera setups.
- 1.39f, 12 October 2007
- Michiel Schmid contributed an improved Process>Subtract Background
command with new "Create Background", "Disable Smoothing" and "Preview" options.
- Maximized windows use more of the screen on OS X and Windows.
- When shrinking selections, Edit>Selection>Enlarge
now works with selections touching the image edge.
- File>Revert no longer deletes the selection.
- Plugins>Compile and Run now runs compiled plugins
(.class files) without the Java compiler (usually in tools.jar) being present,
and, thanks to Johannes Schindelin, it uses
com.sun.tools.javac instead of the deprecated sun.tools.javac.
- On Linux, the preferences file (IJ_Prefs.txt) is saved in the .imagej
directory and the menu font size is no longer set to 14 points.
- The ImageCanvas.setDisplayList(Vector) method now accepts a list
of ShapeRois with differing colors and line widths
(example).
- Added the File.openAsRawString(path) macro function.
Refer to the
First10Bytes
and
ZapGremlins
macros for examples.
- Added the COPY_ZERO_TRANSPARENT constant to the Blitter class.
- Added the IJ.isMacro() method, which returns true if a macro is running
or an IJ.run() method is executing.
- Added the getInstanceColor() and setStroke() methods to the Roi class.
- Fixed a bug that could cause the imageCalculator() macro function
to return before the output window had opened.
- Fixed a bug that could cause a boolean variable in a macro run() call
to trigger the inclusion of other boolean variables.
- Fixed a bug that caused an exception if showProgress() was
called in a macro run from the command line using the -batch option.
- Fixed a bug that could cause the image count to increase by one if
the setBatchMode(true) macro function was called twice in succession.
- Nichole Jonas contributed the new search box on the ImageJ home page.
- The ImageJ home page
has a new logo, created using the
this macro.
- Piotr Wendykier has released
Parallel Spectral Deconvolution,
a multithreaded plugin that does 2D and 3D Tikhonov and TSVD image deblurring.
- 1.39e, 21 September 2007
- Toolbar menu commands are now recorded.
- The setLocation(x,y) macro function now moves non-image windows.
- Added the getValue("foreground.color") and getValue("background.color") macro functions.
- Added the setOption("OpenAsHyperVolume", boolean) macro function.
- As a work around for a problem on Linux where dialog boxes are sometimes slow to open,
run ImageJ using the Motif toolkit with
java -Dawt.toolkit=sun.awt.motif.MToolkit -jar ij.jar
- Fixed a bug, introduced in v1.38, that caused the threshold color to not be taken
into account when saving in AVI format.
- Fixed a bug that sometimes caused toolbar menus to not display currectly on Linux.
- Francois Aguet has created
tutorial
on how to use Apple's Xcode to develop ImageJ plugins.
- 1.39d, 23 August 2007
- Added the "Gif Transparent Index" field to Edit>Options>Input-Output,
which allows the user to specify the transparent color used for images saved in GIF format.
- The File>Save As>Gif command now saves stacks as animated Gifs.
- RoiManager calls in batch mode macros are faster, especially on Windows. The
RoiManagerSpeedTest
macro, for example, runs 10 times faster.
- Edit>Selection>Rotate and the makeLine() macro function
no longer convert coordinate values to integers.
- Added seek(long) and getLongFilePointer() methods to the RandomAccessStream class.
- Fixed bugs in Image>Stacks>Reslice
- Fixed a bug that caused incorrect interpolated line profiles along image edges.
- Worked around a JIT compiler bug that could cause Process>Filters>Convolve
to throw exceptions on multi-processor Linux systems.
- Eckard Picht has released
SparkMaster,
a plugin for calcium spark analysis in confocal line-scan images.
- 1.39c, 9 August 2007
- Added a "Set Color" button to the ROI Manager's More>>Options dialog
that sets the color used in "Show All" mode.
- The selection brush tool now adds to the selection when you click in it
and subtracts from it when you click outside it. Or hold down the shift key to
always add to the selection and the alt key to always subtract from it.
- The
MacroExtension interface,
contributed by Shannon Stewman, allows
plugins to add functions to the macro language. As an example, the
Image5D_Extensions plugin
adds functions to the macro language that deal with the Image5D plugin
(querying and setting the channel, frame, display mode), and the
Image5dMacros
use these functions.
- Added the exec() macro function for executing native commands and opening documents in other applications
(examples).
Credit to Curtis Rueden for the idea.
- Fixed a bug, introduced in 1.38q, that caused TIFF stacks saved by the Image5D plugin to be corrupted.
- Fixed a bug that caused an exception when an Image5D stack was duplicated.
- Johannes Schindelin contributed a patch that provides a better error message when
a method called by the call() macro function throws an exception and a patch that fixes
bugs in the Roi Manager "Split" command.
- Fixed a bug that caused 48-bit RGB TIFFs created by ImageJ to not open correctly in other applications.
- Michael Schmid fixed a bug in Process>Binary>Watershed, introduced in v1.38c, that could
cause particles to disappear. A test image is
available.
- Gamaliel Isaac and Larry Dougherty contributed the
ROI Adjust Tool,
a plugin which allows the user to adjust the shape of a selection.
- The
HyperVolume Maker macro
creates a stack with labeled slices useful for
testing 4D and 5D viewers and reconstructors such as
Image5D,
HyperVolume Browser,
LOCI 4D Browser,
TransformJ and
Hypervolume Shuffler.
- XLi Digital Imaging
has released
a plugin (Windows only)
for their megapixel USB 2.0 cameras.
- The
Batch GLCM Measure macro
is a wrapper for the
GLCM_Texture
plugin that allows
batch processing of all the images in a directory.
- 1.39b, 23 July 2007
- With FFT images, Analyze>Measure records the polar coordinates of point
selections.
- Added the More>>Options dialog to the Roi Manager, which contains an
"Associate ROIs with Slices in 'Show All' Mode" checkbox.
- Added a clone() method to the ImagePlus class.
- Fixed a bug, introduced in v1.39a, that caused the drawString() function to fail
on Windows when drawing non-antialiased text.
- The
MeasureCumulativeDistances
macro measures cumulative distances along a segmented line selection or between the points
of a point selection.
- 1.39a, 20 July 2007
- Added the "Avoid Interpolation" option to Image>Stacks>Reslice, based on
a patch contributed by Adrian Daerr.
- The setLocation() macro function now accepts optional width and height
arguments.
- ImageProcessor.drawString() no longer instantiates a java.awt.Frame, which
caused an exception when running in "headless" mode.
- Fixed a bug that caused missing semicolons
in if-else statements to not be detected.
- Fixed a bug, introduced in v1.38, that caused the makeLine() macro
function to fail when the line length was zero.
- Fixed a bug that caused table updates using print("[Table]", "\\Updaten:"+values)
to fail when n was greater than 25.
- The
Process Virtual Stack
macro demonstrates how to process the images in a virtual stack opened using
File>Import>Image Sequence.
- Christophe Klopp has released
MAI Simulator,
a plugin that generates simulated DNA microarray images.
- The
Stack Moving Average
macro does a 3, 5 or 7 slice moving average in the z direction of a stack.
- Readers of Scientific Computing magazine voted to gave ImageJ a
Bronze Award
in the imaging software catagory.
- Johannes Schindelin contributed the
TypeTheSky macro,
which types a message using Lisa Rienermann's
"Type The Sky" alphabet.
Version 1.38, 9 July 2007
- 1.38x, 9 July 2007
- Fixed a bug, introduced in v1.38u, that caused the Analyze>Calibrate
command to fail.
- Fixed a bug that caused a macro error if the
File>Import>Results dialog was canceled.
- Fixed a bug that caused image names to be truncated
when saving if the name contained a period followed by a
digit or more than four characters.
- Fixed a bug that caused stack metadata to be lost after use of
the Image>Adjust>Canvas Size command.
- Philippe Carl contributed the
Azimuthal Average plugin.
- 1.38w, 2 July 2007
- Fixed a bug, introduced in v1.38u, that caused the particle analyzer to
fail to work on stacks.
- Fixed bugs, introduced in v1.38u, that caused the
TransformJ
plugins and the
Dynamic Threshold
plugin to throw exceptions.
- 1.38v, 29 June 2007
- Added preview and grid options to Image>Rotate>Arbitrarily.
- Added the Help>Installation command.
- Added the get(int), set(int,int), getf(int), setf(int,float) and getPixelCount() ImageProcessor methods
for reading and writing pixels using a pixel array index instead of x and y coordinates.
- Fixed bugs in Image>Adjust>Threshold, and the setThreshold()
and setAutoThreshold() macro functions, that caused the threshold to not be
set correctly on blank 16-bit and 32-bit images.
- Fixed bugs that could cause Process>Binary>Convert to Mask to fail
on 16-bit and 32-bit stacks with blank slices,
or with high dynamic range 16 and 32 bit images.
- 1.38u, 15 June 2007
- Michael Schmid added previewing and multiprocessor support (when processing stacks)
to the Gaussian Blur, Median,
Mean, Minimum, Unsharp Mask and Variance filters, and
increased the speed of these filters by up to 100 times.
- Changed the name of the Edit>Options>Memory command to Memory and Threads and
added the "Parallel Threads for Stacks" field, which defaults to the number of available processors.
- Michael Schmid contributed the new Process>Noise>Remove Outliers filter.
- Added a preview option and multi-processor support to Process>Filter>Convolve and
removed the square kernel restriction.
- Results tables are no longer limited to 150 columns.
- The makeLine() macro function now accepts a 5th argument that specifies the line width.
- Fixed a bug that caused entries in the File>Open Recent submenu to not be
stored correctly in the preferences file if they contained non-ascii characters.
- Fixed a bug that could cause an exception when using the
Edit>Selection>Create Selection command.
- Ulf Dittmer fixed a bug on Mac OS X that could cause
the same image to be opened repeatedly when several images
were dragged onto the ImageJ icon.
- Fixed a bug, introduced in v1.38s, that caused a
delay when running a command for the first time.
- Fixed a bug on Windows that caused the Prefs.getHomeDir(), Menus.getPlugInsPath(), Menus.getMacrosPath()
methods and the getDirectory() macro function to sometimes return paths containing double path separators.
- Fixed a bug that caused File>Export>Image Sequence to fail when "Use Slice Labels as File Names" was enabled
and the file names contained multiple periods.
- Fixed a bug that sometimes caused text files containing the word "macro" to not open.
- Fixed a bug that could cause the ROI Manager "Multi Measure" function, and the Multi_Measure plugin, to fail
when the were a large number of ROIs.
- 1.38t, 25 May 2007
- Fixed a bug, introduced in v1.38s, that caused newly created horizontal
or vertical straight line selections to disappear.
- Fixed a bug that caused File>Revert to fail on images that
had been re-saved in TIFF format.
- 1.38s, 24 May 2007
- The Gaussian Blur and Unsharp Mask filters now display a single progress bar instead of
two or six.
- When saving in JPEG format, the current quality setting (0-100) is displayed in the title bar of
the "Save As" dialog.
- Added the ROI Manager More>>Remove Slice Info and More>>Specify commands.
- The ROI Manager Measure command no longer displays a "Process Stack?" dialog.
- ImageJ now opens gzipped FITS (".fits.gz") and raw (".gz") images.
- The File.directory and File.name macro functions now return the path to the last file dragged and dropped
on the ImageJ window.
- Added the getDimensions(width,height,channels,slices,frames) macro function.
- Added the IJ.getScreenSize() method.
- Added a getBounds() method to the Line class.
- Added the OpenDialog.setLastDirectory() and OpenDialog.setLastName() methods.
- Added the setInitialParameters(double[]) method to the CurveFitter class.
- Fixed bugs that could cause ImageJ to hang, especially when using the Sync_Windows plugin or when quitting.
- Fixed a bug that sometimes caused File>New>Image and File>Open to display
duplicate dialog boxes when invoked by typing ctrl-n or ctrl-o.
- Fixed a bug that caused dialog boxes to be incorrectly positioned on multi-monitor Linux systems.
- Fixed a bug that caused the standard deviation calculated by Analyze>Tools>Curve Fitting
to be incorrect.
- Fixed a bug that could cause an exception when opening 16-bit grayscale PNGs.
- Fixed a bug that caused directories with spaces in the path to fail to open when dragged
and dropped on the ImageJ window.
- Fixed a bug that could cause an exception in the particle analyzer when
processing a stack with more than 10,000 particles and "Add to Manager" was checked in the dialog box.
- Fixed a bug, introduced in v1.38q, that caused stacks with blank slice labels
to not be correctly saved in TIFF format.
- Fixed a bug, introduced in v1.38n, that could cause an exception when opening multiple 48-bit tiff images and stacks using JFileChooser.
- The
Concentric Circles
plugin displays concentric rings in a non-destructive overlay.
- The
Save Virtual Stack As 8-bit TIFFs
macro demonstrates how to process and save a virtual (disk resident) stack.
- 1.38r, 11 May 2007
- Michael Schmid contributed a faster and more accurate Gaussian Blur filter
(description)
and an improved Unsharp Mask filter
(source code)
that shows how easy it is to write a plugin that processes all ImageJ data types (8-bit, 16-bit, float and RGB)
by using the new CONVERT_TO_FLOAT flag.
- Added the File>Import>Results command, which opens an ImageJ Results
table, or any tab or comma-delimited text file. This command is based on Jerome Mutterer's
Import_Results_Table macro.
- Thanks to Johannes Schindelin, the Edit>Selection>Create Selection and Enlarge commands
create selections that are displayed, analyzed and processed faster because they consist of
fewer line segments.
- Added a "Smooth" checkbox to the "Fonts" window, which is opened by double clicking
on the text tool.
- Added an "Unscale" button to the Analyze>Set Scale dialog box.
- Added a "No Image Border" option to the Edit>Options>Appearance dialog box.
- In theAnalyze>Analyze Particles dialog box, the "Size" parameter is in pixels if the image's unit of lengh is "inch".
- ImageJ switches to the rectangle tool when the user clicks in the CP (Color Picker) window and the current tool is the eye dropper.
- When creating polygon and line selections, the length and angle of the current segment are based on
uncalibrated coordinates when the alt key is down.
- Added an Image>Show Info description (press "i") to the "HeLa Cells" sample image.
- File>Save As>FITS now saves 8-bit (by converting to 16-bit) and
signed 16-bit (by converting to float) images.
- Added the String.resetBuffer, String.append, String.copy and
String.paste macro functions
(documentation).
- The PointRoi.contains(x,y) method now returns true when (x,y) is one of the
points in the current point selection.
- Added the non-static setInstanceColor() method to the Roi class. This color overrides the
global color set by the static Roi.SetColor() method.
- Added the ImageJ.getArgs() method, which returns the command line arguments passed to ImageJ.
- Fixed a bug that caused re-opened composite selections to not work correctly with the
ROI Manager on Java 1.6.
- Fixed bugs that caused the "Set" option in Image>Adjust>Contrast/Brightness and
Image>Adjust>Threshold to not be recorded correctly with 32-bit (float) images.
- Fixed a bug that sometimes caused the progress bar to not be display when opening
slow to load images.
- Peng Xi contributed the
X Shifter plugin,
which corrects the pixel mismatch of confocal spot scanning images or stacks.
- Gilles Carpentier contributed the
Image, Stack and Timelapse Arrow Labelling toolset
(online documentation),
which allows the user to draw arrows on images and stacks. Requires ImageJ 1.38p or later.
- 1.38q, 27 April 2007
- Added the "Use Virtual Stack" option to the File>Import>Image Sequence dialog box.
- Double click on
(the point tool) to change the selection color.
- Added First Frame and Last Frame fields to the Image>Stacks>Animation Options dialog box,
and also the alt+\ keyboard shortcut for opening this dialog.
- The backslash ("\") keyboard shortcut for starting/stopping animation now works with European keyboards.
- ZIP-compressed TIFF and DICOM images open faster.
- File>Save As>Tiff now stores metadata and lookup tables before the image data, resulting in faster
loads when opening TIFFs from a URL or ZIP archive.
- Press "i" (Image>Show Info) to get a description of the File>Open Samples>T1 Head
and T1 Head Renderings sample images.
- The roiManager("Open", path) macro function displays a file open dialog if the second argument is "".
- Added the File.name and File.directory macro functions, which provide the name and
directory path of the last file opened using open(), saveAs(), File.open() or File.openAsString().
- Added the OpenDialog.getLastName() and OpenDialog.getLastDirectory() methods.
- Added the openZip(path) method to the Opener class and removed the ij.plugin.Zip_Reader class.
- Added the getCount() and getRoisAsArray() methods to the RoiManager class.
- Increased the maximum number of vertices a polygonal selection saved using File>Save As>Selection
can have from 32,767 to ~60,000.
- Fixed a bug that could cause particle analyzer measured areas to be slightly larger than expected
with particles with holes, or a composite selection with holes, and "Include Holes" was not
checked in the dialog box.
- Fixed a bug, introduced in 1.38a, that sometimes prevented selection from being added to the ROI Manager.
- Fixed a bug that caused the ImageJ applet to not work correctly when restarted
after being terminated by closing the browser window.
- Fixed a bug that could cause an exception when opening BMP files with names
not ending in ".bmp".
- Fixed a bug that caused ImageJ, when running as an applet, to not load StartupMacros.txt if the
URL did not end in "index.html".
- Ignacio Arganda-Carreras has released
SplineDeformationGenerator,
a plugin that generates deformations (fisheye, elastic, barrel/pincushion, perspective, etc.)
based on cubic B-splines.
- James Norman has released the
RoiPushTool,
a macro/plugin that allows users to "push" an
area of an established selection in any direction, and the
WindowlevelTool,
a macro/plugin that allows users to adjust
the window/level by dragging the mouse over the image.
- 1.38p, 13 April 2007
- Hold down the alt key when moving through the slices in a stack and the
B&C histogram is automatically updated.
- Process>Binary>Make Binary no longer ignores the "Black Background" flag
in the Process>Binary>Options dialog box.
- Added "Bat Cochlea Renderings" to the File>Open Samples menu. These are 3D renderings of "Bat Cochlea Volume",
one created using Image>Stack>3D Project and the other using the VolumeJ plugin.
- Added "T1 Head Rendering" to the File>Open Samples menu, an animation of the "T1 Head" dataset created using VolumeJ.
- Fixed a bug that caused the histogram in the B&C window to not
be updated after switching to a different stack slice.
- 1.38o, 12 April 2007
- Added mouse wheel support for TextWindows ("Results", "Log", etc.).
- Added "Calculate Threshold for Each Image" and "Black Background" checkboxes to the dialog displayed by
Process>Binary>Make Binary and Convert to Mask
when processing stacks.
- Analyze>Analyze Particles now appends summaries for single images to a table similar to the
table used for stack summaries.
- Added a "None" choice to "Output Types" in the Process>Binary>Find Maxima dialog.
- ZIP compressed TIFF and DICOM images open faster and use less memory when downloaded from a URL.
- Added "T1 Head" to the File>Open Samples menu, a 256x256x129
T1 weighted MRI dataset courtesy of Jeff Orchard
(www.cs.uwaterloo.ca/~jorchard/mri/).
- Thanks to a patch submitted by Shannon Stewman, the roiManager("Save", path) macro function
displays a file save dialog if the second argument is "".
- Fixed a bug that could cause an exception when using Analyze>Tools>Calibration Bar on Mac OS X.
- Fixed a bug, introduced in v1.37, that caused the flood fill tool to not
work correctly on floating-point images.
- Fixed a bug that caused the flood fill tool to sometimes fail when doing 4-connected filling of objects with holes.
- Fixed a bug that could cause some TIFF stacks with "white is zero" photometic interpretation
tags to not open correctly.
- Worked around a bug that sometimes caused the roiManager("select",i) macro function to fail on Mac OS X.
- Fixed a bug in Process>Binary>Find Maxima that caused it to not work as expected
if the image had non-area selection (e.g., points) .
- Fixed a bug that caused File>Save As>BMP to write an incorrect
bfSize value to the file header when saving RGB images.
- Gilles Carpentier contributed the
SelectionColorMenuTool macro,
which adds a toolbar menu for changing the selection color.
- Michael Schmid contributed
Blend Images,
a sample plugin that blends one image with another. This verbosely commented plugin works with
all image types because it uses the ip.toFloat(i,fp), ip.setPixels(i,fp) and
ip.getNChannels() methods added in ImageJ 1.38n.
- Jerome Mutterer contributed the
RGB Profiles Tool
macro, which draws red, green and blue
line profiles on the same plot.
- 1.38n, 30 March 2007
- Added the Image>Color>Convert to Composite command, which converts an RGB image, or stack with 2-7 slices,
into a composite color stack.
Use Edit>Adjust>Brightness/Contrast (shift-c) to adjust the brightness/contrast of each
channel of the composite stack. Use Image>Color>Convert Stack to RGB to convert to RGB.
Use Image>Color>Show LUT to plot the current channel's LUT,
or Image>Color>Edit LUT to edit it.
Use Image>Duplicate to extract a single channel or to convert to an ordinary stack.
48-bit RGB TIFFs open as 16-bit composite color stacks and
File>Save As>Tiff saves 3-slice, 16-bit composite stacks as 48-bit RGB TIFFs.
- Added the File>Open Samples>HeLa (1.3M 48-bit RGB) sample image,
a 16-bits/channel composite color image of HeLa cells with red lysosomes, green mitochondria
and red nucleus, contributed by Tony Collins.
- Added the File>Open Samples>Cardio (768K RGB DICOM) sample image,
a 3D heart reconstruction from a Siemens Sensation CT scanner, contributed by Oliver Lazar.
- Added the "Sort Names Numerically" checkbox to the File>Import>Image Sequence dialog box.
- Downloading of ZIP files using File>Import>URL can be aborted by pressing the esc key.
- Added the Analyze>Gels>Re-plot Lanes and Draw Lane Outlines commands, and enabled
"Invert Peaks" in Gel Analyze Options by default.
- The gel analyzer automatically draws lane outlines in a non-destructive graphics overlay.
- Macro functions defined in ImageJ/macros/Library.txt are appended to
macro files when they are run or installed.
- The setColor macro function accepts the same string constants as Plot.setColor
("black", "blue", "cyan", "darkGray", "gray", "green", "lightGray", "magenta", "orange", "pink", "red", "white" or "yellow").
- File>Import>URL can now open ZIP compressed DICOMs
(e.g., https://rsb.info.nih.gov/ij/images/ct.dcm.zip).
- Added the toFloat(i,fp), setPixels(i,fp) and getNChannels() methods to the ImageProcessor class,
courtesy of Michael Schmid
(example).
- Added a constructor to the DICOM class that accepts an InputStream.
- Johannes Schindelin contributed a patch that allows ImageJ to work with .class plugins
that have the main class in a package as long as the package name and
subdirectory name are the same.
- Fixed a bug that caused File>Import>URL to not correctly open
planar RGB TIFFs and DICOMs
(e.g., https://rsb.info.nih.gov/ij/images/cardio.dcm).
- Fixed a bug that caused Image>Show Info to not display the URL of images loaded using
File>Import>URL.
- Joachim Walter fixed a bug in the FFT_Filter plugin (Process>FFT>Custom Filter) that caused
incorrect calculation of the filter from structure sizes.
- Jerome Mutterer contributed the
SinglePanelGelAnalyzer
macro, which uses the Plot functions and the Roi Manager to
plot multiple gel lanes in a single window.
- The
SampleImagesMenu
macro adds a menu to the tool bar with all the images, LUTs
and macros in a specified directory.
- Uwe Walschus created a
PDF version
of the ImageJ macro language documentation.
- 1.38m, 16 March 2007
- Added a "Multi Measure" function to the ROI Manager, based on a similar function in
Bob Dougherty's
Multi_Measure plugin.
- The selection brush tool is faster and uses fewer CPU resources thanks to code contributed by Albert Cardona.
- Added "Width" and "Height" fields and "Menu Bar" and "Monospaced Font" checkboxes to the
Plugins>New... dialog, which are used by macros when opening text windows and tables.
- The print() macro function outputs to a text window
(example1,
example2)
or to a table
(example3,
example4)
if the first argument
is a window title in brackets.
- Added the getInfo("image.subtitle"), getInfo("slice.label"), getInfo(key),
getList("window.titles")
(example)
and getList("java.properties")
(example)
macro functions.
- Added the ImageWindow.createSubtitle() and ImageProcessor.getSnapshotPixels() methods.
- Added a constructor to the DICOM class that accepts a BufferedInputStream.
- Fixed a bug in Image>Stacks>3D Project that caused "Brightest Point"
projections with "X-Axis" rotation to not work correctly.
- Fixed a bug the caused the selection brush tool to fail with non-area selections.
- Fixed a bug that sometimes caused "setThreshold(min,max)" to be recorded when Convert to Mask
was run from a macro.
- Michael Schmid contributed
FilterTester,
a macro that tests whether ImageJ commands produce the same results as
previously and that they work correctly with stacks.
- Michael Doube released
Volume Slicer,
a macro for setting up batch-mode rendering jobs that run Kai Uwe Barthel's
Volume Viewer
plugin.
- Michael Schmid contributed the
FindStackMaxima
macro, which runs Process>Binary>Find Maxima on all the images in a stack,
creating a second stack for the output images.
- 1.38l, 5 March 2007
- Histogram and Plot windows are ignored when tabbing through open images.
- The maximize button works better with zoomed images.
- On Linux, the ImageJ window, menus and dialog boxes consistently use a light gray background.
- Added the ImageJ(Applet, int) constructor to the ImageJ class, where the second argument can be ImageJ.STANDALONE or ImageJ.EMBEDDED.
- Added the ImageJ.exitWhenQuitting(boolean) method.
- Added the ContrastAdjuster.update() method, which is used by File>Revert to update the "B&C" window when
the user restores the original image.
- Added the ImageProcessor.setSnapshotCopyMode(boolean) method.
ImageProcessor.getPixelsCopy() no longer returns a reference to the snapshot buffer unless this method has been called.
- Fixed a bug, introduced in v1.38k, that caused most filters in the Process>Filters submenu to fail when applied to a stack.
- 1.38k, 1 March 2007
- The ability to cycle through the open images by pressing the tab key is working again.
- Commands that open a Web page, such as Help>ImageJ Website, now work on Linux systems
that have any of the following commands: netscape, firefox, konqueror, mozilla, opera, epiphany or lynx.
- The slider buttons in the Image>Adjust>Brightness/Contrast tool use smaller increments with 16 and 32 bit images.
- The "Auto" option in Image>Adjust>Brightness/Contrast works better with images that have a solid background.
- File>Revert updates the Image>Adjust>Brightness/Contrast tool.
- The "Use JFileChooser to Open/Save" option in Edit>Options>Input/Output is no longer saved in
the preferences file on OS X.
- Changed the name of Edit>Options>Display to Edit>Options>Appearance.
- Added the "Menu Font Size" field to Edit>Options>Appearance. Set the size to "0" to use
the Java default menu font size.
- The directory path, returned by the getDirectory("image") macro function, is now retained
by Image>Stacks>Convert Stack to Images.
- Fixed a bug in Image>Stacks>Reslice that caused a black first slice when starting at the bottom or right.
- Fixed a bug that could cause an exception when using the roiManager() macro functions.
- Fixed a bug that sometimes caused the sliders in the "B & C" and "Threshold" windows to blink on Windows.
- Fixed a bug that caused Edit>Selection>Create Mask to fail if "Black Background" in Process>Binary>Options and
"Use Inverting LUT" in Edit>Options>Appearance were both enabled.
- Fixed a bug that caused Edit>Selection>Restore Selection to sometimes fail if the size of the selection was
the same as the size of the image.
- Fixed a bug that caused Edit>Selection>Restore Selection to fail in batch mode macros.
- Rainer Heintzmann has released
View5D,
an ImageJ plugin, Matlab plugin and Java applet that
interactively displays of up to 5 dimensional volumetric datasets.
- Nenad Amodaj and Nico Stuurman have released
Micro-Manager,
an open source software package for microscope image acquisition that runs as an ImageJ plugin.
Micro-Manager controls a number of cameras, shutters, filter wheels, stages and other devices, enabling
acquisition of time-lapses, z-stacks and multi-channel images.
- The
Save As JPEG
macro creates a command that allows the user to press "j' to set the
compression level and save in JPEG format.
- 1.38j, 12 February 2007
- Replaced the Window/ImageJ[enter] command with Show All. Press
shift-f, the shortcut for Show All, to make all windows associated with ImageJ visible.
- Clicking with the angle or segmented line tool deletes the current selection. Click a second time to
start creating an angle or line selection.
- The Image/Type/16-bit and Image/Type/32-bit conversion commands work with RGB images.
- File/Import/Image Sequence skips files with names ending in ".lut", ".roi" or ".pty".
- Thanks to Robert Dougherty, worked around a bug that sometimes caused the first numeric field in a dialog box
to not be editable on Intel Macs.
- 1.38i, 31 January 2007
- When running on Java 1.6, ImageJ opens RGB images using half as much memory.
- The Roi Manager restores selections located outside the image boundary to the center of the image.
- Fixed a bug that caused filter plugins that set the NO_CHANGES flag, but not NO_UNDO, to use extra memory.
- Fixed a bug in Image/Color/RGB Split that could cause it to leak memory.
- Fixed a bug that coused the roiManager("reset") macro function to not work correctly.
- 1.38h, 25 January 2007
- Process/Filters/Gaussian Blur now works with non-integer radii thanks to code contributed by
Kai Uwe Barthel.
- When running on Java 1.6, ImageJ opens 8-bit images using half as much memory.
- Added the setOption("DisableUndo", true) macro function. On Java 1.6, with this option enabled,
ImageJ can open and process an 8-bit image using one third as much memory.
- Added the Plugins/Utilities/Reset command, which replaces Plugins/Utilities/Unlock Image.
- Added eight links to the ImageJ website to the Help menu.
- The "B&C", "Threshold" and "Results" windows remember their screen locations.
- If no images are open, images less than one half the width of the screen open centered on the screen.
- Added a Duplicate command to the Edit menu of the "Results" window and to the drop down menu
that appears when you right click on the "Results" window.
- Added the shift-x keyboard shortcut for the Image/Crop command.
- Edit/Paste displays text on the system clipboard in a text window if the internal clipboard is
empty and there is not an image on the system clipboard
(example).
- Image windows no longer move to the left edge of the screen after being cropped or resized.
- The Plugins/Utilities/ImageJ Properties command displays more information.
- Added a constructor to the ParticleAnalyser class that accepts minCircularity and maxCircularity arguments.
- Fixed bugs that sometimes caused scroll bars in stack windows, in the "Results" window and in the "Log" window to blink
on machines running Windows.
- Fixed a bug that could cause negative calculated mean values with 8-bit images larger than 8MB.
- Fixed a bug that could cause an exception when the ParticleAnalzer class was called from a plugin.
- FCLab released a
plugin
for their FC1000 and FC2000 USB 2.0 cameras.
- Grant Harris released
CamAcqJ,
a plugin that works with QImaging Retiga cameras on Windows, and
a tutorial
that explains how to use the NetBeans IDE for plugin development.
- 1.38g, 12 January 2007
- Michael Schmid contributed an enhanced Plot class (used by Analyze/Plot Profile)
that adds grid lines to plots. This feature can be turned off using the "Draw Grid Lines" checkbox
in the Edit/Options/Profile Plot Options dialog box.
- Added support for mouse wheel scrolling in image windows. Hold the space bar down to scroll horizontally.
- Added the "Label Points" checkbox to the Edit>Options>Point Tool dialog.
- Image/Stacks/Reslice is faster and now works with single images (e.g., you can turn an image on its side).
- On Windows Vista/Java 1.6, tool icons are always drawn using antialiasing.
- Added the setAdditionalFunctions() method to the Interpreter class, which
allows plugins to add functions and global variables to the macro language.
- A ResultsTable displayed in a window not named "Results" can now be
edited using Edit/Cut and Edit/Clear.
- ImageJ displays an error message in the "Log" window if the system ResultsTable is
displayed in a window not named "Results".
- Added the setOption("QueueMacros", boolean) macro function
(example).
- Fixed a bug that caused values written to the "Results" window by a macro
or plugin to be lost without warning
if the window was closed or the Analyze/Measure command was used.
- Fixed bugs that caused the getImageID and getTitle macro functions to not be
aware of images opened by plugins and menu commands.
- Fixed a bug that caused the d2s() macro function to not work as expected if
the resulting string was longer than 12 characters.
- Fixed a bug that sometimes caused the progress bar to be left in an invalid
state by batch mode macros.
- The
AnimatedGaussianBlur
macro demonstrates how to create an animation that shows how an image changes with different filter parameters.
-
Ibidi
(www.ibidi.de)
released
Chemotaxis and Migration Tool,
a plugin for analyzing chemotactical or migration data obtained by video microscopy.
- Added a "Search ImageJ Website Using Google" option and a "Search Mailing List Archives"
link to the to the Search page at
rsb.info.nih.gov/ij/search.html.
- Michael Doube released
Umis_Array,
a macro designed to correlate mineralisation density information from an SEM image of bone and
cartilage to nanoindentation modulus from a UMIS nanoindentation array.
- 1.38f, 22 December 2006
- Added the File/Save As/FITS command, which is a stripped-down version Jennifer West's
SaveAs FITS plugin.
- Added support for FITS, PGM and PNG to the File/Save As/Image Sequence command.
- Files opened using drag and drop are now added to the File/Open Recent menu.
- Added the setOption("OpenUsingPlugins", boolean) macro function
(example).
- Fixed a bug that caused the isOpen() macro function to fail with images opened in batch mode.
- Johannes Schindelin released an alpha version of
ImageJA
(the 'A' standing for 'Applet'), an applet
version of ImageJ that can be embedded into a web page. The ImageJA
website is at
imageja.sourceforge.net.
- Gilles Carpentier contributed the
LSM Transmission Deblurring toolset
(online documentation),
which requires ImageJ 1.38e or later.
- The
Calculate Mean
plugin demonstrates how to use a mask to tally the values
and number of pixels within a non-rectangular selection.
- 1.38e, 15 December 2006
- As a shortcut for Image/Zoom/View 100%, press "+" with the alt key down.
- Menus in the ImageJ window use a larger font (14 pt.).
- Edit/Selection/Enlarge attempts to convert a composite selection into a
polygon selection when a value of zero is specified.
- Added the setCTable(float[],String) method to the Calibration class.
- Added the setKeyDown("esc") macro function
(example).
- Added the setSelectionLocation(x,y) macro function
(example).
- The saveAs("Measuremens",filepath) macro function now works in batch mode.
- Fixed a bug that could cause a plugin to fail if it called IJ.setTempCurrentImage() and
IJ.run("Enlarge"), or any another command that is implemented using macro code.
- Fixed a bug that caused the Edit/Selection/Enlarge command to fail if an image
with the name "Mask" was open.
- Fixed a bug that could cause macros that called run("Add Slice") to fail when not
running in batch mode.
- Jennifer West and Ian Cameron published the paper
Using the medical image processing package, ImageJ, for astronomy
in the Journal of the Royal Astronomical Society of Canada.
- The
PlotRadialMeanVersusAngle
macro generates a plot of mean radial pixel value versus angle.
- 1.38d, 1 December 2006
- Added a "Light Background" option to Process/Binary/Find Maxima.
- Changed the "White Background" option in Process/Subtract Background to "Light Background". Macros that
use the "white" keyword will continue to work.
- Added the Prefs.setImageURL() method, which can be called from the "AutoRun" macro in the StartupMacros to
specify the directory used to load the sample images.
- Fixed a bug, introduced in 1.38c, that caused the Image5D plugin to generate a NoSuchMethodError exception.
- v1.38c, 28 November 2006
- Added the
Process/Binary/Find Maxima
command, which is based on a plugin contributed by Michael Schmid.
- The menu that pops up when you right click on an image can now be customized
(example).
- Michael Schmid contributed improved versions of the Process/Binary/Distance Map, Ultimate Points and Watershed commands.
- Improved support for the maximize/minimize button in image windows.
- Fixed a bug on Mac OS X and Linux, introduced in 1.38a, that sometimes prevented a window displaying a zoomed image from being enlarged.
- Dimiter Prodanov contributed the
Float Morphology plugin,
which does mathematical morphology operations (erode, dilate, open, close) on 32 bit float images.
- Volker Lohweg has made available the
Inhomogen Isotropic Diffusion 2D plugin,
designed as a discrete version of the Perona-Malik PDE.
- Gilles Carpentier contributed the
LUTs, Macros and Tools Updater macro toolset.
- v1.38b, 16 November 2006
- Added macro language support for toolbar menus
(example).
- Albert Cardona added Linux support for opening files dragged and dropped onto the ImageJ window
and an option to open a dragged and dropped folder as a stack.
- Added "Sort" and "Help" options to the
ROI Manager.
- File/Import/URL opens URLs that end in ".html#name" in the default browser.
- The beginning control point of line selections is drawn using the selection color instead of white.
- Image/Stacks/Convert Stack to Images now uses image names in the form "stack-0001",
"stack-0002", etc., where "stack" is the name of the stack.
- Image/Stacks/Z Project creates image names in the form "XXX_stack", where XXX is
"AVG", "MAX", "MIN", "SUM", "STD" and "MED" and "stack" is the name of the stack.
- Added the File.rename() macro function.
- Increased the maximum number of macros that can be installed from 60 to 75.
- Edit/Selection/Create Selection creates, if possible, a non-composite selection. The
"Issue with ROI closing" workaround on the
Documentation Wiki
is no longer needed.
- Fixed a bug that caused a delay on Mac OS X when dragging and dropping files onto the ImageJ window.
- Fixed several bugs in Edit/Selection/Enlarge.
- Fixed a bug that caused color 16-bit ASCII PPM/PGM images to not open correctly.
- Fixed a bug that sometimes caused the "AutoRun" macro to be added to the Plugins/Macros menu.
- Fixed a bug that caused Image/Stacks/3D Project to fail when called from a batch mode macro.
- The
Convert Stack To Binary macro
converts a stack to binary using thresholds calculated locally for each image.
- Michael Schmid contributed the
Click Coordinates Tool macro.
- David Zachmeyer contributed the
Close All Windows macro,
which closes all open image windows.
- Michael Doube contributed the
RadialScattergraph macro,
which draws a radial scattergraph from a CSV (comma-separated values) list of angles and radii.
- v1.38a, 27 October 2006
- ImageJ 1.38a requires Java 1.4.2 or later due to the addition of mouse wheel and maximize/minimize support.
- Added support for the maximize/minimize button in the title bar of image windows.
- Added scroll wheel support to stack windows and the ROI Manager.
- When the the shift is key down, clicking and dragging with the zoom tool zooms to the selection.
- Edit/Paste improvements: pastes from system clipboard if internal clipboard is empty; if no images are open,
opens one and displays internal clipboard; improved Mac system clipboard support.
- Analyze/Calibrate has better support for 16-bit images.
- The ImageJ window is better positioned at startup when the preferences file is not found.
- Newly opened images are better sized and positioned.
- Alt key presses are recorded when using File/Open Next (Open previous) and Analyze/Plot Profile (Plot vertical profile).
- The Image/Stacks/Z Project command uses shorter names for generated images.
- Added the setOption("changes", boolean) macro function, which sets/resets the 'changes' flag of the current image.
- The drawString() macro function supports multiple lines
(example).
- Underscores in Choice control labels in GenericDialogs are converted to spaces.
- Fixed a bug in the selectImage(n) macro function that caused it to be very slow when n was greater than 1.
- Fixed a bug in the ROI Manager that prevented a selection from being added to more than one
stack slice.
- Fixed a bug that sometimes caused File/Import/Image Sequence to not sort files in numeric order.
- Fixed bugs in File/Import/Image Sequence that sometimes caused the estimated stack size to be incorrect.
- Fixed a bug in the IJ.getDirectory() method that caused it to not return null when the user canceled the dialog.
Version 1.37, 13 October 2006
- Patrick Pirrotte released
IJProxy,
a plugin for setting the HTTP proxy settings used by ImageJ
- v1.37u, 6 October 2006
- Lookup tables in the ImageJ/luts folder are added to the Image/Lookup Tables menu.
- Added the "Add to Manager" option to Analyze/Analyze Particles.
- Added the setOption("Show All", boolean) macro function.
- Added the IJ.suppressPluginNotFoundError() method, used by
HandleExtraFileTypes
to better support the
LOCI Bio-Formats
plugin.
- v1.37t, 2 October 2006
- Added the ">>" tool, a drop down menu for installing alternate macro tool sets or for reverting to the default StartupMacros set.
- In the ROI Manager's "Show All" mode, click on label (selection number) to activate the corresponding selection.
- Macros with names ending in "Action Tool" define tools that execute when the user
clicks on the tool icon
(examples).
- Version information is displayed in the status bar when the mouse is over an unused tool.
- Added the "Label" command to the ROI Manager.
- The "AutoRun" macro now only runs when the macros in StartupMacros.txt are installed at start up.
- A default StartupMacros set is loaded from ij.jar if it is not found in the macros folder.
- "Thumbs.db" files are ignored when opening images.
- Fixed a bug that caused the "Use Pointer Cursor" option in Edit/Options/Misc to be ignored when a macro tool was being used.
- Fixed a bug that sometimes caused incorrect Plugins menu entries when using the -Dplugins.dir command line option.
- Erik Meijering has released
MTrackJ,
a plugin for manual tracking of moving objects and measurement
of traveled distances and instant velocities.
- Guy Levy has released
ParticleTracker,
a plugin for multiple particle detection and tracking from digital videos.
- 24 plugins are now available on the
ImageJ Documentation Wiki.
- The
Tool Demo
plugin demonstates how a plugin can add a tool to the ImageJ toolbar..
- Arne Seitz released a
collection of Plugins
for importing PerkinElmer UltraViewERS data into ImageJ.
- v1.37s, 19 September 2006
- Added Analyze/Tools/ROI Manager "Show All" and "Fill" options. Click "Show All" to
display all selections on the ROI Manager list.
Click "Show All" again to stop displaying them. To move a selection, choose it from the list,
click "Update", then move it.
- Added the Plugins/Utilities/Search command.
- Fixed a bug that could cause the "Record Starts" option to not
work as expected when the particle analyzer was called from a plugin
- v1.37r, 7 September 2006
- The three line selection tools now share a single toolbar slot. Right click on the tool icon to switch to
a different tool.
- Point selections are now displayed as white crosses.
- The center of the point selection tool icon is drawn using the current selection color.
- Uncompressed 1-bit TIFF stacks open correctly.
- Clicking on "Open" or "Save" in the Process/Filters/Convolve dialog no longer causes the file-path
to be recorded.
- Double clicking on the freehand selection tool icon no longer displays the Set Measurements dialog.
- Added the setOption() macro function.
- Added the ImageCanvas.disablePopupMenu() method.
- Added the PointRoi(x,y) constructor to the PointRoi class.
- Fixed a macro bug that caused the precision of numeric variables passed to run() functions to
be limited to four decimal places.
- Fixed a bug that sometimes caused the rename() macro function to not work as expected.
- Patrick Pirrotte and Jerome Mutterer released
LSMToolbox,
a plugin for working with images acquired using Zeiss confocal microscopes.
- Patrick Pirrotte released
IJUpdate,
a plugin that supports upgrading/downgrading
to different versions of ImageJ.
- Johannes Schindelin released the
Scrollable StackWindow
plugin, which adds mouse wheel support to stack windows.
- Gilles Carpentier contributed the
Macros And Tools Updater tool,
which looks for new and updated macros and tools, and installs them.
- Jerome Mutterer contributed the
Version Checker macro,
which uses the File.openUrlAsString() function added in 1.37q to verify that you are
running the latest version of ImageJ.
- v1.37q, 30 August 2006
- Added the Edit>Selection>Add to Manager command. Press 't', the shortcut for this command,
to open the ROI Manager or to add a selection to it.
- Added the "More>>" drop down menu to the ROI Manager with Combine, Split and Add Particles commands.
- Messages displayed in the status bar are not overwritten until the cursor moves at least 12 screen pixels away from its location at the time the message was displayed.
- The unit of time ("sec", "msec", etc.) can be entered into the "Frame Interval" field of the Image/Properties dialog box.
- Added the "Interpolate Line Profiles" checkbox to the Edit/Options/Profile Plot Options dialog box.
- Added the roiManager("Select All"), roiManager("index") and File.openUrlAsString() macro functions.
- Added getTimeUnit() and setTimeUnit() methods to the Calibration class.
- The Calibration class implements the Cloneable interface.
- File/Save As/Image Sequence not longer saves the file name in the TIFF header as an "Info" property.
- Fixed a bug that could cause File/Import/Image Sequence to fail on Windows XP systems with directories containing hidden "Thumbs.db" files.
- Fixed bugs in the ImageWindow class that caused incorrect behavior when it was used to replace an existing window containing a zoomed image or an image with a selection.
- Fixed a bug that could result in a blank, non-functional image when the close() macro function was called in batch mode. (1.37p)
- Jerome Mutterer contributed the
Snake macro set,
which demonstrates advanced macro programming techniques.
- Johannes Schindelin contributed the
3D Angle Tool.
- Philippe Carl contributed the
Radial Profile Extended plugin.
- Dimiter Prodanov contributed the
JCalc plugin,
a simple calculator that demonstrates how to write a PlugInFrame.
- v1.37o, 15 August 2006
- Added a "Background" and "Serif Font" options to Analyze/Tools/Scale Bar, based on
code contributed by Divakar Ramachandran.
- Fixed a bug, introduced in v1.37n, that caused the particle analyzer's "Record Starts" option to fail.
- Johannes Schindelin contributed a
JNLP
file (rsb.info.nih.gov/ij/ImageJ.jnlp)
that runs ImageJ using
Java Web Start
and patches that allow plugins to run. (The plugins
and macros folders are assumed to be in the ImageJ folder in the users home directory.)
Another link for running ImageJ using Web Start is available at
rsb.info.nih.gov/ij/applets.html.
- v1.37n, 11 August 2006
- The "zoom indicator", in the upper left corner of magnified images, shows what portion of the
image is currently displayed.
- The spatial scale of profile plots is now set and the cursor coordinates are displayed in the status bar.
- Histogram and profile plot windows are centered on the screen and no longer have the line of information
above the image.
- Image/Stacks/Plot Z-axis Profile now correctly displays the "Slice" value in the Results window.
- The "plugins.dir" property, used to specify the parent of the plugins and macros directories, is now
recognized when there is no "ImageJ" window.
- Drawing text on images is faster on some Linux systems.
- The default headings are no longer assigned to a ResultsTable when it is created or reset.
- Added the ResultsTable.setDefaultHeadings() method.
- Fixed a bug that could cause incorrect text display on some Linux systems.
- Fixed bugs that could cause an exception when importing a DICOM series, especially
one with more than 10,000 images.
- Fixed a bug that could cause the selectImage(id) macro function to fail if there was another open image
with the same title as the one being selected.
- Fixed a bug that could cause columns added to the Results table using setResult() or rt.setValue()
to not appear in the correct order.
- Balaji contributed the
Time Series Analyzer plugin.
- Jonas Wilson-Leedy and Rolf Ingermann contributed the
Computer Assisted Sperm Analyzer plugin.
- v1.37m, 28 July 2006
- Histogram and plot windows are centered on the screen and no longer have the information line above the image.
- The pixel value unit of 32-bit images can be set in the Analyze/Calibrate dialog box.
- Drawing of text on images on Linux is much faster.
- Fixed a bug that could cause the selectImage() and selectWindow() macro functions to fail if the image being
selected and another image had the same name.
- Fixed a bug that could cause an exception when opening a DICOM series using File/Import/Image Sequence
- Fixed a bug that caused the "Slice" parameter to not be displayed correctly by Image/Stacks/Plot Z-axis Profile.
- Ignacio Arganda-Carreras has made available
bUnwarpJ,
a plugin for bidirectional elastic registration of two images.
- Jerome Mutterer contributed the
Calculator Tool macro.
- v1.37l, 20 July 2006
- Image/Selection/Create Mask and Process/Binary/Convert to Mask create black background masks if
"Black Background" is checked in the Process/Binary/Options dialog box.
- "Reset" in Image/Adjust/Threshold resets the histogram and threshold limits to the current slice. If the
alt key is down, it resets based on the histogram of the entire stack.
- Plugins/Edit opens macro files with ".ijm" extensions.
- Plugins in jar files that use the package statement are installed on startup.
- IJ.getDirectory() calls are recorded.
- Fixed a bug that caused "Save" of a single selection in the ROI Manager to fail if no image was open.
- Fixed a bug, introduced in v1.37i, that caused Image/Color/Convert Stack to RGB to fail
with 8-bit stacks.
- Fixed a bug, introduced in v1.37k, that caused the setKeyDown macro function to not work as expected
with makeRectangle, makeOval, makePolygon and makeSelection.
- Gilles Carpentier contributed the
Macro Plugin Shortcuts Tool,
which makes plugin shortcuts for macros and tools.
- Discovering Image Processing for ImageJ
is now available from the
Center for Image Processing in Education.
- Patrick Pirrotte has written a
guide
that explains how to develop plugins using Eclipse.
- v1.37k, 14 July 2006
- Added the selection brush tool, based on Johannes Schindelin and Tom Larkworthy's
ROI Brush Tool.
It shares a toolbar slot with the oval selection tool, so you have to double click,
or right click, on that tool to activate it.
- Renamed the Process/Binary/Threshold command to Make Binary
and removed the option to apply the threshold to only one slice in a stack.
- Added the Process/Binary/Convert to Mask command, which is similar to Make Binary but always
creates images with white (0) backgrounds and inverting LUTs.
- Renamed Edit/Options/Images to Edit/Options/Display.
- Added the "Double Buffer Selections" option to the Edit/Options/Display dialog,
based on code contributed by Erik Meijering. This
option reduces flicker when working with complex selections but it also increases memory usage
and slows screen updates. It is not needed on Mac OS X, which has built in double buffering.
- Added the "CT" sample image.
- ImageJ opens a DICOM (.dcm) image contained in a ZIP archive.
- Windows and Linux users can select multiple items in the ROI Manager by holding down the shift key.
- File/Import/URL opens files ending in .html or .htm in the default browser.
- Image/Stacks/Make Montage saves the number of rows and columns as an image property that can
be retrieved by macros using the getMetadata function.
- The ImagePlus.setRoi() method no longer erases the previous selection, so macros like
CircularSelectionTool
that continuously draw selections are less likely to flicker.
- The run() macro function does the equivalent of setKeyDown("none") before returning.
- Calling setBatchMode("exit & display") in a macro
displays all open batch mode images and exits batch mode.
- Calling roiManager("Split") in a macro splits a composite selection into its components.
- ImageJ, when running on Mac OS X, is less likely to hang while quitting.
- A better message is displayed when an class not found error occurs while a plugin is being loaded.
- Fixed a bug in the getDirectory() function that could cause it to fail when selecting a
root directory on Windows (e.g., "D:\").
- Fixed a bug that caused Edit/Draw to incorrectly draw composite selections.
- The
Sine/Cosine Table
plugin demonstrates how to add values to the ImageJ Results Table.
- Johannes Schindelin contributed the
Topolines macro,
which creates a selection whose outlines are topographic lines.
- Jerome Mutterer contributed the
HDR Explorer Tool macro
for viewing High Dynamic Range Images. It adjusts the display range
to local min and max, a little like what the eye does when scanning a scene.
- The
SelectionIntersection macro
creates the intersection of two ROI Manager selections.
- Cyndy Erickson and Janet Campbell at the University of New Hampshire Coastal Ocean Observing Center have written a
37 page PDF tutorial
with the title "Hands-on Tutorial on How to Access and Work with Remote Sensing Images Using ImageJ".
- Gilles Carpentier contributed the
URLtools macro set,
which adds online resources to the ImageJ tool bar.
- Jerome Mutterer contributed the
HueRotation macro,
which rotates the hue values of an RGB image by a specified angle.
- v1.37j, 29 June 2006
- Added the Edit/Selection/Create Selection command, based on the Threshold_To_Selection plugin contributed by
Johannes Schindelin. This command creates a composite selection from a thresholded image or a binary mask.
- Send commands like "\\Clear" and "\\Update:text" to the Log window to clear it or update its contents.
Refer to the
LogWindowTricks
macro for an example.
- Error and message dialogs use a larger font.
- Added the get(x,y), set(x,y,value), getf(x,y) and setf(x,y,value) methods
to the ImageProcessor class. The get() and set() methods read/write pixels as integers,
and getf() and setf() read/write pixels as floats. Refer to the
Image Inverter
plugin for an example.
- Added the TextPanel.clear() method.
- Added the "CT" sample image (signed 16-bits with DICOM tags).
- Fixed a bug that caused File/New/Image to sometimes create incorrect 8-bit and RGB "Ramp" images.
- Fixed a bug that caused macros with braceless if-else statements containing calls to built in string functions
that returned null to fail.
- Fixed a bug, introduced in 1.35p, that caused macro calls to Image/Properties to
fail to set the voxel depth.
- Jonathan Jackson contributed the
Concatenate
plugin, which concatenates two or more images or stacks.
- Johannes Schindelin and Tom Larkworthy contributed the
ROI Brush
plugin.
- Frank Rogge has made available
QA-Distri,
a package of 11 plugins for QA in digital radiology.
- Olivier Marchal and Noel Converset contributed the
FRET and Colocalization Analyzer plugin.
- Jerome Mutterer contributed the
Montage Shuffler tool macro
for reording images in a montage created using Image/Stacks/Make Montage. Also includes a bonus puzzle to practice with.
- Gilles Carpentier created an improved
AppleScript application
for updating ImageJ on Mac OS X.
- Mikulas Stencel and Jiri Janacek contributed the
Lipschitz Filter plugin.
- v1.37i, 16 June 2006
- Images with inverting LUTs have "(inverting LUT)" added to the information at the top of the window.
- Zoom level is maintained when converting between RGB and RGB (HSV) Stack.
- The Gaussian Blur and Unsharp Mask filters are faster.
- Edit/Cut and Edit/Copy in TextWindows ("Results", "Log", etc.) no longer require a selection.
- Added the Plugins/Macros/Open Startup Macros command.
- Added "Black Background" checkbox to Analyze/Tools/Fractal Box Count.
- File/Import/URL can now open text files.
- A repeated Edit/Select All in a TextWindow is equivalent to "select none".
- Double click on a line containing a file path in a TextWindow to open the file.
- "Apply"in the B&C window is recorded.
- "Update" and "Delete" in the ROI Manager are recorded.
- Added RoiManager.getName() method, which can be called from a macro using
call("ij.plugin.frame.RoiManager.getName", index).
- The "plugins.dir" property (set from the command line using -Dplugins.dir=<path>) can now be either a path to the plugins directory or the parent
directory.
- ImageJ is less likely to hang when quitting.
- Fixed a bug that caused an exception when using Image/Scale with "Interpolate" checked on a one pixel high or one pixel wide image.
- Fixed a bug that caused an exception when Process/Binary/Erode, Dilate etc. were
used on an RGB image.
- Fixed a bug that caused Image Calculator AND, OR and XOR operations to fail with float images.
- Fixed a bug in the ROI Manager that caused saving of selections in directories with an apostrophe in the name to fail.
- Fixed a bug that caused an exception when using the Unsharp Mask filter on some Linux systems.
- Jerome Mutterer contributed the
Action Bar plugin, which creates
an easy to use and customizable tool bar.
- The
PerimeterAndCircularityTest
macro displays measured and theoretical area, perimeter and
circularity of circles with radii between 0.5 and 100.
- Ben Tupper adding an alphabetical index to the top of the
Built-in Macro Functions list.
- v1.37h, 2 June 2006
- The brush tool and drawing of wide lines are faster.
- Commands in menus containing both plugins and macros are now sorted.
- In "Save changes?" dialogs, press return to save the changes, "n" to not save the changes or esc to cancel.
- Close message dialogs (e.g., "Are you sure you want to quit ImageJ?") by pressing return or cancel by pressing esc.
- Macros installed in the Plugins/Macros folder now appear in the Plugins/Utilities/Control Panel.
- When using a macro tool, the cursor no longer changes from a cross to a pointer when it moves over a selection.
- Added the roiManager("rename", "new name") macro function.
- Added the TextPanel.setLine(int, String) method.
- Fixed a bug that caused Edit/Adjust/Brightness/Contrast, and the autoSetThreshold macro function, to not correctly set the threshold for images with symmetrical bimodal histograms.
- Fixed a bug, introduced in 1.37d, that caused the
RunMacro program
to fail if files were not specified using a full path.
- Fixed a bug in the ROI Manager that caused the name to be lost when saving
and restoring a composite selection.
- Fixed a bug that caused Edit/Selection/Enlarge to fail if the enlargement factor was negative and the selection touched the image edge.
- Fixed a bug that caused ImageJ to crash on startup on Linux systems using IceWM.
- Fabrice Cordelieres and Susanne Bolte contributed
JACoP
(Just Another Co-localization Plugin).
- Johannes Schindelin has developed
plugins
that read/write Amira Mesh files and display Amira Surface files.
- Pictures from the first ImageJ User and Developer Conference are available at
imagejconf.tudor.lu.
- Jerome Mutterer contributed the
WeatherOverFrance macro,
which downloads weather maps and animates them.
- The macros from the
"Extending ImageJ with Macros" workshop at the
ImageJ Conference
are now
available.
Copy them to the plugins folder, restart ImageJ,
and run them using commands in the Plugins/Conference Macros
menu (requires ImageJ 1.37g or later).
- David Stepensky contributed the
FRETcalc
(FRET by acceptor photobleaching) plugin.
- Hidenobu Tachibana has created a
Japanese language version
of the ImageJ website.
- BioArts
has created a
Japanese language version of ImageJ
for Windows and Mac OS X.
- v1.37g, 15 May 2006
- Macros in the plugins folder with an ".ijm" extension (ImageJ Macro), and an underscore in the name,
are installed in the Plugins menu at startup. (added 15 May)
- Added Font menu to TextWindows ("Results", "Log", etc.).
- The Edit/Options/Font window (or double click on text tool) now lists all available fonts.
- On Mac OS X, opening images using drag and drop is faster.
- Added the Macros/Evaluate Line command to the editor.
- In the "Log" window, double click on paths to open Java and macro source files (Use with
Find and
Search_Macros
macros).
- Single lines copied from TextWindows ("Results", "Log", etc.) no longer have \n at the end.
- The maximum size of the macro symbol table increased from 32K to 512K.
- Fixed a bug that could cause calculated centroid coordinates to be incorrect with large images.
- Fixed a bug in the image calculator that caused ANDing of an RGB image and an 8-bit mask
to not work correctly if the mask had an inverting LUT.
- Jerome Mutterer contributed the
Fonts macro,
which demonstrates how to use the new getFontList() macro function.
- v1.37f, 5 May 2006
- Fixed a bug, introduced in 1.37e, that sometimes caused the particle analyzer to fail if "Include Holes" was not checked.
- Added getFontList() macro function
(example).
- Hold the shift key down to open a macro installed in the Plugins menu instead of running it.
- Keyboard shortcuts are no longer ignored when the Plugins/Utilities/Control Panel is in front.
- Control Panel windows are centered on the screen.
- v1.37e, 4 May 2006
- Thanks to Joachim Wesner, added a "Complex Fourier Transform" option to the Process/FFT/FFT Options dialog.
- The call() macro function extended to call methods() that do not return a string
(examples).
- Added an "Export Raw in Intel Byte Order" option to Edit/Options/Input/Output.
- The "Redirect To:" feature of the Measure command works with binary masks (8-bit images with the name "mask").
- ImageJ no longer displays an error if the plugins folder is missing.
- Added the drawRect(), drawOval() and fillOval macro functions.
- Made all the fields in ImageJCanvas protected for easier subclassing.
- Added setInsets() method to GenericDialog class.
- Used setInsets() to improve the layout of the Properties, Set Measurements, Scale and FFT Options dialogs.
- The IJ.runUserPlugIn() method no longer requires that the plugins folder be present.
- Added the recordString() method to the Recorder class.
- Added the getCanvas() method to the ImagePlus class.
- Fixed a bug that caused the setColor() macro function to not work correctly with signed 16-bit images.
- Fixed a bug that sometimes caused the JFileChooser to not be used even when "Use JFileChooser to Open/Save" was checked.
- Fixed a bug that caused incorrect titles to be used in JFileChooser dialogs.
- Fixed a bug that caused ImageJ to fail to start if a 'var' declaration in StartupMacros generated an error.
- Fixed a bug that could cause Analyze Particles to fail on images with a width or height of more than
32,000 pixels if "Include Holes" was not checked.
- Fixed a bug that caused the name to be lost if a selection in the ROI Manager was edited and updated.
- Johannes Schindelin contributed the
EPS Writer
(Encapsulated PostScript) plugin.
- v1.37d, 20 April 2006
- Added "Enlarge Image to Fit Result" option to Image/Rotate/Arbitrarily.
- Added "Case Sensitive" and "Whole Words" options to the text editor's Edit/Find command.
- Added "Rodbard (NIH Image)" to the list of functions in Analyze/Calibrate.
- The flood fill (paint bucket) macro tool is now recorded.
- Global variables can now be defined anywhere in a macro file outside of macro and function blocks.
- The drawString() macro function uses antialiasing.
- Macros with names ending in "Tool Selected" are not installed in the menu bar.
- Added constructors to the ImagePlus and ShortProcessor classes that support 16-bit BufferedImages.
- Fixed a bug that caused File/Save As/Image Sequence to not transfer calibration and DICOM tags to files saved in TIFF format.
- Fixed a bug that sometimes caused incorrect histograms of calibrated 8-bit images and signed 16-bit images.
- Fixed a bug that caused incorrect histograms of images containing line, point or angle selections.
- Fixed a bug that caused histograms of images with more than 16 million pixels with the same value to be drawn incorrectly.
- Fixed a bug that sometimes caused Image/Stacks/Z Project to produce incorrect
"Standard Deviation" output with 16 and 32 bit images.
- Fixed bug that caused text to be drawn incorrectly on contrast enhanced 8-bit images.
- Fixed a bug in File/Import/Image Sequence that caused a bogus "ZVI Reader plugin not found" error message when
opening files from a directory containing a "Thumbs.db" file.
- Fixed a bug that caused opening of images from the command line to fail after use of the "cd" command.
- Fixed a bug, introduced in 1.37b, that caused null characters in Image/Show Info output of DICOM images.
- Seth Gammon contributed a
plugin
for spectral unmixing of bioluminescence signals.
- Yasunari Tosa contributed the
Multi Otsu Threshold
plugin.
- Nikos Katsikanis contributed the
Cairn Image Splitter
plugin.
- Jan Palenicek has developed an
ImageJ launcher
for Psion PDAs running the Epoc OS.
- Jonathon Jackson contributed a
wrapper script
for launching ImageJ from the Unix command line.
- Jerome Mutterer contributed the
Show All LUTs
macro, which displays
a montage
of all the LUTs in the luts folder.
- Gabriel Landini contributed the
LUTFileTool
macro, which loads LUT files from the 'ImageJ/luts' directory. He also contributed
a collection of 68 LUT files
(luts.zip, LUT_Montage.jpg).
- v1.37c, 4 April 2006
- Improved Image/Scale command.
- The ImageJ window is slightly larger.
- Added "Antialiased Tool Icons" option to Edit/Options/Misc.
- Restored selections that extend past the image boundary are no longer centered.
- Image screen updates are faster on OS X/Java 1.4.2 and on Linux.
- Added the call() macro function, contributed by Johannes Schindelin, that allows macros
to call static Java methods.
- Call getDirectory("luts") in a macro or plugin to get the path to the ImageJ luts folder.
- Moved the Run Macro command in the editor from the File menu to the Macros menu.
- Fixed bug that caused excessive memory consumption on Windows
when changing LUTs or thresholding.
- Fixed a bug that sometimes caused thresholding of 16 and 32 bit images to
not work correctly on OS X.
- Fixed a bug that caused Image/Crop to fail with non-rectangular selections
that extended beyond the image boundary.
- Fixed a bug, introduced in v1.37a, that prevented running macros installed in the editor's Macros menu
- Jerome Mutterer contributed the
Image To Tool Icon
macro, which converts a 16x16 image (e.g., a
favicon)
into a macro tool icon string.
- The Wikipedia has an
article
about ImageJ.
- Forrest Mims III has written a
review of ImageJ
in The Citizen Scientist, the journal of the
Society for Amateur Scientists
- Gilles Carpentier has created a
web page
that explains how to send commands to ImageJ from AppleScript.
- v1.37b, 24 March 2006
- Added the File/New/ submenu with four command: "Image..." (replaces File/New),
"Text Window" (opens a text editor), "Internal Clipboard" (displays internal
clipboard) and "System Clipboard" (displays system
clipboard; requires Java 1.4 or later).
- Added the Edit/Copy to System and
File/Save As>PNG commands (requires Java 1.4 or later).
- Added a "Propagate to all open images" checkbox to the "Set" dialog in Image/Adjust/Brightness-Contrast and Image/Adjust/Window-Level.
- Analyze/Tools/Save XY Coordinates works with stacks.
- Image/Adjust/Size and Image/Scale now average source
pixels when reducing RGB image by more than 4:1 (e.g., when creating thumbnails).
- Peak areas displayed by the gel analyzer, when the image is calibrated, now use three decimal places.
- Fixed a bug that caused the
Measure and Label
macro, and similar macros, to delete results
without warning when switching between measuring lines and measuring areas.
- Fixed a bug that sometimes caused selections moved by a macro from one slice to another in
a stack to not have the slice number portion of the name updated.
- Tabs written to the "Log" window are no longer converted to spaces.
- Fixed a bug that sometimes caused incorrect display of selected lines in the "Log" window.
- Aurelien Stalder and Daniel Sage have developed the
DropSnake and LB_ADSA
plugins for high-accuracy measurement of contact angles of sessile drops.
- The
CompositeSelections
macro demonstrates how to create discountinuous selections and selections with holes in them.
- v1.37a, 17 March 2006
- Added Font menu to the text editor.
- Added "Min" and "Max" transfer modes to Edit/Paste Control.
- The makeOval(), makeRectangle() and makePolygon() macro functions add to the current selection
if preceded by setKeyDown("shift"), and subtract if preceded by setKeyDown("alt").
- Fixed a bug in Process/Image Calculator that caused it to fail when processing single images in two unequal length stacks.
- Fixed a bug that could cause ImageJ to hang when saving when "Use JFileChooser to Open/Save" was enabled
in Edit/Options/Input-Output.
- Fixed a bug that caused opening of images with pathnames starting with "\\" to fail.
- Fixed a bug that could cause the run() macro function to fail if the keyword for a checkbox in the options
string was contained in a bracketed literal (e.g., "xx=[aa bb cc] bb").
- Ann Arbor Sensor Systems
has developed a
plugin
for their AXT100 thermal imaging camera.
- Maria Barilla contributed
plugins for converting
RGB images into Luv or Lab float stacks.
Version 1.36, 13 March 2006
- v1.36b, 13 March 2006
- Fixed a bug that caused ImageJ to hang if an infinite number was passed to the Plot.add() macro function.
- Fixed a bug that caused histograms to be plotted incorrectly if "Y Max" was set and the "Log" button was pressed.
- In macros, use "setKeyDown('shift'); run('Histogram');" to display a log scaled histogram.
- Fixed a bug that sometimes caused images opened with the Jimi Reader plugin to be displayed incorrectly.
- v1.36a, 10 March 2006
- Added the File>Save As>PGM command, based on a plugin contributed by Johannes Schindelin.
- File>Revert displays a "Revert to saved?" message if the current image has changes.
- The default title used by Image>Scale is now the title of the current image + "-1", "-2", etc.
- Fixed a bug, introduced in 1.35p, that generated an exception when opening PGM files.
- Fixed a bug on Windows that caused Edit/Options/Memory to fail and the "user.dir" property to change when files were dropped on the ImageJ icon.
- The
Editor Demo
plugin demonstrates how to open an editor window containing text.
- Johannes Schindelin contributed the
PNM/PGM/PPM Writer
plugin.
- The
Display Pixel Values
macro displays pixels values in the "Results" window.
- The
Shift RGB Channel
macro shifts the red, green or blue channel in an RGB image by a specified number of pixels.
- Thomas Kuo and Jiyun Byun contributed the
ITCN (Image-based Tool for Counting Nuclei)
plugin.
- The
PlotProfileWithSD
macro creates profile plots with standard deviation error bars.
Version 1.35, 6 March 2006
- v1.35s, 6 March 2006
- The split() macro function no longer ignores blank lines when using "\n" to split lines.
- Fixed a bug that caused the "Use Inverting Lookup Table" flag in Edit/Options/Image
to be ignored when converting to 8-bits.
- Tony Collins contributed the
Leica TIFF Sequence plugin.
- Yannick Krempp contributed
Correct X Shift plugin.
- v1.35r, 1 March 2006
- ImageJ now opens 64-bit (double) FITS images.
- Added a "64-bit Real" image type to File/Import/Raw.
- The "java.io.tmpdir" is used when opening ZIP files.
- Added the getResultLabel(), File.open(), File.openAsString() and File.close() macro functions.
- The 'flags' variable returned by the getCursorLoc() macro function is updated when the mouse is released.
- Fixed a bug that sometimes caused incorrect unit conversions in the Image/Properties dialog.
- Fixed a bug that caused Process/Math/Min (or Max) to sometimes not work correctly with float images.
- Fixed a bug that caused an exception if the IJ.getDirectory() method was called from the event dispatch thread.
- Fixed a bug that caused the "Info" image property to not be saved with ZIP files.
- Fixed a bug that prevented stacks >2GB from being saved as TIFF files. Note that to work with >2GB stacks
you need a 64-bit CPU (e.g., AMD64), a 64-bit OS (e.g., Fedora x86_64) and a 64-bit JVM (e.g., J2SE for AMD64).
- Kai Uwe Barthel contributed the Pong
macro, which demonstrates how to do interactive graphics using the ImageJ macro language.
- The
Signed 16-bit Image
plugin demonstrates how to create a signed 16-bit image from an array.
- v1.35q, 16 February 2006
- Added Process/Math>Exp command and corresponding ImageProcessor.exp() method.
- Image/Zoom/To Selection command improved, thanks to code contributed by Jon Harman.
- File/Save As in TextWindows ("Log", "Info for xxx", etc.) is now recordable.
- The newImage macro function now defaults to "black" for 16 and 32 bit images.
- Fixed a bug that could cause ImageJ to "hang" when quitting with open modified images.
- Fixed a bug that caused the Image/Adjust/Brightness/Contrast tool to not work correctly with 32-bit images containing negative values.
- Fixed a bug, introduced in 1.35o, that caused the Multi_Measure plugin to fail.
- Duane Schwartzwald contributed
Color Space Converter plugin.
- The
CreateImageFromFunction
macro demonstrates how to use a math function to generate an image.
- Added a
signed version
of the ImageJ applet to the ImageJ website that allows use of the
File/Open and File/Save As/ commands.
- v1.35p, 31 January 2006
- Added the "Origin" field to Image>Properties for setting the origin of the coordinate system used by Measure,
Analyze Particles and the ROI Manager.
- Thanks to Jarek Sacha, ImageJ now opens 16 bit/channel color (i.e., 48 bit RGB) images in PGM format.
- Added the getLocalCalibration() method to the ImagePlus class.
- The 208x222 "Lena" sample image was replaced by a 512x512 RGB version.
- Fixed bugs that could cause incorrect display of 16 bit signed pixel values if "Global" calibration was enabled.
- Fixed a bug that sometimes caused an exception when opening LZW compressed 8-bit tiff files.
- Fixed a bug in the applet version of ImageJ that sometimes caused an exception after a restart.
- Damien Farrell contributed
Radon Transform,
a plugin that does back projection of images.
- George Silva contributed a new Windows launcher (ImageJ.exe) that supports
file-associations, drag and drop, auto-configuration and command line operation.
If the ImageJ\jre directory is missing, it detects the latest installed Java, generates
the configuration file (ImageJ.cfg) and sets the memory limit to 2/3 of installed memory or 640MB, whichever is lower.
It is included with a new ImageJ 1.35p installer available on the
Downloads page,
or separately as a
ZIP archive.
Refer to the
Readme
for more information.
- Remi Cathelin contributed
Auto Gamma,
a plugin that gamma corrects images, and
Linearize GelData,
a plugin that linearizes square-root encoded 16-bit .gel images.
- Andreas Jahnen and Johannes Hermen are organizing the
ImageJ User & Developer Conference, which will take place in May at the
Public Research Centre Henri Tudor
in Luxembourg.
- v1.35n, 20 January 2006
- Fixed a bug, introduced in v1.35m, which could cause ImageJ to crash on dual processor Macs.
- v1.35m, 19 January 2006
- Added the Edit/Options/Input/Ouput menu and moved the JPEG Quality and Open/Save Using JFileChooser options to it.
- The default extension in the "Results" window File/Save As command, and in File/Save As/Measurements,
is now ".xls". This can be changed in the Edit/Options/Input/Ouput dialog.
- The algorithm used by Process/Binary/Ultimate Points and Watershed was improved.
- File/Revert works with PGM files.
- Added a "Use Foreground Color" option to Image/Stacks/Make Montage.
- In the "Results" window, added ctrl-s keyboard shortcut for Save As.
- The "Results" window File/Save As command is recordable.
- Added "M51 Galaxy (116K, RGB)"
(www.noao.edu/outreach/aop/observers/m51.html)
to the File>Open Samples menu.
- Added the getVersion() macro function.
- The roiManager("select", index) function is faster.
- Added the close() method to the ImagePlus class.
- Fixed a bug in the selectImage(id) macro function that caused it to fail when id was greater than zero.
- Fixed a bug that caused the run("RGB Merge...") macro function to not correctly delete the source images in batch mode.
- Fixed bugs in Image/Color/Edit LUT that caused "Open" and "Save" exceptions.
- Fixed a bug on Mac OS X that could cause a thread deadlock (the dreaded spinning beach ball) when switching windows.
- Jerome Mutterer contibuted the
Import Results Table
macro.
- v1.35l, 9 January 2006
- Added the ImageListener interface, which enables plugins to be called when images are opened, closed or updated. The
Image Listener plugin demonstrates how to use this interface.
- Added the IJ.openImage() method.
- Fixed a bug that caused the wand tool and particle analyzer to fail with some 32-bit images.
- Fixed a bug in the particle analyzer that caused it to fail with 32-bit images when "Flood Fill" was checked.
- Fixed a bug, introduced in v1.33, that caused scrolling (by holding down the space bar) while creating a polygon selection to fail.
- Fixed a bug in IJ.selectWindow() that caused a 2 second delay when it was called from the event dispatch thread.
- v1.35k, 23 December 2005
- Added the File/Open Next command, which is based on a plugin contribute by Jon Harmon. To open the next image
in a directory, press shift-o. To open the previous image, press alt-shift-o.
- The straight line tool supports sub-pixel addressing. To try this out, zoom in 3200% and create a straight line selection.
- Changed "Flood File" in Analyze/Analyze Particles to "Include Holes", and changed the default
maximum particle size from 999999 to Infinity.
- The ImagePlus.getShortTitle() method removes file name extensions.
- To support sub-pixel addressing, added the screenXD(), screenYD(), offScreenXD() and offScreenYD() methods to the ImageCanvas class.
- Fixed a bug in File>Save As/Image Sequence that could cause it to fail when saving DICOMs and "Use Labels as File Names" was checked in the dialog.
- Fixed bugs that could cause the "Divide by Zero Value" and "Scale When Converting"
options to sometimes reset on Mac OS 9.
- v1.35j, 8 December 2005
- Added -ijpath, -port, -macro, -batch, -eval and -run command line options. These options are described at
the beginning of
ImageJ.java.
- Dialog boxes are no longer resizable, which removes the ugly "grow box" on Mac OS X.
- Keyboard shortcuts are now more likely to work when the "Threshold" and "B & C" windows are in front.
- Added a BARG image type (used by MCID) to the FileInfo class.
- Little-endian ARGB images are now imported correctly.
- Fixed a bug in Process>Subtract Background that generated errors along the right and bottom edges of the background corrected image.
- Fixed a bug that caused a bogus dialog box on startup with Java 1.3.1 on OS X.
- Fixed a bug on Mac OS X that sometimes caused more than one "save changes?" dialog to be open at a time.
- Fixed a bug in the getProfile() macro function that caused it to return incorrect data if the line selection started or ended on or outside the image boundary.
- Vladimir Pilny and Jiri Janacek contributed the
Anisotropic Diffusion 2D plugin,
a filter that reduces noise while preserving edges.
- Jerome Mutterer contributed the
PDF Writer plugin.
- The
OpenGL Example
plugin by Ulf Dittmer shows how to use JOGL/OpenGL graphics.
- Gilles Carpentier contributed the
Magnifying Glass Tool macro,
which is documented at image.bio.methods.free.fr/magtooldoc.html.
- v1.35i, 18 November 2005
- The Analyze/Tools/Curve Fitting tool now accepts comma-delimited data, ignores invalid invisible characters, and displays R^2.
- The R^2 value displayed by Analyze/Calibrate is now calculated correctly.
- Added "Duplicate" to the drop down menu displayed when right-clicking on an image.
- Image/Duplicate creates unique image names by appending "-1", "-2". etc. to the name of the image being duplicated.
- Thanks to code contributed by Ulrik Stervbo, "Open" in the Roi Manager no longer clears the list and reads only .roi files in ZIP archives.
- Added sanity checks to the TIFF decoder.
- Added the selectionName, setSelectionName and toolID macro functions.
- Fixed bugs in File/Import/Text Image that caused it to sometimes fail with files containing invalid invisible characters and to sometimes not read the last line.
- Audrey Karperien contributed the
Fractal Growth Models plugin.
- Audrey Karperien contributed a
plugin
that draws diffusion limited aggregate (fractal growth) models.
- v1.35h, 10 November 2005
- Added "24-bit Integer" image type to File/Import/Raw.
- Fixed a bug, introduced in 1.35g, that sometimes caused a bogus error message when launching ImageJ on Windows.
- Fixed a bug that could caused an extra error message when attempting to open a LUT.
- Jon and Jeff Hardin contributed the
QuickTime Stack Writer plugin.
- v1.35g, 3 November 2005
- On Windows, dropping an image on the ImageJ icon, when ImageJ is already running,
no longer launches another copy of ImageJ. ImageJ uses sockets to detect if it is already
running, a technique suggested by Curtis Rueden.
- On Mac OS X, images dropped on the ImageJ icon now open when ImageJ is not already running.
- Added the Analyze/Distribution command, based on a plugin by Gabriel Landini, and
removed the particle analyzer "Bins" and "Area Distribution" options.
- Pressing Esc cancels a dialog box.
- The particle analyzer supports redirected sampling of RGB images.
Note that redirected sampling is enabled using the "Redirect To:" option
in Analyze/Set Measurements.
- Added an "Update All When Normalizing" option to Process/Enhance Contrast that appears with images that have a selection.
- Changed the "Interpolate Images Edit>Options>Image to "Interpolate Zoomed Images".
- Process/Binary/Threshold and "Auto" in the thresholding tool set the threshold levels of the binary images they create.
- Newly created elliptical selections are allowed to extend beyond the image boundary.
- The toolbar double click threshold was changed from 500 to 650 milliseconds.
- The macro interpreter displays an "Arrays of arrays not supported" message when a macro tries to assign an array to an array element.
- The X axis range (histMin and histMax) of 16-bit images can be be set in the getHistogram() macro function.
- Added the File.exists(), File.getName(), File.getParent(), File.getAbsolutePath(), File.isDirectory(), File.length(), File.makeDirectory(),
File.dateLastModified(), File.lastModified(), File.delete() and File.separator() macro functions.
- Fixed a bug that could cause an exception when using the setupUndo() macro function.
- Fixed a bug that caused Process/Enhance Contrast to not work correctly with non-rectangular selections.
- Fixed a recently introduced bug that caused attempts to add/subtract a polygon selection to/from an existing selection to fail.
- Worked around a Mac OS X/Java 5.0 bug that caused X, Y coordinates displayed in plot windows to be truncated.
- Fixed bugs in the setThreshold(), setAutoThreshold(), resetThreshold(), setMinAndMax() and getMinAndMax() macro functions that caused them to sometimes fail with 16-bit images, especially signed 16-bit images.
- Jerome Mutterer contibuted the
Tiff Comments Editor
macro set, which lets you edit the TIFF comments field of the active image.
- Kunito Yoshida contributed the
Windowed-Sinc Filter plugin, which does low pass filtering of time series stacks.
- Jon Harmon developed
DStretch, a plugin for digital enhancement of pictographs.
He also created a customized ImageJ applet that includes DStretch and 7 sample pictographs.
- Dimiter Prodanov contributed a
plugin that does granulometric filtering.
- v1.35f, 24 October 2005
- Fixed a bug, introduced in 1.35e, that sometimes caused "-1", "-2", etc. to be appended to the image name
after using a type conversion command.
- On Mac OS X, the getDirectory() macro function uses the native file open dialog instead of JFileChooser.
- Daniel Sage et al. have finished a
revamped version of the
Extended
Depth of Field plugin, which merges a stack of microscopic images taken at different focal lengths into a single focused composite image.
This version is faster, uses less memory, has a better user interface, and does 3D surface plotting.
- José G. Conde and Nathaniel Gonzalez have made available the
Visible Human Preprocessing Toolkit and Multiple Image Processor
plugins.
- v1.35e, 18 October 2005
- Added the Process/FFT/FFT Options... command.
- Newly opened images with duplicate names have "-1", "-2", etc. added to the name.
- Added the "Circularity" field to Analyze/Analyze Particles dialog. Particles outside the specified
circularity range are excluded from the analysis.
- Min and max values entered into the particle analyzer dialog box are now scaled values (e.g., mm^2) when the image is spatially calibrated.
- Added the split() method to the Tools class.
- Fixed a bug in Process/Enhance Contrast that caused it to fail when "Normalize" was checked in the dialog box,
or with RGB images, and there was a selection.
- Fixed a bug that caused histograms of 8-bit and RGB stacks to not use a bin width of 1.
- Fixed a bug that caused imported DICOM sequences to sometimes not be sorted correctly by image number.
- Fixed a bug that could sometimes cause ImageJ to hang on Mac OS X when opening files
if "Open/Save Using JFileChooser" was checked in Edit/Options/Misc.
- Fixed a bug that caused TIFFs to be saved incorrectly when using File/Save with renamed images.
- Fixed a bug that sometimes caused a syntax error when running a macro containing invisible characters.
- Gilles Carpentier contributed the
Change Color Tool macro.
- The
QuickTime Movie Writer plugin
now works with Java 1.4 and later on Mac OS X and is packaged with three other QuickTime plugins
(Capture,
Open and
Play).
- The
Batch RGB Merge
macro converts a set of images consisting of separate color channels into an RGB Stack.
- Jonathan Jackson contributed
plugins
for opening and saving UNC (University of North Carolina) format images.
- Sandro Morganella contributed the
IMT Snake plugin,
used for extracting the intima-media thickness (IMT) of the carotid artery in ultrasound images.
- v1.35d, 22 September 2005
- The "Redirect To" option in Analyze>Set Measurements now works with stacks.
- Fixed a bug that caused the Measure and Fill commands to fail after use of Edit/Selection/Fit Spline.
- Fixed a bug that sometimes caused an incorrect paste of non-rectangular selections.
- Fixed bugs that sometimes caused LZW compressed TIFF files to open incorrectly.
- Fixed a macro interpreter bug that caused an error when 'a.length' was used in a print() statement, where 'a' is an array.
- Kai Uwe Barthel has created a stand-alone version of his
Color Inspector 3D
plugin.
- Jerome Mutterer contibuted the
LSM Batch With Colors
macro, which uses the
LSM Reader
to batch convert
LSM files, keeping the original channel colors.
- v1.35c, 7 September 2005
Added "Rename" and "Deselect" buttons to the
ROI Manager
and removed "Add and Draw" and "Open All", which have been replaced by macros
in the
ROIManagerMacros
macro set.
- Macros file names can can now use either ".ijm" or ".txt" extensions.
- File/Revert works with ZIP compressed TIFF images.
- Fixed a bug with the way the ROI Manager handles duplicate names.
- Daniel Sage has made available the
SpotTracker plugin,
which tracks a single particle over a sequence of noisy images.
- George Silva contributed the Packard
InstantImager Reader plugin.
- The
RGB Histogram
macro generates red, green and blue channel histograms and saves them in a stack.
- The
MeasureRGB
macro separately measures the red, green and blue channels of an RGB image.
- The
ExtractRGBChannels
macro demonstrates how to extract the red, green and blue channels from an RGB image.
- v1.35b, 26 August 2005
- Added Rotate, Enlarge and Make Band commands to the Image/Selection submenu.
These commands are the first ones to have been written in the ImageJ macro language.
- The polygon and polyline tools are now recordable.
- Added the setRGBWeights() and makePolygon() macro functions and extended the
makeLine() function so it can be used to create polyline selections.
- Added the Dialog.addNumber(label, default, decimalPlaces, columns, units) macro function.
- Added a constructor to the FloatProcessor that accepts a float[][] argument.
- Fixed a bug, introduced in v1.34, that caused the "save changes" dialog to not be displayed
when closing image windows.
- Chris Davies contibuted the
AzimuthalProfile macro,
which saves profile plots at different azimuthal angles.
- Jonathon Jackson contributed the
Convert to 16-bit Signed,
a plugin that converts images and stacks to signed 16-bit.
- The
Kuwahara Filter plugin smooths images
while preserving edges.
- Guy Williams contributed the
NIfTI Input/Output plugins.
- Camillo Bosco and Sebastiano Battiato have made available
plugins
for performing power and log transforms, contrast stretching and spatial filtering.
- Vilppu Tuominen has made available the
LargeMontage,
an plugin that creates a montage/mosaic out of a set of image file.
- Audrey Karperien contributed the
Fractal Generator plugin,
which draws fractal contours using adjustable size and iteration settings.
- Jim Hull contributed
three plugins
that open Molecular Imaging and Nanoscope AFM files.
- v1.35a, 9 August 2005
- Display a histogram by pressing alt-h and a dialog box will be presented that allows the
bin count and x and y ranges to be specified.
- Analyze/Measure calculates area fractions of 32-bit images.
- TIFF files that specify 72 pixels/inch in the header now open without spatial calibration.
- Images opened using the JFileChooser are added to the File>Open>Recent list.
- Analyze/Set Measurements settings are now saved and restored by the saveSettings() and
restoreSettings() macro functions.
- Added the getSelectionStart() and getSelectionEnd() methods to the TextPanel class.
- Fixed a bug that caused macro statements of the form v=a[i] to fail if the first element of
the array was a string and the element being assigned was a number.
- Fixed a bug that caused the setBatchMode(false) macro call to not
work correctly if the active image was a histogram.
Version 1.34, 12 July 2005
- John Lydon has made available a
44 page PDF document with the title
"The measurement of the modal mineralogy of rocks from SEM imagery: the use of Multispec and ImageJ freeware".
- Laurent Gelman et al. have made available
PixFRET,
a plugin for FRET (Fluorescence Resonance Energy Transfer) calculations.
- v1.34r, 8 July 2005
- Added the imageCalculator() macro function.
- Added a "Text File" type to Plugins/New.
- Plugins/New now uses "My_Plugin", "Filter_Plugin" and "Plugin_Frame" as the default plugin names.
- Fixed a bug that could cause bogus "There are no images open" errors in batch mode macros.
- Fixed a bug in Plugins/New that caused the generated plugin frame to use a tiny window.
- v1.34q, 1 July 2005
- The Measure and Histogram commands now use scientific notation to display very small and very large values.
- File/Import/Text Image opens text format images that use scientific notation.
- Add a "Global" checkbox to Image/Properties.
- Added the setMetadata() and getMetadata() macro functions.
- Clicking outside a selection with the polygon tool no longer starts the creation of a polygon selection.
- Opening a signed 16-bit image disables global calibration.
- The "zeroClip" calibration flag is saved in the TIFF header.
- The File/New "Fill With:" Clipboard option now works correctly with non-rectangular selections.
- Fixed a bug related to pasting non-rectangular selections into same-sized rectangular selections.
- Fixed several BMP read/write bugs thanks to sample images and code contributed by Yasunari Tosa.
- Fixed a bug that could cause Process>Noise>Add Noise and Add Specified Noise
to generate biased noise.
- Fixed a bug that could cause the wand tool to fail with 32-bit images containing NaN pixels.
- Fixed a bug that could cause 32-bit images containing NaNs to be saved incorrectly.
- Leo Durosemont contributed the Telecran (Etch-a-sketch) macro set,
which demonstrates interactive numeric keypad control of macros.
- The
ButtonBar example macro set
adds six buttons to the ImageJ tool bar.
- Walter O'Dell contributed a
plugin
that performs template matching for detection of objects in an image
- Sonia Choubrac, Jean-Nicolas Dacher, Michael Dolores and Sylvain Payrouse
contributed the
MR Urography plugin.
- Pierre Besson has made available a
3D deconvolution plugin.
- Christian Kreutzfeldt has written a
collection of macros
that allow estimation of molecular weights in electrophoresis gels.
- Fabrice Cordelieres contributed the
3D Objects Counter,
Metamorph nd Stack Builder and
DeltaVision Opener
plugins.
- Gilles Carpentier contributed the
Three Channel Fluorescence Image Exploration Tools
macro set.
Documentation and a
sample image are available.
- Gali Baler contributed the
PointsToStack macro,
which creates a stack of sub-images based on a set of user-adjustable points.
- v1.34p, 10 June 2005
- Added "Fill with Background Color" options to the Image/Scale and Image/Rotate/Arbitrarily dialogs.
- Holding down the alt key forces text files to be opened in a TextWindow instead of an Editor window.
- Holding down alt or shift causes Plugins/Compile and Run to compile using the -g option, which adds debugging
information required by symbolic debuggers.
- The "Exclude on Edges" option in the particle analyzer now works correctly with non-rectangular selections.
- The getDirectory() macro function returns the path the the users home directory or
to the ImageJ directory when called with "home" or "startup".
- The ColorProcessor.putPixel() method no longer sets the alpha bits.
- Fixed a bug that could cause BMP images opened in ImageJ to become locked.
- Fixed a bug with the getDirectory() macro function that could cause ImageJ to hang on Mac OS X 10.4 dual processor systems.
- Joachim Walter contributed a
5D data set
(w=256, h=256, ch=2, z=24, t=7) that can be used to test his
Image5D plugins.
- Gilles Carpentier contributed the
Arrow Maker Tool
macro. Examples are at
image.bio.methods.free.fr/Arrowsdoc.html.
- Gali Baler has written
detailed instructions
on how to debug plugins using the NetBeans IDE.
- Ronald Petie contributed the
Anaglyph plugin,
which uses two photographs, made at different angles, to make a stereo image.
- Joachim Walter contributed the
Image5D plugins,
which display images that have up to 5 dimensions: x, y, channel (color), slice (z) and frame (t).
- Federico Viel and Vincenzo Della Mea have made available a
Microscope Stage Controller
plugin.
- The
ArrowTool tool draws arrows.
- The
Translate
macro does image translation.
- Gilles Carpentier contributed the
MultiCursorTool
macro, which displays multiple synchronized cursors.
- Audrey Karperien and Thomas Roy contibuted the
Hull and Circle
plugin for finding the convex hull and bounding circle of patterns in binary images.
- v1.34n, 17 May 2005
- Non-rectangular selections can now be dragged paste the edges of the image.
- Added the getDateAndTime() macro function.
- The command recorder correctly records threshold levels of signed 16-bit images.
- Fixed a bug that prevented filtering of images using the "3-3-2 RGB" LUT.
- Fixed a bug that caused "Standard Deviation" projections using Image/Stacks/Z Project to fail with some 16-bit stacks.
- Fixed a bug with Process/Binary/Threshold that caused all slice labels of the output stack to be
set to the first slice label of the input stack.
- Fixed a bug that caused drawn lines to be the same width when the line width was set to both w and w+1.
- Fixed a bug that caused drawn lines to be positioned incorrectly when the starting coordinates were negative.
- Fixed a bug that caused batch mode macros doing 90 degree rotations to fail.
- Fixed a bug that caused the lengthOf() macro function to fail when called with a string array element.
- Fixed a bug that caused the exit() macro function to fail when called with a variable as an argument.
- The
GetDateAndTime
macro, contibuted by Bill Heeschen, demonstrates how to display the date and time.
- The ChangeColors
macro replaces foreground colors in an image with the background color.
- Jerome Mutterer contibuted the
3Dflight
macro, which demonstrates scripting of Kai Barthel's
Volume Viewer
plugin.
- The BigCursorTool
macro simulates a full window cross-hair cursor using a polygon selection.
- The Windows version of ImageJ is now available bundled with Java 5.0, Update 3.
- v1.34m, 29 April 2005
- Added the Dialog.* macro functions. The
DialogDemo
macro provides an example.
- File>Import>Image Sequence opens files without leading zeros in the names in the correct order.
- The applet version of ImageJ closes non-image windows when quitting.
- The WindowManager.closeAllWindows() method closes non-image windows.
- Fixed a bug that sometimes caused signed DICOM images opened using File>Import>Image Sequence to not open correctly.
- Fixed a bug that caused some filters to fail on images with a paste operation in progress.
- Fixed a bug that caused Process/Filters/Gaussian Blur to not work correctly if "Normalize Kernel" was not
checked in the Process/Filters/Convolve dialog.
- Fixed a bug that caused Image/Zoom/To Selection to sometimes fail with small selections.
- Fixed a bug that sometimes caused Image/Type/ commands to fail in batch mode macros.
- Fixed a bug in Process/FFT/FD Math that caused an exception when "Do Inverse Transform" was not selected in the dialog.
- Fixed a bug that could cause a syntax error when comparing strings in a macro function.
- Fixed a bug that caused batch mode macros calling runMacro() or eval() to fail.
- The CalculateMean
macro demonstrates how one macro can call another macro and pass it a variable number
of numeric values.
- The DeconvolutionDemo
macro demonstrates how to use a point spread function (PSF) and frequency domain convolution
and deconvolution to blur and de-blur an image.
- On Mac OS X, ImageJ may not run after the 10.3.9 upgrade but a new software update ("Java Update for Mac OS X v10.3.9") is supposed to fix the problem.
- v1.34l, 15 April 2005
- The "Flood Fill" particle analyzer option enables measurement of nested particles and causes interior holes to be ignored.
- Added "Skewness" and "Kurtosis" options to the Analyze/Set Measurements dialog.
- The results table can now contain up to 150 columns.
- Results table values are stored as doubles (15 digit precision) instead of floats (7 digit precision).
- Analyze/Measure will display the bounding rectangle of line selections.
- Faster image display on Java 1.5 (aka 5.0).
- Images with up to five dimensions (width*height*channels*depth*time) can be defined in the Image/Properties dialog but
the rest of ImageJ has not yet been updated to support 4D and 5D images.
- Thanks to Ulf Dittmer, ImageJ now opens PBM (Portable BitMap) images, where before it would only open PGM (Portable GreyMap) and PPM (Portable PixMap).
- The applet version of Image will auto-load images. There is an example at
rsb.info.nih.gov/ij/applet2/.
- "Hello World" is no longer automatically added to macro files created using Plugins>New.
- Fixed a bug that caused incorrect line profile plots of images with non-square pixels.
- Fixed a bug that caused incorrect wide line profile plots of density calibrated images.
- Fixed a bug in Image/Stacks/3D Project that caused it to fail if "Rotation Angle Increment" was negative.
- Fixed a bug that caused File/Save As/AVI to fail when using Java 1.1.
- Fixed a bug that could cause an exception if there was an error while opening an image in a macro.
- Fixed a bug in the getDirectory() macro function that resulted in double back slashes with root directories on Windows.
- v1.34k, 1 April 2005
- Slices labels (e.g., DICOM tags) are saved in the TIFF header.
- File/Import/Image Sequence improvements: DICOM images are sorted by image number,
the folder name is used as the title of the stack, better error messages, and
dialog box error messages are redirected to the "Log" window.
- Image/Image Calculator now names output stacks "Result of <image1>".
- The print dialog box is not displayed when File/Print is called from a macro.
- The screen is not updated when setSlice() is used in batch mode macros.
- The saveAs() macro function displays a file save dialog if the second
argument is omitted.
- Added "count", "select", "deselect" and "reset" options to the
roiManager() macro function. For an example, see the
ROI Manager Stack Demo
macro.
- Added the setVoxelSize() and getLocationAndSize() macro functions.
- Added the IJ.redirectErrorMessages() method.
- Fixed a bug that caused the fill() macro function to fail with non-rectangular selections
extending past the image bounds.
- The
SortDemo
macro demonstrates how to sort an array of numbers or an array of strings.
- Andreas Schleifenbaum contributed the
PlotStack
macro, which draws a graph in a stack.
- Remi Cathelin and Christophe Klopp contributed
plugins
for opening/saving images in the ISAC format used by Fuji BAS scanners.
- Ron DeSpain contributed the
Max Value Segmentation
macro, which demonstrates pixel-by-pixel processing of multiple images.
- The
Rotate Image
macro rotates images based on the orientation of a straight line selection.
- Dimiter Prodanov contributed the
RGB Measure Plus
plugin.
- Martin Schlüter contributed the
XYZ2DEM Importer
plugin, which imports XYZ coordinates from a text file and interpolates a Digital Elevation Model (DEM)
image using Delaunay triangulation.
- Michael Doube contributed the
VolumeFractionOfBone
macro, which measures the volume fraction and mineral density of bone in mineralised tissues.
- v1.34j, 16 March 2005
- The tool bar can now contain one more tool.
- Analyze/Histogram works better with float images containing NaNs and +/-Infinity.
- Thanks to Curtis Rueden, ImageJ opens 16-bit LZW compressed TIFFs.
- File/Import/Image Sequence no longer displays "Opening: xxx" messages in the status bar.
- The Mac OS X menu bar is less likely to disappear.
- Added a flood fill (paint bucket) tool to the
DrawingTools macro set.
- Added the floodFill() macro function.
- Added the restorePreviousTool() macro function, which allows creation of tools that perform an action
when they are clicked or double-clicked. The
AboutTool macro
is an example of a single-click action tool and the
Flood Fill Tool
is an example of a double-click action tool.
- Image/Duplicate no longer deletes the source image's selection.
- A "plugins.config" file is automatically generated for JAR files that do not contain one.
- Fixed a bug that caused an exception when using the Plot.show() macro function in batch mode.
- Fixed a bug in Process/Binary/Threshold that sometimes caused a non-functional scroll bar to
appear below the image.
- Fixed a bug in the doWand() macro function that sometimes caused the previous selection to be restored.
- Fixed bugs that prevented .zip files and files using HandleExtraFileTypes from opening from the command line.
- Fixed a bug that caused the median to be calculated incorrectly for float images containing NaNs.
- Per Christian Henden has written
Fractal Count, Map Fractal Count, Susan Filtering, Extrude Map and Gaussian Noise plugins.
- David Bright has created
tutorial exercises
for ImageJ and NIH Image.
- The
OpenImagesFromList
macro demonstrates how to open images using a text file list.
- Paul Werten contributed the
BackgroundCorrectedDensity
macro, which calculates background-corrected integrated density.
- The
QuickTime Capture plugin
now capture multiple frames to a stack and works with Java 1.4.2 on Mac OS X.
- Gilles Carpentier contributed the
DisplayTiffInfo
macro, which displays the Image Description tag of TIFFs created by programs such MetaMorph.
- Philippe Thévenaz has made available
StackReg,
a plugin for the recursive alignment of a stack of images.
- Curtis Rueden contributed the
Zeiss ZVI Reader
plugin.
- Kai Uwe Barthel contributed the
Volume Viewer
plugin, which interactively displays a stack as volume within a 3D space.
- Olivier Marchal and Jerome Mutterer contibuted the
'A trous' Wavelet Filter noise reducing plugin.
- v1.34i, 15 February 2005
- JPEG, GIF and PNG images are no longer cached, which reduces the amount of memory required to open and process these images.
- Added a "Median" option to Analyze/Set Measurements.
- Added an "Auto-Next Slice" option to Edit/Options/Point Tool.
- Image/Show Info adds ">" to the description of DICOM tags that are part of a sequence.
- The default directory used by Plugins/Edit is the ImageJ folder instead of the plugins folder.
- Added the
getStatistics(),
getRawStatistics(),
calibrate(),
replace(),
asin() and
acos()
macro functions.
- The area fraction displayed by the "Summarize" option in Analyze/Analyze Particles no longer ignores selections.
- Worked around a Java 5.0/Linux bug that caused exceptions when opening windows.
- Fixed a bug that could cause macro paste operations to fail if the transfer mode was not "Copy".
- Fixed a bug that caused an exception when opening some Metamorph TIFFs.
- Fixed a bug that caused the getImageID() and getTitle() macro functions to fail after an open() call.
- Jerome Mutterer contibuted
a macro
that changes an image's display gamma by remapping the LUT, which
preserves the pixel values, unlike the built-in Process/Math/Gamma
command.
- v1.34g, 1 February 2005
- The "Auto" option in Image/Adjust/Threshold is recordable.
- File/New now sets the initial display range of 16-bit images to 0-65535 and of 32-bit images to 0-1.
- ImageJ opens 48-bit RGB TIFF stacks.
- The angle in the Image/Rotate/Arbitrarily dialog is displayed using two decimal places.
- The TIFF ImageDescription field is now available as the description field returned by ImagePlus.getOriginalFileInfo().
- Added getSelectionBounds(), getSliceNumber(), fillRect(), screenWidth(), screenHeight(), eval(), runMacro() and toString() macro functions.
- Second argument of getResult() macro function is optional and it now returns NaN if the specified column is not found.
- Added an optional third "mode" argument to the setThreshold() macro function.
- Plugins/Macros/Install displays an error message if the file contains more than 60 macros.
- In the macro language, user functions now override built in functions.
- Fixed a bug in the DICOM reader that caused files with a thumbnail in an indefinite length sequence (e.g., GE Senographe 2000 D) to not open correctly.
- Fixed a bug that sometimes caused macro keyboard shortcuts to fail.
- Fixed a bug that caused a macro to fail if a boolean expression contained line breaks.
- Fixed a bug that could cause ImageJ to crash if a macro with a name duplicating an ImageJ menu command was copied to the plugins folder.
- Fixed stack related problems in the setFont() and setColor() macro functions.
- Fixed a bug that caused Image/Adjust/Brightness/Contrast to sometimes fail if used after a paste operation.
- Fixed a bug that caused user a function call at the beginning of a macro file to fail.
- Fixed a bug that caused Image/Adjust/Brightness/Contrast "Apply" operations on stacks with non-rectangular selections to fail.
- Fixed a bug that could cause ImageJ to hang when quitting on Mac OS X.
- The MeasureAreaFraction
macro measures area percentages in thresholded images or 8-bit binary images.
- The RecordProfile
macro saves profile plot data in the "Results" table.
- The Artillery
macro demonstrates macro programming techniques, and also provides a little relaxation.
- Olivier Marchal and Jerome Mutterer contibuted the
Haar Wavelet
noise reducing filter.
- The OpenSeriesUsingFilter
macro opens an image series as a stack using a customizable file name filter.
- Bo de Lange contributed the
MeasurePieSegmentsTool
macro, which measures and labels predefined pie shaped selections.
- Sergio Caballero has made available the
Colocalize RGB and
Area Calculator plugins.
- Greg Jefferis has made available the
Biorad Writer plugin.
- v1.34f, 13 January 2005
- Added the "Y Max" option to the dialog box displayed when Analyze/Histogram is used on a 32-bit image.
- Batch mode macros that switch between on-screen images run much faster.
- Fixed several batch mode macro bugs.
- The CustomHistogram
macro displays a histogram of the active image or stack using a specified number of bins and fixed X and Y axis.
- v1.34e, 10 January 2005
- Image/Show Info displays additional tags from the headers of DICOM images.
- File/Save As/Raw Data now works correctly with signed 16-bit images and stacks.
- Added the keyDown() macro function. (c)
- Fixed a bug in the setLocation() macro function that could cause it to fail in batch mode macros.
- Fixed a bug in the newImage() macro function that caused it to return before
the newly created image was activated. (d)
- Fixed bugs in the SelectImage() and selectWindow() macro functions that could cause them to fail
in batch mode macros (d).
- The ConvertDicomDictionary
macro converts the DICOM dictionary to the format used by ImageJ.
- The CircularQuadrantMeasure
tool creates an oval (or circular) selection centered around where you click and measures and labels its four quadrants.
- The MakeMontage
macro demonstrates several macro coding techniques.
- v1.34b, 5 January 2005
- Angles displayed by the straight line, polygon and polyline tools are in the range -180 to 180 degrees instead of 0 to 360 degrees.
- The print() macro function accepsts multiple arguments.
- Added the toLowerCase() and toUpperCase() macro functions.
- Fixed a recording bug in Image/Color/Edit LUT.
- Fixed a bug that caused an error when an "AutoRun" macro used a global variable.
- Fixed a bug that caused run("Close") to sometimes fail in batch mode macros.
- Fixed bugs that caused saving in JPEG and BMP formats to fail in batch mode macros.
- Fixed a bug in the macro interpreter that caused an error with assignments in the form
x = f()*y, where f() is a user-defined function.
- Fixed a minor bug in the MedianCut class (Image/Type/8-bit Color).
- Fixed a bug, introduced in 1.33s, that caused the DICOM reader to attempt to open thumbnail images stored in private sequence tags.
- Gary Chinga developed
Image CorrelationJ,
a plugin that calculating the correlation of two images or stacks.
- The BatchConvert
macros convert a folder of images to a different format.
- v1.34a, 21 December 2004
- Thanks to code contributed by Curtis Rueden, ImageJ now opens LZW compressed
8-bit and RGB TIFFs.
- The "Save changes to..." dialog is no longer displayed when a text window is closed by a macro.
- Fixed a bug, introduced in 1.33s, that caused the DICOM reader to open a thumbnail of the image.
Version 1.33u, 15 December 2004
- v1.33u, 15 December 2004
- Image/Stacks/Plot Z-axis Profile uses the "Minimum Y" and "Maximum Y"
values set in Edit/Options/Profile Plot Options, and it no longer requires a selection.
- Added the parseInt() and parseFloat() macro functions.
- Fixed a bug that caused 16-bit signed images imported using File/Import/Raw
to open incorrectly if "Open All Files in Folder" was checked.
- v1.33t, 13 December 2004
- In the Image/Adjust/Size dialog, when "Constrain" is checked, the width
is calculated when the height is changed, and vis versa.
- In the Image/Scale dialog, when the x scale is changed, the y scale is set to the same value.
- Process/FFT/Custom Filter works better with non-float images.
- Added the setAutoThreshold() and rename() macro functions.
- Fixed bugs in Image/Stacks/Convert Images to Stack and ImagePlus.getStack() that caused them to not carry over
the DICOM and FITS header information.
- Added an example
that shows how to analyze a dot blot.
- v1.33s, 7 December 2004
- All DICOM tags are now displayed by Image/Show Info, not just the ones in ImageJ's DICOM dictionary.
- Added the newImage(), save(), saveAs() and getZoom() macro functions, and updated the recorder to generate calls
to newImage() and saveAs().
- The saveSettings() macro function saves more Edit/Options settings.
- Fixed a bug that caused shortcuts created with Plugins/Shortcuts/Install Plugin to fail if the argument
contained one or more back slashes.
- The Cooke Corporation released a
Windows 2000/XP plugin for their
pco.1200hs, pco.1600, pco.2000 and pco.4000 14-bit CCD cameras.
- Gilles Carpentier contributed the
GaussianConvolution
macro, which does image smoothing using a custom Gaussian matrix.
- The StackProfilePlot
macro generates profile plots of all the images in a stack and stores then in another stack.
- Jerome Mutterer contibuted
a macro
that extracts the original name and acquisition mode of JPEG images taken with a Nikon
DXM 1200 camera and ACT-1 software.
- Gabriel Landini contributed the
ResizeImagesAndStack
macro which creates a stack from images that differ in size.
- v1.33r, 26 November 2004
- Analyze/Plot Profile works with straight lines wider than one pixel.
- Double-clicking on any line tool opens a slider widget for setting the line width.
- Added "Use Inverting LUT" option to Edit/Options/Image, which causes, with 8-bit images, zero to be
displayed as white and 255 as black.
- Added "Integrated Density" option to Analyze/Set Measurements. Integrated density
is the product of the area and mean.
- Hold down alt when using Image/Color/RGB Split to keep original image.
- Process/Binary/Erode and Dilate are faster and use less memory.
- Added a "Count" field to Process/Binary/Options.
- Added the 0018,0073, 0018,0074 and 0018,0075 tags to the DICOM dictionary.
- File/Run Macro in the text editor runs the first macro in a macro set.
- Added the setSlice(), getImageInfo() and isNaN() macro functions and the NaN predefined constant.
- The open() macro function now aborts the macro if there is an error or if the file is not found.
- Macros that open windows run more reliably, especially on Mac OS 9.
- Fixed a bug that caused an exception if an invalid value was entered in the ColorChooser used by Image/Color/Edit LUT and Color Picker.
- Fixed an edge handling bug in Process/Binary/Erode and Dilate.
- Fixed an array element argument passing bug in the macro language.
- Kai Uwe Barthel contributed an
interactive 3D surface plot
plugin.
- Michael Schmid contributed the
MaskToSelectionMacros
macro set.
- The OpenMacIPLab
macro opens 16-bit images created by the Mac version of IPLab.
- The ListSelectionCoordinates
macro displays the coordinates of the points that define the current selection, the length of the segments
connecting the points and the average segment length.
- Gabriel Landini contributed the
RandomSampleAndMeasure
macro which creates random selections, then measures and labels them.
- Philippe Thévenaz et al. have made available the
UnwarpJ
plugin that performs spline-based elastic registration of two images.
- Gabriel Landini contributed the
EDM_16bits
macro which extends Process/Binary/Distance Map to support objects
with a radius greater than 255.
- The RadialIntegratedIntensity
macro plots integrated radial intensity from 0-360 degrees.
- The ListDicomTags
macro displays the values of selected DICOM tags.
- Joel Sheffield contributed the
ReplaceRedWithMagenta
macro that replaces the red channel in an RGB by magenta to allow easier viewing by color blind viewers.
- v1.33p, 10 November 2004
- A node can be added to a polygon or polyline selection by shift-clicking on an existing node. A node can be deleted by alt-clicking on it.
- A point in a point selection can be deleted by alt-clicking on it. (Use shift-click to add points.)
- The "+", "-", ">" and " Compiler errors are display using a monospaced font so the "^" error pointer is correctly positioned.
- The IJ.runMacro() method is up to 30 times faster.
- On Mac OS X, text windows use a larger font.
- Worked around a Mac OS X bug that caused the end of newly opened text files to be displayed instead of the beginning.
- Worked around a Mac OS X bug that caused lines in a text windows to be displayed incorrectly after a 'return' was entered.
- v1.33o, 4 November 2004
- Added the Image/Zoom submenu, with commands for zooming in,
zooming out, reverting to original magnification and for zooming to a selection.
- Added the File/Open Recent submenu.
- Added an option to Analyze/Histogram to generate stack histograms.
- Added the "Use Stack Histogram" option to Process/Enhance Contrast and renamed
the "Process Entire Stack" option to "Normalize All n Slices".
- File/Save re-saves TIFF files without a file save dialog.
- Added the "Require Control Key" option to Edit/Options/Misc.
- Plugins/Macros/Install is now recordable.
- "[" and "]" can be used instead of single quotes to delimit parameters that may contain
spaces in run() calls (e.g., run("Tiff...", "save=["+path+"]")).
- Added the atan2() macro function.
- Fixed a bug that caused an exception when opening 48-bit TIFF stacks.
- Fixed a bug in File/Save As/AVI that caused it to sometimes not correctly set the file
length when replacing an existing file.
- Fixed a bug in the macro interpreter that caused statements in the form print(n+s) to fail,
where n is a numeric variable and s is a string variable.
- Fixed a bug that sometimes caused bogus "No windows Open" errors when running a macro.
- Fixed a bug that could cause the roiManager() macro function to sometimes fail if the Roi Manager
was opened and then closed.
- Joachim Walter contributed the
Spectral Unmixing plugins,
which correct for spectral bleedthrough between color channels of fluorescence images.
- Gilles Carpentier contributed the
FFTRemoveStreaks
macro for removing interference streaks from confocal images.
Before and
after
images are provided.
- Jarek Sacha has made available a
plugin
for texture synthesis using image quilting.
- Dimiter Prodanov contributed the
Color Profiler
plugin.
- v1.33n, 22 October 2004
- Added the setBatchMode() macro function. Five example macros are available:
BatchModeTest,
BatchModeCalculator,
BatchMeasure,
BatchSetScale and
BatchRGBMeasure.
- The getFileList() macro function removes files whose names start with ".".
- The selectImage() macro function accepts a string argument.
- Added the close() macro function.
- Added the addResult("Label", row, string) macro function. The
BatchRGBMeasure
macro demonstrates how to use this new function.
- Edit/Selection/Fit Ellipse and Edit/Selection/Convex Hull work with multi-point selections.
- The "Summarize" option in Analyze/Analyze Particles summarizes stacks.
- The "Area" parameter is automatically enabled when "Summarize" or "Size Distribution" is selected in the
Analyze/Analyze Particles dialog.
- Press 'Esc' to abort commands in the Process/Filters submenu.
- Added the IJ.getImageCount() method.
- Fixed bugs that caused Process/Filters commands, Copy, Paste and the Image Calculator to abort macros run from the command line.
- Fixed a bug in Process/Filters/Unsharp Mask when used with RGB images with Rectangular selections.
- Fixed a bug the caused the "Summarize" option in Analyze/Analyze Particles to note work correctly
when analyzing a single image in a stack.
- Fixed a bug in the addResult() macro function that sometimes caused leftover row labels.
- Fixed a bug in Analyze/Tools/Scale Bar that caused it to fail when run from a macro.
- v1.33m, 8 October 2004
- Process/Image Calculator result images inherit the spatial calibration of the first source image.
- The Image Calculator generates a 32-bit result if either input image is signed 16-bit.
- Analyze/Label uses larger font sizes with images displayed using less than 100% magnification.
- Printing works better, especially for large images.
- Added "Rotate 90 degrees" option to File/Page Setup
- File/Import/Image Sequence, File/New, Image/Stacks/3D Project and Image/Stacks/Reslice can be abort by pressing 'Esc'.
- On Mac OS X, the status bar uses a smaller font.
- Image/Stacks/Reslice shows required and available memory in the dialog, preallocates the output stack, and, with line selections, shows the area to sliced.
- The DICOM reader now attempts to open all files with a ".dcm" extension.
- File/New opens stacks faster when "Fill With:" is set to "Black" and it displays the elapsed time in the status bar.
- Fixed a bug in Image/Stacks/Reslice that caused it to sometimes use the wrong display range for the output stack.
- Fixed a bug that caused Analyze/Tools/Calibration Bar to not work correctly with nonlinear calibration functions.
- Fixed a bug that caused the Mac OS X menu bar to disappear when the "B&C" window was active.
- Worked around a Mac OS X bug that caused invalid text editor "Save Changes" dialogs.
- Jérôme Mutterer contributed the
Subtstack Select
plugin.
- v1.33l, 24 September 2004
- Process/Subtract Background works with 16-bit images.
- Rows in the "Results" table are renumbered after a Cut or Clear.
- Analyze/Summarize works correctly after rows have been
Cut or Cleared from the "Results" table.
- Analyze/Summarize works correctly with line measurements.
- Fixed a bug that could cause macros run from the
command line
to abort.
- The
ApplyDicomRescaleSlope
macro multiplies images in a stack by the DICOM Rescale Slope value.
- The
JTwain
plugin uses the Asprise
JTwain
library to acquire images from TWAIN sources.
- Fabrice Cordelieres contributed the
Manual Tracking
plugin.
- Noel Bonnet has
made available plugins for
anisotropic diffusion, shading correction, contrast enhancement,
image gradients, segmentation and generating a toolbar.
- v1.33k, 7 September 2004
- The getProfile() macro function averages horizontally if preceded by setKeyDown("alt").
- Added the getMinAndMax() macro function. See the
DisplayRangeMacros
for examples.
- Added the ResultsTable.setLabel(String, row) method.
- The "Interpolate" option in Image/Stacks/3D Project is ignored if the slice spacing (in pixels) is less than or equal to 1.0.
- Fixed a bug that caused 0.5 to be added to 32-bit images rotated using
Image/Rotate/Arbitrarily when "Interpolate" was selected.
- Fixed a bug that could cause a "too many files open" error when attempting to open TIFF files.
- Fixed a bug, when using ImageJ as a library, that prevented memory from being
released when an image window was closed.
- Fixed a bug in Image/Stacks/3D Project that caused color LUTs to not carry over to the projections stack if "Interpolate" was selected.
- Worked around a Windows/Java 1.5 bug that caused Cntrl+V to fail in the editor (Plugins/Edit).
- v1.33j, 18 August 2004
- Analyze/Analyze Particles now works with 16-bit signed images.
- For 16 and 32-bit images, Image/Adjust/Threshold
now does a B&C "Reset" to work around a display range not equal to pixel value range
thresholding bug.
- File/Open opens the ZIP archives saved by the ROI Manager.
- File/Save As/AVI and File/Import/Image Sequence now
always display a progress bar.
- Operations on stacks now always display a progress bar.
- Added the setFont() macro function.
See the
TextDemo
macro for examples.
- Added the roiManager("Open", path) and roiManager("Save", path)
macro functions.
- Removed the "Thresh." and "Update" buttons from the Image>Adjust>Brightness/Contrast window.
The DisplayRangeMacros replace the "Update" button.
- v1.33i, 11 August 2004
- Added the Edit/Selection/Specify command.
- Macro shortcuts can override built in shortcuts. The
KeyboardShortcuts
macro file contains examples.
- Ctrl-x, ctrl-v and ctrl-a (Cut, Copy and Select All) keyboard shortcuts work in the "Results" window.
- Fixed a bug that prevented status bar display of calibrated frequency values as the cursor is moved over FFT images.
The FFT Measurements
example shows how to use this feature to measure distances between atomic planes in a TEM image.
- Fixed a bug that caused Image/Stacks/3D Project to ignore selections when "Interpolate" was checked.
- Fixed a bug (introduced in 1.33a) that sometimes caused DICOM images to be displayed incorrectly if the RescaleSlope tag was not 1.
- Fixed a bug that sometimes caused DICOM window and level to be set incorrectly.
-
Michael Abramoff, Paulo Magalhaes and Sunanda Ram wrote an article about ImageJ:
Abramoff, M.D., Magalhaes, P.J., Ram, S.J. "Image Processing
with ImageJ". Biophotonics International, July 2004, pp. 36-42.
- The ParticleCircularityHistogram
macro calculates and displays a particle circularity distribution histogram.
- Dirk Scheffler contributed the
DICOM Directory Analyser
plugin.
- Scion released Windows and Mac OS X
plugins
for their Firewire cameras.
- David Dunlap and Marco Caimi contributed the
AVI Splitter
plugin that opens an AVI file for viewing and allows the user to export one or more
segments of the file to an ImageJ stack.
- The
Convert to 16-bit Signed
plugin converts an unsigned 16-bit image into a signed 16-bit image.
- v1.33h, 30 July 2004
- Run a macro or plugin by clicking on an icon in the tool bar
(example).
- The "Fill With: White" option in Edit/New now works with 16-bit and 32-bit images.
- The "Fill With: Clipboard" option in Edit/New displays a more helpful message when
the internal clipboard is empty.
- Added Edit/Select All command to text editor (Edit/New).
- Message dialogs use anti-aliased text.
- The command recorder displays an error message if it encounters a duplicate keyword.
- Added the IJ.error(title, message) method.
- Fixed a bug that caused macros to continue running after an error.
- Fixed a bug that caused the command recorder to insert extra spaces in the options string.
- Bertram Manz contributed the
Bruker Opener plugin.
- Gilles Carpentier created an
AppleScript application
for updating ImageJ on Mac OS X using drag and drop.
- Christopher Philip Mauer contributed the
2D Hybrid Median Filter,
3D Hybrid Median Filter,
RG2B Colocalization and
RGB Zprojector
plugins.
- v1.33g, 15 July 2004
- Extended the cross hair tool and renamed it "point selection tool". Shift-click to add
a point. Double-click on the tool icon to configure. Use the getPolygon() method or
getSelectionCoordinates() function to retrieve the points.
- Analyze/Measure records point tool Z coordinates.
- ROI Manager improvements:
- ROIs added to the list are now bound to the stack slice.
- List items are in the form YYYY-XXXX or SSSS-YYYY-XXXX,
where SSSS is the slice number, YYYY is the y-center and XXXX is the x-center.
- ROI modifications do not alter an ROI on the list unless
"Update" is clicked.
- Removed the "Rename" option. Use "Save" instead.
- ImageJ keyboard shortcuts work when the ROI Manager
is the active window.
- Added support for numeric keypad macro shortcuts in the form "[n0]".."[n0]",
"[n/]", "[n*]", "[n-]", "[n+]" and "[n.]"
- Fixed a bug that generated redundant coordinates when using the freehand and freeline tools
on magnified images.
- Fixed a bug that caused the Prefs.set() method to fail with strings containing a backslash.
- Gilles Carpentier created another example
AppleScript application
that opens an image in ImageJ and processes it. Requires Mac OS X 10.3
- Marco Brugnara contributed the
Contact Angle
plugin.
- The
RoiManagerAddParticles
macro demonstrates how to add particle analyzer outlines to the ROI Manager.
- The
LabelParticlesWithArea
macro demonstrates how to label particles with the "Area" value.
- v1.33f, 7 July 2004
- Macros in "StartupMacros.txt" with the name "AutoRun" run when ImageJ starts up.
- Added "Rename" to menu that pops up when you right click on an image.
- Center of mass of RGB images is now calculated.
- ROI Manager improvements:
- "Add", "Add & Draw", "Measure", "Draw" and "Combine" are recordable.
- "Select All" removed. Most functions now operate on all ROIs if
no items on the list are selected.
- "Open All" removed. "Save" now saves ROIs as a ZIP archive and
"Open" opens ZIP archives.
- "Fill" removed. Instead, use "Combine" and the Edit/Fill command.
- List items are now in the form "TXXXX-YYYY", where T is the selection type,
XXXX is the x-center and YYYY is the y-center.
- Added the roiManager() macro function.
- Worked around a Mac OS X pop-up menu bug.
- v1.33e, 28 June 2004
- With straight line selections, Analyze/Measure now records the angle.
- Fixed several bugs that caused composite selections to be mistaken for line selections.
- Fixed a bug that caused recording of "Apply" in Image/Adjust/Threshold to fail.
- Fixed a bug that could cause File/Import/Image Sequence to fail if the
number of images and a file name filter were specified in the dialog.
- Fixed a bug that caused Edit/Clear Outside to not work with stacks.
- Fixed a bug that caused some operations on stacks to fail with selections inverted
using Edit/Selection/Make Inverse.
- Fixed a bug that caused the getMask() method to sometimes return a mask with a null
pixel array.
- Fixed a bug that caused Help/About ImageJ to generate an exception when ImageJ
was running as an applet.
- Gilles Carpentier created an example
AppleScript application
that opens an image in ImageJ and processes it. Requires Mac OS X 10.3
- Kai Uwe Barthel contributed the
3D Color Inspector
plugin.
- v1.33d, 18 June 2004
- Added the open() macro function and IJ.open() method.
- When using File/Open, the command recorder generates a
call to open() instead of run().
- The command recorder records Image/Adjust/Threshold as a comment.
- Image/Stacks/3D Project of RGB images now works with rectangular selections.
- Fixed a bug that caused ImageProcessor.setColor() to fail with thresholded images.
- Fixed a bug that caused Image/Stacks/3D Project to fail when used from command line programs and macros.
- Fixed a bug that caused plot windows to "popup" in command line programs and macros.
- Fixed a bug that sometimes caused commands to abort if the user clicked on the active image.
- Fixed a bug that caused Plot.setLimits() to sometimes fail.
- The
3D-Distance-Tool
macro measures the 3D distance between two points in a stack.
- The
LineAngleTool
macro draws a line and measures the angle between that line and the vertical axis.
- RunMacro
program runs ImageJ macros from the command line.
- v1.33c, 3 June 2004
- The maximum number of decimal places that can be specified in Analyze/Set Measurements
was increased from 8 to 9.
- Added the IJ.runMacro(macro, arg) and IJ.runMacroFile(path, arg) methods.
- The return statement, when not called in a function, now exits the macro.
If the macro was called using IJ.runMacro() or IJ.runMacroFile(),
it can also return a string value.
- Added the getArgument() and setKeyDown() macro functions.
- Fixed several bugs that caused exceptions or incorrect operation when processing images with
non-rectangular selections extending beyond the edges of the image.
- Fixed a bug that caused an exception if the ByteProcessor.putPixel() method was called
with coordinates that were not inside the image.
- Fixed a bug that caused Process/Filters/Mean to not work correctly
with non-rectangular images if "Separable Square Mask" was checked.
- v1.33b, 26 May 2004
- Opens uncompressed 12-bit TIFFs, including TIFF stacks.
- Pasted non-rectangular selections can be dragged beyond edge of image.
- Copied selections larger than target image can now be pasted.
- Fixed a bug that caused the "Results" window to be opened when using ImageJ as a library. The
Command Line Example
demonstrates how a Java program can use ImageJ as a library.
- Fixed a bug that caused an exception when using Edit/Cut or Edit/Clear Outside with non-rectangular
selections extending beyond the image boundary.
- v1.33a, 19 May 2004
- Adds the Rescale Intercept value (usually -1024 for CT) to DICOM images.
- Calibration data in TIFF and DICOM images imported by File/Import/Image Sequence is now used.
- Fixed a bug that caused most Process/Math commands to fail with 16-bit signed images.
- Added the saveSettings() and restoreSettings() macro functions.
- Image/Color/RGB merge works with 16 and 32 bit images and stacks.
- With 16-bit signed images, the ImageProcessor putPixelValue() method now works symmetrically with getPixelValue().
Version 1.32j, 12 May 2004
- Tony Collins has assembled 98 plugins useful for microscopy and
written an accompanying 45 page manual. The software and manual are available at
http://www.uhnresearch.ca/facilities/wcif/download.php, or online at
http://www.uhnresearch.ca/facilities/wcif/imagej/.
- Pedro Ramos-Cabrer contributed the
Slice Labeler
plugin.
- Thomas Stamm contributed the
DICOM Sort
plugin.
- A
Windows installer
is now available that creates desktop and Start menu shortcuts, an uninstaller,
and is 1.7MB smaller than the ZIP distribution. It was created using the
Marner Java Launcher (ImageJ.exe)
and the
Inno Setup installer generator.
- Fixed bugs in Image/Lookup Tables/Apply LUT and extended
it to work with thresholded images. (j)
- Fixed a bug Analyze/Analyze Particles that sometimes caused the "Summarize" option
to fail if "Clear Results Table" was not checked. (j)
- Dimiter Prodanov contributed the
Color Histogram
plugin.
- Edoardo "Dado" Marcora wrote a
small tutorial
on how to use
Jython
with ImageJ.
- Jeff hardin contributed the
JMF Movie Player plugin.
- Added the Edit/Options/Memory command for setting the Java heap size, which is the
maximum amount of memory available to ImageJ. Requires
Mac OS X or a version of ImageJ that was installed by the new
Windows installer. (i)
- The IJ.showMessage() method and the showMessage() macro function now display HTML formatted text.
For examples, run the HtmlDialogDemo macro.
- Plugins/Compile and Run now runs pre-compiled plugins (.class files). This allows running externally
compiled plugins without having to restart ImageJ. (i)
- Removed the "Create Plugin" button from Plugins/Macros/Record and added a "Name:" field and "?" button.
Use the editor's Edit/Convert to Plugin command to convert a macro generated by the recorder into a plugin. (i)
- Renamed Edit/Options/Miscellaneous as Edit/Options/Misc. (i)
- Fixed a macro bug that caused run() commands to fail if the ending of a keyword in the options string
was the same as another keyword. (i)
- Fixed a bug in the PluginClassLoader that could case loading of resources from JAR files to fail. (i)
- When running Java 1.4.1 or later, or a version of ImageJ installed by the new Windows installer,
ImageJ can display the maximum available memory and the percent memory used. The Window/About ImageJ and
Plugins/Utilities/ImageJ Properties commands, and the status bar when it is clicked, display a string in
the form "22MB of 600MB (4%)". The Plugins/Utilities/Memory Monitor tool
displays the percent memory used. (h)
- The "Out of memory" error message now displays the amount of memory available to ImageJ,
which is approximately equal to the amound set by the -Xmx command line option. (h)
- Added the "Black Canvas" option to the Edit/Options/Image dialog. (h)
- Moved the "Interpolate ImagesEdit/Options/Misc to Edit/Options/Image. (h)
- Fixed a bug in Process/FFT/Inverse FFT that could cause it to fail if there was a selection. (h)
- Fixed a bug that could cause a blank error dialog box to be displayed when opeing a TIFF. (h)
- Added the Edit/Options/Conversions command, which displays a dialog with "Scale When Converting" and
"Unweighted Color To Grayscale Conversions" options. (g)
- On Windows, the Help/ImageJ Web Site and Help/Online Docs commands no
longer cause the DOS window to open. (g)
- File/Import/URL will open a Web page in the default browser if the specified URL ends in "/". (g)
- Analyze/Calibrate now displays the correct Rodbard equation. (g)
- Macros located in the plugins folder or sub-folder, with at least one underscore
in the name, are installed when ImageJ starts up. (g)
- Added the Plugins/Macros/Run command. (g)
- Added the setupUndo() macro function. For an example, see the
DrawingTools
macros. (g)
- The makeSelection() macro function now accepts a numeric selection type. See the
ScaleSelection macro
for an example. (g)
macros. (g)
- Added the "D" (draw dot) command to the tool macro
icon description language. (g)
- Speeded up the macro language return statement. (g)
- Fixed a macro language bug that caused comparisons of strings longer than eight characters to fail. (g)
- Fixed a bug that prevented macro language
calculator mode
statements from starting with "(". (g)
- Fixed a bug that caused Process/Binay/Threshold to fail with contrast enhanced images. (g)
- Fixed a bug that caused Process/Enhance Contrast to not work as expected when the
"Saturated Pixels" parameter was zero. (g)
- Fixed a bug in the fromCharCode() macro function that caused it to return extra characters. (g)
- Fixed a bug that caused Help/ImageJ Web Site and Help/Online Docs to fail on Windows Me. (g)
- Fixed a bug that caused text file larger than 60K to fail to open on Windows Me. (g)
- Added the getDirectory(), getFileList(), getPixelSize(), startsWith() and endsWith() macro functions.
The
ListFilesRecursively and
ShowImageInfo
demonstrate how to use these functions. (f)
- Image/Stacks/Make Montage displays slice labels, if available, instead of slice numbers. (f)
- Fixed a bug that caused incorrect display of results table row labels with DICOM and FITS images. (f)
- Fixed a bug in Image/Stacks/Plot Z-axis Profile that caused incorrect display of results
table row labels. (f)
- Added the Open() method to the DICOM class. (f)
- Added the setNormalize() method to the DICOM class. (f)
- Gali Baler contributed the
Exif_Reader
plugin for extracting EXIF metadata from digital camera images.
- Cezar M. Tigaret contributed the ShapeRoi class that gives ImageJ the ability
to add/subtract selections and to invert selections. (e)
- Hold down the shift key to add to a selection and the alt key to subtract
from it. Requires Java 1.2 or later. (e)
- Added the Edit/Selection/Invert Selection command. Requires Java 1.2 or later. (e)
- Added the Plugins/Utilities/Capture Screen command, which was written by Gali Baler.
Requires Java 1.3 or later. (e)
- Added a "Combine" option to the ROI Manager. (e)
- Added a "Convert to RGB" option to Import/Image Sequence. (e)
- Added the getThreshold(lower, upper) macro function. (e)
- The number of decimal places used for scale (resolution) values displayed by Analyze/Set Scale and
Image/Show Info are increased as needed. (e)
- The selectWindow("title") macro function now waits up to four seconds. (e)
- Fixed a bug in the isOpen() macro function that caused it to fail when the argument was a string variable. (e)
- Fixed a bug that caused Roi Manager's "Save" function to corrupt the ROI list if the user canceled the save. (e)
- Dimiter Prodanov contributed
an example
that shows how to link ImageJ to a RDBMS engine like MySQL.
- Tony Collins and Tony parker have made available an enhanced version of the
Dispose All Windows
plugin that allows the user to select windows to be closed.
- Analyze/Label now works with the particle analyzer. (d)
- Fixed a bug in v1.32c that sometimes caused the ColorProcessor.fill(mask) method to fail. (d)
- Fixed a bug in v1.32c that caused Image/Adjust/Canvas Size to fail on Mac OS 9. (d)
- Ulf Dittmer enhanced the Prefs class to allow plugins access to the ImageJ preference
file ("IJ_Prefs.txt") and contributed the
Preference Demo plugin that
demonstrates how to save and restore user preferences. (c)
- Added the Image/Color/Edit LUT command, written by Gali Baler. (c)
- Added the Analyze/Label command. As a shortcut, press alt-d. Press alt-m, alt-d
to measure and label. (c)
- Edit/Draw labels the selection with the current measurement number if the alt key is down. (c)
- Added a "Zero Fill" option to Image/Adjust/Canvas Size. (c)
- Moved Analyze/Show LUT to Image/Color/Show LUT. (c)
- Masks are now 8-bits. Roi.getMask(), ImagePlus.getMask() and ImageProcessor.getMask()
return a ByteProcessor instead of int[]. ImageProcessor.setMask(),
ImageProcessor.getHistogram(), ImageProcessor.fill() and ImageProcessor.reset() now expect
a ByteProcessor argument. Added the ImageProcessor.getMaskArray() method which returns a byte array.
The background pixels in a byte mask are zero. Plugins resident on the ImageJ Web site that use masks (e.g.,
Stack Histogram,
Stack Normalizer and
Color Comparison) and
have been updated to use byte masks. (c)
- Filling and drawing of ellipses is faster and the rendering is exactly the same way on all platforms. (c)
- Fixed a bug that caused importing of 1 bit stacks to fail. (c)
- Fixed a bug that caused an invalid error message when opening 1 bit TIFFs. (c)
- Fixed a bug that caused histogram bin start values of 16 bit signed images to be truncated. (c)
- Fixed a bug that caused the "Apply" option in Image/Adjust/Contrast/Brightness to fail
with non-rectangular selections. (c)
- Fixed a bug that prevented the command execution time from being displayed in the status bar if
there was a selection. (c)
- The length of freehand lines used by Image/Stacks/Reslice is now the same
as that reported by the Measure command. (c)
- File name extensions ending in a digit are no longer hidden when "Show Label" is checked
in Analyze/Set Measurements. (c)
- Worked around an OS X/Java 1.4 bug that caused particle labeling to fail. (c)
- Worked around an OS X/Java 1.4 bug that sometimes caused the text tool to enter an extra "d". (c)
- Worked around an OS X/Java 1.4 bug that caused interactive thresolding of 16 and 32 bit images to fail. (c)
- Matt Daniels contributed the
Spectrum Extractor
plugin.
- Brigitte Forster et al. of the
Swiss Federal Institute of Technology Lausanne
have made available the
Extended Depth of Focus
plugin.
- The
PNG Writer plugin
saves images in PNG format on systems running Java 1.4 or later.
- Moved the Image/Benchmarks commands to a
package of plugins
and added the Plugins/Utilities/Benchmark command. (b)
- Multiple files can be selected (by shift-clicking) and opened using File/Open if
"Use JFileChooser" is enabled in Edit/Options/Miscelleaneous. (b)
- Plugins packaged in a JAR file are installed in submenus corresponding to the
folder that contains the JAR file if the *'plugins.config' in the JAR file
does not specify a menu. (b)
- Plugins>Utilities>ImageJ Properties displays a few more properties and,
if the alt key is down, displays all Java properties. (b)
- Keyboard shortcuts now work when the "Results" window is active. (b)
- Added a "Start At" option to File/Save As/Image Sequence. (b)
- Added a "Border Width" option to Image/Stacks/Make Montage. (b)
- XOR mode rubber banding no longer used by the polygon, polyline and angle tools, working
around XOR drawing bugs on Mac OS X. (b)
- Trevor Croft contributed an improved File/Open FITS reader. (b)
- Fixed a bug that caused the '' shortcuts to fail to work after using
the slice selector scroll bar. (b)
- Fixed a bug that caused the angle tool to fail for angles of 0 and 180 degrees. (b)
- Clones of the Roi classes are serializable. (b)
- Added the the getPolygon() method to the Roi class and the SetRoi(Polygon), setRoi(Roi),
drawPolgon() and fillPolygon() methods to the ImageProcessor class. (b)
- ResultsTable.getValue() throws an exception i f the column name is not valid. (b)
- Adam Baker contributed the
Quicktime Still Extractor
plugin.
- Stirling Churchman contributed a
plugin
that opens Andor .SIF files.
- Erik Meijering has made available
NeuronJ,
a plugin for neurite tracing and quantification.
- Jerek Sacha contributed the
Maximum Entropy Threshold
plugin.
- Plots generated by Analyze/Gels/Plot Lanes are now normalized when plotting OD calibrated images. (a)
- Selecting a line in the "Results" window no longer requires dragging the mouse. (a)
- Tool descriptions displayed in status bar as cursor moves over tool bar. (a)
- Fixed a bug in File/Save As/AVI that caused it to create AVI files that
could not be opened by the Windows Media Player if the stack's frame rate was less than 1.0. (a)
- Fixed a bug that caused plugins to fail to load if a folder in the plugins folder was not readable. (a)
- Worked around a Mac OS X/Java 1.4 bug that caused labeling done by the Analyze/Gels commands to fail. (a)
- Fixed a bug that caused Process/Binary/Skeletonize to sometimes reduce 45 degree lines to a single pixel. (a)
- Fixed a bug that caused Process/Smooth, Process/Sharpen and Process/Find Edges
to throw an exception with one pixel wide images. (a)
Version 1.31v, 4 February 2004
- The OS X version of ImageJ has a
new icon
based on a photograph by
Tom Grill
of a Hartnack microscope, circa 1870's, at
www.arsmachina.com.
- Albert Cardona has made available a
3D Editing
plugin.
- Jerome Mutterer and Christophe Laummonerie contributed the
RGB Profiler and
Colocalization Finder
plugins.
- Cezar M. Tigaret contributed a greatly improved Plugins/Utilities/Control Panel command
that displays all ImageJ commands in a hierarchical tree structure. (v)
- Process/Binary/Erode, Dilate, Open, Close and Skeletonize now process edge pixels. (v)
- Added the Process/Math/Abs command. (v)
- Added the Edit/Zap Gremlins command to the text editor. (v)
- Menu keyboard shortcuts, when used with the control key held down, no longer
sometimes run commands twice. Note that, except when using the text tool, there is
no need to hold down the control or command key when using keyboard shortcuts. (v)
- Attempts to do 16-bit to 16-bit and 32-bit to 32-bit conversions no longer generate an error message. (v)
- Fixed a bug that sometimes caused the alt key to appear to be stuck down. (v)
- 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
plugins
that open multiple image files from Varian MRI imaging systems
and EVS 900 micro-CT systems.
- Ulf Dittmer added ICO support to the
Jimi Writer
plugin.
- Eric Kischell (keesh) contributed the
Grid Cycloid Arc
plugin.
- 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
GrayMorphology
plugin.
- Jerome Mutterer contributed a
macro
that draws the Mandelbrot set.
- Christopher Mei contributed the
Anisotropic Diffusion,
Mixture Modeling,
Otsu Thresholding and
Watershed Algorithm
plugins.
- 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. Upgrading to the
OS X/Java 1.4.1 version of ImageJ and enabling this
option may reduce the likelihood of ImageJ
crashing on Panther (Mac OS X 10.3). (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)
- The
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.
- The
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.
- The
PolygonArea
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
example. (p)
- 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
Movie Player
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 run more
reliably on Panther
is available on the
Download page.
- 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.
JavaDocs
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
Windows plugins
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
RandomJ,
a collection of plugins (Binomial, Exponential, Gamma, Gaussian, Poisson and Uniform)
for image randomization.
- Added a collection of macro plotting functions. Refer to the
ExamplePlots
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
Resize Canvas
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
test case
is available. (c)
- Added the setValueUnit() method to the Calibration class. (c)
- Added the getXValues() method to the PlotWindow class. (c)
- Added the
WandAutoMeasure
tool macro.
- 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)
Version 1.30v, 3 July 2003
- Added the
IPLab Reader plugin.
- Gregory Jefferis contributed the
HandleExtraFileTypes plugin.
- 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
Dual-Energy plugin.
- Gregory Jefferis has written a
plugin
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
rsb.info.nih.gov/ij/docs/install/. (s)
- 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
Granulometry plugin.
- 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
have written
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)
- ShowPath.txt
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
Colocalization plugin.
- 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
plugin
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
PasteControlDemo.txt. (l)
- 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
LineTool.txt and
SprayCanTool.txt. (l)
- 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
Tools.txt,
PencilTool.txt
and CircularSelectionTool.txt. (k)
- Added the getSelectionCoordinates() macro function and removed the nCoordinates function and the xCoordinates
and yCoordinates built in arrays. See
SelectionCoordinates.txt,
ConvexHull.txt and
FeretsDiameter.txt
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
LookupTables.txt
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
LUT Panel
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
Shortcuts.txt. (e)
- User-defined macro arrays are now typeless. For an example, see
Arrays.txt. (d)
- 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
(2GB). (c)
- 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)
Version 1.29, 19 December 2002
- 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
Window/Level Adjuster
plugin.
- The FeretsDiameter,
ConvexHull and
BouncingBar
macros demonstrate ROI coordinate caculations and animation. (n)
- Added a "Feret's Diameter" option to Analyze/Set Measurements. (n)
- The InvertImage
and BullsEye
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
Specify ROI
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
sequences.
- Rick Turner has added some filter plugins (Prewitt, Roberts, Sobel, etc.) to his
home page.
- Michael Umorin contributed the
Stack Focuser
plugin.
- 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
CircularParticles macro
demonstrates how to use this feature. (i)
- Added the Macros/Install Macros command to the text editor. The updated Polygon and MacroSet macros
(https://rsb.info.nih.gov/ij/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
rsb.info.nih.gov/ij/macros/.
- 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
plugin
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)
Version 1.28, 22 August 2002
- 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
a
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 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
BMP Writer
a plugin.
- Marcus Lamer created the
Sequenzer
plugin for generating intermediate images between two reference images.
- Jarek Sacha created the
3D Toolkit,
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
plugins.
- Gary Chinga contributed a
plugin
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
plugin
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 "" to
step through a stack. (n)
- Yannick Krempp and Jerome Mutterer contributed
LSM Reader,
a plugin that opens files produced by Zeiss LSM 510 confocal microscopes.
- Daniel Marsh has written the
Color Chooser
a plugin.
- 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
AVI Reader,
a plugin that opens uncompressed 8-bit and 24-bit AVI movies.
- Adrian Daerr has written
JNIAkiz,
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 (Windows only) 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
Deinterlace and
Averaging Reducer
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
ImageJ applets.
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
320KB Jpeg.
- 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)
Version 1.27, 24-April-2002
- 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 DVersion camera into separate 32 bit red, green and blue stacks.
- Eric Kischell added a "Create New Window" option to the MRI t2 plugin.
- Kas Thomas contributed the JavaScript Editor plugin that allows real-time evaluation of JavaScript code.
- 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)
Version 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
paper that
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)
Version 1.25, 3-November-2001
- On the Mac, files dropped on the ImageJ icon are opened, the Apple menu "About" command works,
and the Apple menu "Quit" command saves preferences and prompts to save changes. Note: drag and drop may not work until you delete all older versions of ImageJ and rebuild the desktop.
(t)
- File/Revert revert now works correctly when pasting. (s)
- Fixed a bug that could cause an exception after having used Image/Crop. (s)
- Added the addTool() method to the Toolbar class. (r)
- Added Window/Cascade and Window/Tile commands. (q)
- Fixed a bug that caused images saved using File/Save As/ZIP to lose calibration. (q)
- Added support for bitmap and ARGB image types to File/Import/Raw. (p)
- Edit/Undo now works after using Image/Type to convert 16 and 32 bit images to another type. (p)
- Numbers are now always displayed using a decimal point. (p)
- Fixed a bug that could cause an exception after having used the text tool. (p)
- Joachim Walter has written a plugin that does
gaussian filtering in fourier space.
- Werner Bailer has written a plugin
for doing Discrete Cosine Transforms.
- An updated version of the Werner Bailer's plugin writing tutorial (v. 1.5) is available at
http://www.fhs-hagenberg.ac.at/staff/burger/ImageJ/tutorial/.
- The Gaussian Blur and Unsharp Mask filters are now much faster. (o)
- Fixed a bug in Image/Stacks/Reslice that cuased it to fail with 32-bit stacks. (o)
- Analyze/Analyze Particles now correctly processes a single slice in a stack. (m)
- The Brightness/Contrast and Threshold tools no longer leave threads running when the window is closed. (l)
- The Image/Adjust/Brightness/Contrast tool has a new "Set" button and improved histogram support. (l)
- Amrit Aneja has put together a collection of 72 plugins from the ImageJ Web site.
- Added support for the Window Center and Window Width DICOM tags. (i)
- Kurt De Vos has written a cell counting plugin.
- Removed the TextPanel from the main ImageJ window and added a separate "Results" window. (h)
- Added an option to Analyze/Analyze Particles to display fitted ellipse for each particle. (f)
- Analyze/Analyze Particles now displays the labels for particle outlines in red. (f)
- Mike Martin has written a plugin
for opening uncompressed Planetary Data System (PDS) images.
- Added the Analyze/Tools/ROI Manager command. (e)
- Added a "Zip" and "Text" choices to File/Save As/Image Sequence. (c)
- Added a "Fit Ellipse" option to Analyze/Set Measurements which adds "Major", "Minor" and "Angle" columns to the results table. (b)
- Tony Parker has written a plugin
that allows the user to align two stacks.
- Erik Meijering has written a package of plugins
(TransformJ)
for geometrical transformation and manipulation (chunking, embedding,
mirroring, rotation, shifting, scaling or resizing, affine
transformation) of up to four-dimensional (4D) images.
- Fixed a bug that caused ImagePlus.setCalibration() to reset the xOrigin and yOrigin fields. (a)
- Fixed a rounding error in Process/Noise/Add Noise. (a)
Version 1.24, 7-Sept-2001
- Added the Hypervolume Shuffler plugin by Michael Abràmoff.
- Fixed a bug in Process/Filters/Convolve that caused the dialog box not to show after the first time. (t)
- Removed 20 item limit in GenericDialog class. (r)
- Updated AVI Writer plugin.
- Added the Stack Builder plugin by Nicolas Roggli.
- Updated the Plugins Control Panel plugin.
- Fixed a bug in the IJ.run() method used my the command recorder. (q)
- Added Embyos and Leaf images, contributed by Larry Reinking, to the File/Open Samples submenu. (q)
- Larry Reinking, Department of Biology, Millersville University, has written two great ImageJ handouts: ImageJ and Examples of Image Analysis Using ImageJ.
- ImageJ now opens uncompressed TIFF bitmap images. (p)
- ImageJ now opens the "hybrid" TIFF/DICOM files created by GE-Senographe 2000 D mammography systems. (p)
- Added the Batch Statistics plugin.
- The location of the plugins directory can now be specified from the command line. See the
Linux x86 installation notes
for an example. (n)
- File/Open can open PNG images if ImageJ is running on a Java 2 JVM.
- Improved Plugins/Utilities/Panel.
- Added a link to a new
plugin
that uses cubic spline interpolation to resize images. This plugin was written by Daniel Sage of the Biomedical Imaging Group at the Swiss Federal Institute of Technology.
- Updated the AVI Writer plugin to use the frame rate specified in Image/Stacks/Animation Options (requires ImageJ v1.24l).
- Analyze/Analyze Particles has a new option to display selected particles in black on a white background. (k)
- Modified the Mouse Listener example plugin to display the mouse pressed event modifiers and to keep a list of images it is listening to.
- Image/Show Info displays the frame rate of imported NIH Image movies. (j)
- Non-image windows are listed in the Window menu. (j)
- Fixed bugs in the setImage(), setProcessor() and setStack() methods of the ImagePlus class. (j)
- Analyze/Tools/Save XY Coordinates works with all image types. (h)
- With non-rectangular selections, Image/Crop keeps the selection. (h)
- Image/Colors displays more colors. (h)
- Double-clicking on the straight line tool displays the Line Width dialog. (h)
- Analyze/Analyze Particles now works with stacks. (g)
- The location and size of the ImageJ window is now recorded in the preferences file (IJ_Prefs.txt). (g)
- Most commands that generate an image now include the name of the original image in the title. (g)
- Made the text tool easier to use. (g)
- On systems other than the Macintosh, changed the order of the buttons in the "Save Changes" dialog box. (g)
- Added the Help/ImageJ Web Site command that launches a browser and has it open the ImageJ home page. (g)
- Maja Kizic and Muris Borovac at Chalmers Lindholmen University College, Gothenburg,
Sweden have written a bachelor's thesis that evaluates the usability of ImageJ's user interface and offers suggestions on how it can be improved.
- Added ability to cut, copy and paste non-rectangular selections. (e)
- 32-bit stacks can now be converted to 16-bit stacks. (e)
- 8-bit stacks can now be converted to 16-bit stacks. (d)
- Fixed a bug in Process/Subtract Background that caused bluring of the background subtracted image. (d)
- Process/Image Calculator now resets the display range. (b)
- Process/Subtract Background now works with stacks and with images without inverted LUTs. (a)
- Added the Process/Math/Square, Process/Math/Square Root and Image/Rename commands. (a)
Version 1.23, 22-June-2001
- ImageJ now opens uncompressed RGB DICOM images. (w)
- Thanks to Java2HTML, the ImageJ source code is now online in a colorized and browsable format.
- Improved the check done at startup for duplicate classes in the plugins folder. (v)
- Add the Process/Filter/Unsharp Mask command. (t)
- Added Gaussian Blur, Median, Mean, Minimum (grayscale erosion) and Maximum (grayscale dilation) filters to the Process/Filters submenu. (s)
- Added the List Opener plugin for opening images using a text file list. (q)
- Added the PlotWindow.addErrorBars() method and a plugin that demonstrates how to use it. (q)
- Image/Adjust/Brightness/Contrast and Image/Adjust/Threshold now work with locked, non-RGB images. For example, you can be running Image/Bencharks/Waves and adjusting brightness/contrast at the same time. (p)
- On Macintoshes, the ImageJ window is smaller and the menu bar no longer disappears when switching to none image windows. (p)
- The "Apply" option in Image/Adjust/Brightness/Contrast now works correctly with color LUTs. (o)
- Added a Mac OS X distribution.
- Deleted Image/Stacks/Save Slices as Files and replaced it with File/Save As/Image Sequence. (m)
- Changed the name of File/Import/All As Stack to File/Import/Image Sequence and added the ability to convert the images to 8-bits and/or open them half sized, resulting in stacks that use as little as 1/16th as much memory. (m)
- Fixed a bug in Analyze/Calibrate that caused the "Global" option to not work correctly. (m)
- Added the Edit/Options/Foreground Color and Edit/Options/Background Color commands. (m)
- The ImagePlus(String) constructor now works with both paths and URLs. (m)
- Added the Opener.OpenImage(String) method for opening images using a path. (m)
- Fixed a bug in the QuickTime Movie Opener plugin that could result in duplicate or missing frames.
- Added the AVI Writer plugin.
- The Clear, Clear Outside and Fill commands can now process entire stacks. (k)
- Commands that process entire stacks now work with selections. (k)
- Fixed several problems with the DOES_STACKS and SUPPORTS_MASKING options of the PlugInFilter interface. (k)
- Text fields in dialogs are now automatically selected when you click on the field or tab to it. (g)
- Plugins/Utilities/List Properties now displays the directory where ImageJ saves the preferences file (IJ_Prefs.txt) and the directory where it looks for plugins. (f)
- Fixed a binning problem with 16 and 32-bit histograms. (f)
- The "Save As" command in the Plugins editor now changes the class name to match the file name. (e)
- With 16 and 32-bit images, Process/Math/Min and Process/Math/Max now update the displayed image by doing the equavalent of clicking on "Reset" in Image/Adjust/Brightness/Contrast. (e)
- Analyze/Set Scale now displays the scale, which is dynamically updated as the measured and known distances are changed. (d)
- With stacks, Image/Duplicate can now gives you the option of duplicating the entire stack or just the current slice. (c)
- Added the Plugins/Record command (under construction). (a)
- Fixed several problems with histograms of calibrated 16-bit images (e.g. signed FITS images). (a)
Version 1.22, 22-Mar-2001
- Upgraded bundled Windows JRE to 1.1.8_006, which fixes JIT crashes on Pentium 4 CPUs and a scrolling problem in popup menus.
- Added an icon for ImageJ.
- An error message is now displayed when, under Windows, the user attempts to maximize the ImageJ window, causing other windows to be hidden. (c)
- Analyze/Summarize now works with line and point measurements. (c)
- The "Auto" feature in Image/Adjust/Threshold now works more reliably. (b)
- Fixed a couple of problems with Analyze/Summarize. (b)
- Image/Adjust/Contrast/Brightness, Image/Adjust/Threshold, Edit/Paste Control and Edit/Options/Fonts now open only one window. If the window is already open, it is brought to the front. (a)
- On the Mac, the MRJ version is displayed by Plugins/Utilities/Show Java Properties. (a)
Version 1.21, 27-Feb-2001
- Added the Process/Math/Min and Process/Math/Max commands. (v)
- The wand tool now works more reliable with Analyze/Gels. (v)
- Added the Image/Stacks/Convert Stack to Images command. (u)
- Hold down the alt key with Image/Stacks/Add Slice to add a slice in front of the current slice. (u)
- Analyze/Histogram now uses the number of decimal places defined in the Analyze/Set Measurements dialog. (t)
- Fixed several problems with histograms of floating-point images. (t)
- XY coordinates generated by the crosshair tool are now saved in the ImageJ ResultsTable. (s)
- Fixed several z-axis rotation bugs in Image/Stacks/3D Project. (s)
- Simplex fitting parameters used by the Analysis/Tools/Do Curve Fitting tool can now be adjusted thanks to an improved CurveFitter class contributed by Kieran Holland. (r)
- Image/Stacks/3D Project no longer requires thresholded stacks. Upper and lower transparency bounds are set in the dialog or are set automatically if the stack is thresholded. (r)
- Updated Image/Stacks/Convert Stack to RGB to work with 2-slice stacks (red and green). (r)
- Updated the RGB Stack Merge plugin to work with two stacks (red and green).
- Image/Stacks/Reslice now works with rectangular selections. A rectangular selection is equivalent to a line selection corresponding to the top edge of the rectangle and a "Slice Width" equal to the height of the rectangle. (q)
- Fixed a bug, introduced in v1.20, that caused reslicing of RGB stacks to fail. (q)
- Stacks can now be converted to RGB. (q)
- Added the Resize Canvas plugin contributed by Jeffrey Kuhn.
- "Center of Mass" now reverts to "Centroid" when all pixels are zero. (o)
- DICOM/ACR-NEMA reader improved. (o)
- Fixed bugs, introduced in v1.18, with 16-bit add, subtract and multiple in Process/Image Calculator. (n)
- Image/Adjust/Brightness/Contrast now correctly displays min/max of density calibrated images. (m)
- Improved support for signed DICOM images by using a calibration function to restore the orginal negative values. (m)
- For 16-bit and 32-bit images, File/Import/Raw (with "Open All" checked), File/Import/All As Stack and Image/Stacks/Convert Images to Stack now use the stack min/max to set the display range instead of the min/max of the first image. (l)
- ROI movement via arrow keys no longer stops one pixel early at right and bottom of image. (k)
- Analyze/Calibrate now works with images of type "8-bit Color". (j)
- Added the Plugins/New command. (i)
- File/Open now opens BMP, LUT and ZIP files with upper case file name extensions. (h)
- File/Open now opens text files. (h)
- Added a Paint Brush plugin contributed by Jeffrey Kuhn.
- Added the Stack Histogram plugin.
- For float and calibrated images, File/Save As/Text Image now uses the "Precision" setting in the Analyze/Set Measurements dialog. (f)
- Added Process/Morphology/Euclidian Distance Map and ../Ultimate Eroded Points commands. (c)
- Fixed a bug in Image/Stacks/Render that caused it to generate a blank image when "Total Rotation" was set to zero. (b)
- Maximum values less than zero are now calculated correctly. (a)
- Density calibration information in NIH Image TIFF files is now decoded. (a)
Version 1.20, 20-Dec-2000
- Fixed a bug, introduced in ~v1.20n, in the Image/Type/RGB Stack and Image/Type/HSB Stack commands. (p)
- Added the "Bat Cochlea Volume" sample image, useful for testing the Image/Stacks/Render command and Michael Abramoff's VolumeJ plugin. This is a thresholded high resolution MRI dataset of the inner ear of a bat contributed by Art Keating of the University of North Carolina. (n)
- Added the Image/Stacks/Render command, a port of the NIH Image "Project" command written by Michael Castle of the University of Michigan Mental Health Research Institute. (n)
- Pressing the "=" key now starts/stops stack animation. (l)
- Replaced static conversion methods in ImageConverter with the ImageProcessor methods convertToByte(boolean), convertToFloat(), convertToRGB() and convertToShort(boolean). (l)
- Image/ColorTables/Invert LUT now works correctly with stacks. (l)
- Image/Stacks/Next Slice (">") and Image/Stacks/Previous Slice ("<") now skip 9 slices if the alt key is held down. (k)
- Fixed a bug in the ByteProcessor.getAutoThreshold method used by Image/Adjust/Threshold and by Process/Morphology/Threshold. (k)
- A rare problem with endless rapid switching between windows is now (hopefully) fixed. Use the Focus Bouncer plugin to test for this problem. (i)
- Class files in the plugins folder that have duplicates in subfolders are now automatically deleted. (h)
- The Plugins/Shortcuts/Install Plugin command can now install plugins in the Filters, Tools and Utilities submenus. (g)
- Moved the Do Curve Fitting, Fractal Box Count , Save XY Coordinates, Analyze Line Graph and Do Curve Fitting commands to the new Analyze/Tools submenu. (g)
- The cross hair tool can now display results in calibrated units. (g)
- Added the Process/Filters/Convolve command for performing convolutions using user-defined real kernels. (g)
- Thumbnail images contained in some TIFF files are no longer displayed. (d)
- The Image/Adjust/Threshold tool now works with 16-bit and 32-bit images. (b)
- Added an "Apply" button to the Plugins/Utilities/Do Curve Fitting window that creates a new 32-bit image by using the curve fit function to transform the active image. (b)
- Plugins in subfolders of the plugins folder are now installed in submenus of the Plugins menu. (a)
- Fixed a bug in the plugin class loader that prevented newly compiled plugins from replacing previously loaded versions. (a)
- Added a plugin, contributed by Cezar M. Tigaret, that uses a tabbed panel to provide access to plugins in subfolders of the main "plugins" folder.
Version 1.19, 26-Oct-2000
- Added direct 16-bit to RGB and 32-bit to RGB conversions. (x)
- Fixed a bug that sometimes caused the color LUT not be saved when saving an 8-bit image in TIFF format. (x)
- Fixed a bug that sometimes caused color LUTs to be reset to grayscale when converting to or from 16-bits or 32-bits. (x)
- Image/Show Info now displays density calibration information. (w)
- Fixed a bug in the cross hair tool that caused it to ignore foreground color changes. (v)
- Changed the name of the Hot Keys submenu to Shortcuts. (v)
- Added red, green and blue LUTs to the Image/Color Tables submenu. (u)
- Added a plugin that saves stacks as QuickTime movies.
- Fixed a bug in the TiffEncoder class that prevented other applications from being able to read 8-bit color tiff stacks created by ImageJ. (t)
- Added a "Scale When Converting" checkbox to Edit/Options/Miscelleaneous that allows auto-scaling of data type conversions to be disabled. (r)
- Added "Copy All", "Clear Results", "Summarize" and "Set Measurements" commands to the worksheet popup menu. (r)
- Added three example plugins (FOV Calculator,
Gear Math, and
Circle Test)
contributed by Joshua Gulick.
- The calibration function, if there is one, is applied to the pixel data when converting 8-bit and 16-bit images to 32-bit floating-point. (q)
- Improved support for signed 16-bit FITS images by using a calibration function to restore the orginal negative values. (q)
- Added a "Precision" field to the Analyse/Set Measurements dialog for specifying the number of digits (0-8) displayed after the decimal point. (n)
- Added the addLabel(heading, label) method to the ResultsTable class. (n)
- Added an option to Analyze/Set Measurments to label rows in the results table with the file name and slice number. (l)
- Settings in Edit/Options/Profile Plot Options are now saved. (k)
- ImageJ now opens 8-bit color palette DICOM images. (j)
- Fixed a NullPointerException bug in File/Import/All As Stack that was triggered when the first file in the folder was not an ImageJ compatible image. (i)
- Added the Background Task plugin as an example of how to do time-consumming background processing.
- Added a plugin that generates 3D surface plots.
- The "Apply" button in the Image/Adjust/Brightness/Contrast tool will now apply the current brightness and contrast settings to the entire stack. (g)
- Fixed a bug, introduced in v1.18, in the Image/Adjust/Brightness/Contrast tool that limited "min" and "max" of 8-bit and RGB images to the range 0-255. (f)
- Fixed a NullPointerException bug in Analyze/Analyze Line Graph. (f)
- The "MRI Stack", "M51 Galaxy" and "Scala Media Stack" sample images now download as ZIP compressed TIFFs. (d)
- The Image/Adjust/Brightness/Contrast tool now works with animated stacks. (d)
- Upgraded File/Import/URL to work with TIFF files. (b)
- The ImagePlus.setSlice() method now updates the slice selection scrollbar. The new ClearOutside plugin takes advantage this feature. (b)
- Same-size images now open at the same magnification (1:1, 2:1, etc.), regardless of their screen position. (a)
Version 1.18, 5-Sept-2000
- Worked around a bug that sometimes caused ImageJ to hang when quiting.
- Added the Plugins/Hot Keys/Remove command for uninstalling hot keys and plugins. (u)
- Fixed a bug that sometimes caused the "Y Max" and "Y Min" values in Edit/Options/Profile Plot Options to be reset. (t)
- Fixed a bug that sometimes caused another ImageJ applet window to open when the user switched to another Web page and then returned to the ImageJ applet page. (s)
- Added the Plugins/Hot Keys/Create Hot Key command for assigning keyboard shortcuts to menu commands. (r)
- The title of the plot window produced by Image/Stacks/Plot Z-axis Profile now includes the name of the orginal stack and location of the selection. (r)
- All 16-bit images are now unsigned. Imported signed images with negative pixel values are converted to unsigned by adding 32768. Use masking to access values in pixel arrays (e.g. int i=pixels[i]&0xFFFF). (p)
- Added the Plugins/Hot Keys/Install Plugin command that enables plugins to be installed in the File/Import and File/Save As submenus. Assign a function key by entering "f1"-"f12" in the dialog's "Shortcut" field. (o)
- Fixed a Analyze/Analyze Particles bug that was introduced in 1.18b. (k)
- Fixed a bug that caused Analyze/Measure to set the image's "changed" flag. (k)
- Fixed a bug in GenericDialog that caused it to work incorrectly if the dialog displayed a checkbox or message followed by a numeric field or text field. (j)
- The "Global" option in Analyze/Set Scale and Analyze/Calibrate now works more reliably. (j)
- Images created with File/New no longer inherit the spatial and density calibration of the current image. (j)
- Fixed a bug in ParticleAnalyzer when it's called by a plugin and asked to calculate perimeters. (i)
- Fixed a bug that sometimes caused multiple items in the Window menu to be checked. (i)
- With straight line selections, Image/Show Info now displays the starting and ending coordinates. (e)
- Analyze/Plot Profile now produces the expected reversed results when the same line is drawn in different directions. (e)
- File/Import/Raw settings are now saved in IJ_Prefs.txt. (e)
- Edit/Fill, Edit/Draw and Edit/Clear now work with 16-bit and float images that have min=max=0. (b)
- The ImageProcessor.drawString() method now works with 16-bit and float images. (b)
- Newly created unsigned 16-bit images are now initialized to 0 instead of 32768. (b)
- To prevent annoying pauses, images loaded from a URL, such as those in the File/Sample Images submenu, are now converted to an ImageProcessor before being displayed. (a)
Version 1.17, 22-June-2000
- The Object Tracker plugin now allows the min/max object size to be specified.
- Clicking "Apply" in the Image/Adjust/Threshold when the image is in the "B&W" mode no longer displays a dialog. (y)
- Replaced Plugins/IP Demo with Plugins/Panel, a window with buttons for executing plugins in the plugins folder. (y)
- Analyze/Analyze Line Graph now works with thresholded images. (y)
- Added the Batch Converter plugin for converting a folder of images to another format.
- Added the Display Updater plugin that sets an image's min and max displayed value. (w)
- Added a constructor to GenericDialog that doesn't require a parent frame. (w)
- Fixed a spatial calibration bug in Image/Adjust/Size . (w)
- Added the "Fluorescent Cells" sample image and removed "Peppers"
- Added the FFT plugin.
- Edit/Invert now works with 16-bit unsigned images. (t)
- Added the IJ.run() method so plugins and macro interpreters (e.g. BeanShell) can more easily run ImageJ menu commands. This method runs in the current thread and does not return until the command has finished. (s)
- Added the Text Demo plugin that demonstrates how plugins can add text to images. (s)
- Fixed a bug in ImageProcessor.drawString() that caused text larger than 12-points to not be displayed correctly. (s)
- The fitted line in Analyze/Fractals/Box Count is now displayed correctly. (r)
- Worked around a problem opening Spot Camera TIFF files. (r)
- Added the Plugins/Edit command for editing, compiling and running plugins. Requires a Java Virtual Machine(JVM) that includes the javac compiler, such as one of the JDKs from Sun or Apple's MRJ plus the Java Software Development Kit. Note that the JRE 1.1.8 distributed with the Windows version of ImageJ does not include javac. When using JDK 1.2 or JDK 1.3, the tools.jar file must be in the classpath. To include it, run ImageJ using a command something like
java -cp ij.jar;C:\jdk1.3\lib\tools.jar ij.ImageJ (o)
- All measurements are now stored in a ResultsTable that is available to plugins using Analyzer.getResultsTable().
- Added a plugin that draws arrows and removed the Plugs/Draw Arrow command. (o)
- Added a plugin that does convolutions on real images using user-defined kernels. (j)
- Added the Plugins/Compile and Run command. Like Plugins/Edit, it requires a JVM that inludes the javac compiler. (j)
- The plugins folder no longer needs to be in the classpath since plugins are now loaded using a custom class loader. (j)
- Spatial (e.g. pixels/mm) and density calibration data are now saved with TIFF images. (j)
- Analyze/Analyze Particles is now up to 27 times faster! (i)
- Updated the Image/Benchmarks/Particles benchmark results. (i)
- Added a plugin that illustrates how to extend ImageJ's Particle Analyzer. (g)
- The Analyze/Line Analyzer command now creates plots whose size is based on the size of the selection, not on the size of the curve being digitized. (f)
- Added the Analyze/Calibrate command for calibrating 8-bit images to density standards. (e)
- Added a "Standard Deviation" option to Image/Stacks/ZProject. (e)
Version 1.16, 8-May-2000
- Fixed a 1.15 bug that caused incorrect measurements of non-rectangular areas. (f)
- Added a method that displays an error message and returns true if the ImageJ version is less than the one specified in the argument. For example, if (IJ.versionLessThan("1.16c")) return. (c)
- Analyze/Fractals/Save XY Coordinates now saves the XY coordinates and pixel value of all non-background pixels . (b)
- With 8-bit stacks, Image/Stacks/Convert Stack to RGB now displays the RGB image in a new window. (a)
- Fixed a bug that caused status bar cursor y-coordinates to be incorrect when the Pixel Aspect Ratio in Analyze/Set Scale was not equal to 1.0. (a)
- Fixed a bug in Image/Stacks/Delete Slice that caused the slice selector to be positioned incorrectly. (a)
Version 1.15, 27-April-2000
- Fixed a bug in Image/Stacks/Delete Slice that resulted in a blank window title.
- On systems with JDK 1.2 or JDK 1.3 installed, you can now run ImageJ by double clicking on the ij.jar file. On Windows NT/2000, this method avoids the annoying DOS window.
- The ij.jar file is now compressed, reducing its size from 778K to 432K.
- The Primes plugin provides an example of how to process mouse moved interrupts. (z)
- All Analyze/Measure results now use spatial calibration defined using Analyze/Set Scale. (v)
- Analyze/Analyze Particles summary results are now reported in calibrated units such as mm^2. (v)
- Analyze/Analyze Line Graph now plots and saves coordinate data using calibrated units. (v)
- Fixed a bug that caused Analyze/Analyze Line Graph to corrupt the source image. (v)
- Fixed a bug that caused File/Open to not "see" some DICOM files. (v)
- Image/Stacks/Plot Z-axis Profile now displays all measurements specified in Analyze/Set Measurements.
- Added a plugin that reverses the order of the slices in a stack.
- Added a "Global" option to Analyze/Set Scale that causes all images to use the same spatial calibration.
- Double-clicking on the line tool displays the Analyze/Set Scale dialog.
- Double-clicking on the freehand outlining tool displays the Analyze/Set Measurements dialog.
- Analyze/Gels/Label Peaks now labels each peak with its area as a percent of the total area.
- Fixed a bug in Analyze/Gels that generated extra measurements when using the shift key shortcut to scroll.
- When it can't recognize the header format, File/Open now displays a dialog listing the supported image types (TIFF, JPEG, GIF, BMP, DICOM, FITS, PGM, ZIP or LUT). (m)
- When processing stacks, Image/Adjust/Size, Image/Crop and Image/Rotate/* are now better at showing progress. (l)
- Double-clicking on dropper tool displays the "Colors" window but doesn't switch tools. (k)
- The Image/Adjust/Threshold "Apply" option is now undoable. (h)
- The dropper in the toolbar is now outlined with a box drawn in the background color. (g)
- Alt-click in the Image/Colors window to set the background color. (g)
- "Apply" in Image/Adjust/Threshold now displays a dialog with options for setting thresholded pixels to the foreground color and non-thresholded pixels to the background color. (g)
- "Min & Max", "Centroid" and "Center of Mass" calculations now ignore non-thresholded pixels if "Limit to Threshold" is checked in Analyze/set Measurements. (g)
- Added File/Save As/ZIP for saving an image in TIFF format within a compressed ZIP archive and extended File/Open to read files created by this command. (f)
- Changed the labels in Process/Image Calculator to "Image1" and "Image2". For all operators, clicking "OK" now calculates image1=image1<op>image2. If "Create New Window" is checked, a new window is opened to store the result and "image1" is left unchanged. (f)
- Fixed a bug in Process/Image Calculator that sometimes caused the first stack slice to not be processed. (d)
- Multi-image tiff files with images that are not all the same size and type now open in separate windows. (c)
- Fixed a bug that caused pasting of images with Edit/Paste Control modes other than "Copy" to fail. (b)
- Changed the definition of "difference" in Process/Image Calculator from dst=(src-dst)/2+128 to dst=abs(src-dst). (b)
- Added a "Create New Window" option to Process/Image Calculator. (b)
- The "Apply" button in Image/Adjust/Threshold now works with stacks. (a)
Version 1.14, 23-Feb-00
- Fixed a v1.13 bug that caused Analyze/Analyze Particles to fail when "Perimeter" was checked in Analyze/Set Measurements . (c)
- Edit/Cut now fills with the same background color as Edit/Clear. The only way currently to change the background color is by editing the value of "bcolor" in IJ_Prefs.txt. (a)
- Added a "Bounding Rectangle" option to Analyze/Set Measurements. When this option is checked, the bounding rectangle of the selection is displayed using the headings "BX", "BY", "Width" and "Height". (a)
Version 1.13, 18-Feb-00
- With 16-bit and real images, Edit/Fill and Edit/Clear now fill with zero if the foreground or background color respectively is black, the images minimum pixel value is not less than zero and the LUT is not inverted. The background color can be set to black by changing the value of "bcolor" in IJ_Prefs.txt to #000000. (w)
- Added keyboard shortcut support for plugins. For examples, look at the entries for File/Open Samples/Blobs, Plugins/IP Demo and Plugins/Draw Arrow in
IJ_Props.txt. Note: you don't have to hold down the control key to use menu shortcuts. (u)
- Moved Image/Adjust Contrast and Image/Adjust Threshold to the new Image/Adjust submenu. (u)
- Fixed a bug that caused the middle point in lines generated by Analyze/Plot Profile and Image/Stacks/Reslice to be doubled. (t)
- Added to the Analyze/Analyze Particles dialog box, a field for setting the number of bins used in size distribution histograms, and "Display Summary", "Exclude Edge Particles" and "Clear Worksheet" check boxes. (t)
- Added to Edit/Options/Miscellaneous, a field for setting the number of bins used in histograms of 32-bit real images. (s)
- Edit/Draw and the crosshair tool now work with 16-bit and real images as long as the image's maximum pixel value is not equal to its minimum. (r)
- Double-click on the eyedropper tool to display the "Colors" window. (q)
- Added the crosshair tool for counting, measuring and marking points. Marks are drawn in the foreground color. Double-click on the crosshair tool to change the mark size. To not leave a mark, set the size to zero. (p)
- Analyze/Fractals/Box Count now plots log count vs. log box size and calculates the fractal dimension. (p)
- Added the Plugins/Do Curve Fitting command for fitting functions to data. (j)
- The Image/Stacks/Save Slices as Files dialog now allows the user to specify the file name prefix and number of digits. (h)
- Added a plugin for tracking one or two objects through a stack. (c)
- File/Import/All as Stack now uses a progress bar and no longer displays the file names in the status bar. (b)
- Fixed a v1.12 bug that caused the ImageJ applet to fail to load when using the Netscape browser. (a)
Version 1.12, 18-Jan-00
- Changed the name of the File/Open submenu to File/Open Samples. (z2)
- Changed the name of the File/Acquire submenu to File/Import. (z1)
- Removed DICOM, BMP and FITS from the File/Acquire submenu. These file types can be opened using the File/Open command. (z1)
- Keyboard focus in the File/Acquire/Raw dialog is now set to the first numeric field. (z1)
- Changed the name of the ij.properties file to
IJ_Props.txt. (y)
- User preferences are now saved in a text file named "IJ_Prefs.txt". This file is saved in the Preferences folder on the Mac, in the user's home directory on Unix, and in the ImageJ folder on Windows. The drawing color, roi color, default directory, jpeg quality and measurement options are currently saved. Two preferences that cannot be set in ImageJ, background color and size distribution bins, can be changed by editing IJ_Prefs.txt. (v)
- Removed the double quotes from the Image/Show Info text window's title bar. These quotes sometimes caused the Save As command in the text window popup menu to fail. (t)
- Added the "Limit to Threshold" checkbox to Analyze/Set Measurements. When this option is checked, only thresholded pixels are included in measurement calculations. (s)
- Added a link to Michael Abrmoff's volume rendering plugin.
- Fixed several text window scrolling and selection problems. (r)
- Process/Math/Gamma and Process/Math/Log now work correctly with 16 and 32-bit images. (n)
- The wand tool now works with thresholded images. (m)
- Image/Show Info now displays the threshold levels. (k)
- Fixed a bug in Process/Math that occured when canceling an operation on a stack. (k)
- Fixed a bug that caused problems when changing the data type of an image being manipulated by the Image/Adjust Contrast tool. (k)
- Lowered the default position of the ImageJ window by 32 pixels to avoid the MS Office task bar. (i)
- Updated Analyze/Analyze Particles to use the upper and lower threshold levels defined by the Image/Adjust Threshold and Image/Adjust Contrast tools. (h)
- Added the Image/Adjust Threshold tool for interactively separating features of interest from background. This is similar to "density slicing" in NIH Image. As a shortcut, type shift-T to activate this tool. This tool currently only works with 8-bit images. (h)
- In addition to TIFF, JPEG, GIF, DICOM, and FITS, File/Open and File/Acquire/All as Stack also now work with ACR/NEMA files. (g)
- File/Acquire/All as Stack and Image/Stacks/Save Slices as Files work more reliably when free memory is low. (f)
- Out of Memory messages should be less likely when processing stacks with Smooth, Sharpen or Find Edges. (f)
- The progress bar is now displayed correctly after the ImageJ window is resized or uncovered. (d)
- The x-axis labeling in profile plots. (d)
- Worked around a v1.10 and v1.11 flickering problem with someJVM's when Analyze/Analyze Particles was displaying a large number of measurements in the ImageJ window. (c)
- Worked around a scroll bar problem in v1.10 and v1.11 that showed up when running on the Mac and on some versions of the Microsoft JVM. (b)
- High filter processing rates are now reported in the status bar in millions of pixels per second. (b)
Version 1.11, 9-Dec-99
- Added y-axis labels to profile plots. (z)
- Fixed several bugs in Image/Stacks/ZProject. (w)
- Type converted images are marked as changed. (v)
- The window title bar is updated when an image is saved under a new name. (v)
- Pressing Enter (or Return) is now equivalent to clicking "OK" in most ImageJ dialog boxes. (u)
- Replaced the "Save..." button in the Analyze/Histogram window with "List", which lists the histogram values in the ImageJ window. (u)
- Image/Duplicate now displays a dialog allowing the title of the new window to be specified. Hold the alt key down to skip the dialog. (t)
- Added the Edit/Options/Divide by Zero command for specifying the value used by the Image Calculator when it detects divide by zero with 32-bit real images. (t)
- Updated the Keyboard Shortcuts Table.
- Added the Window/ImageJ command (shortcut=enter) for bringing the ImageJ window to the front. (s)
- Added the Analyze/Analyze Line Graph command for extracting coordinate data from scanned line graphs. It is similar to NIH Image's
Line Plot -> Data
macro. (r)
- Added a constructor to the PlotWindow class for generating XY line graphs. See ij/plugin/filter/LineGraphAnalyzer for an example. (r)
- With 32-bit float images, Analyze/Image Calculator now detects divide by zero and sets the result to Float.MAX_VALUE (3.4e38). (q)
- Process/Image Calculator will now optionally process entire stacks if the source and destination are stacks with the same number of slices or the source is a single image and the destination is a stack. (p)
- Conversion of 8-bit and 16-bit stacks to 32-bits is now supported. (p)
- For RGB images, Analyze/Histogram displays a luminance histogram instead of a histogram all red, green and blue values. This is the way it worked prior to v1.07. (n)
- Added a "List" button to profile plot windows that displays the XY coordinates in the ImageJ window. (n)
- Added the Image/Stacks/Plot Z-axis Profile command for plotting the ROI means of the slices in a stack. (m)
- Fixed a bug that, when quiting ImageJ, caused "cancel" in the save changes dialog for stacks to be ignored. (m)
- Fixed a bug in v1.10 that sometimes caused histogram min and max to be set to zero. (m)
- Fixed a bug, introduced in v1.07, that caused area measurements of RGB images to be three times too large. (m)
- Fixed a problem with text not being displayed in Histogram windows on Windows NT. (j)
- In Analyze/Set Scale, in addition to setting "Unit of Measurement" to "pixel" or "Distance in Pixels" to 0, you can now also disable spatial calibration by clearing the "Unit of Measurement" field.
- Added Edit/Clear Outside command for erasing everything outside the ROI. (f)
- Analyze/Gels/Label Peaks now displays in the ImageJ window the band sizes as a percentage of the size of the largest band. (e)
- Added an image autocorrelation plugin by Markus Hasselblatt.
- DICOM images, without a .dcm extension, and FITs images can now be opened using File/Open and File/Acquire/All As Stack. (c)
- Image/Show Info now displays the DICOM tags. (c)
- The "Apply" option in Image/Adjust Contrast, when working with a stack, now allows the user to choose between applying the LUT to the current slice or to the entire stack. (c)
- Fixed a v1.10 text selection problem. (c)
- Added YesNoCancelDialog class. (c)
Version 1.10, 8-Nov-99
- The histogram display in the Image/Adjust Contrast tool is now double buffered to prevent flicker. (u)
- Added a "Thresh" (threshold) button to the Image/Adjust Contrast tool. Use the brightness slider to adjust the threshold. Use the slider's arrows to make fine adjustments. (t)
- Extended the DicomViewer sample program to display the header information.
Chris Rorden's
DICOM page is a good place to get more information about the DICOM standard.
- The DICOM reader now reads files with "??" VRs. (s)
- Fixed a bug that caused RGB stacks to be read incorrectly. (q)
- Replaced (again!) the text panel in the ImageJ window with one based on the hGRID class.
The new text panel features unlimited size, resizable columns and a popup menu for saving to a
file or copying to the system clipboard. Right-click (command-click on the Mac) in the text panel
to access this menu. Measurement results can also be copied to the clipboard using
Edit/Copy or control-C (command-C on the Mac). Rows to be copied must first be
selected using the mouse or the popup menu. Shift-click to extend a selection. The number of
lines copied to the clipboard is displayed in the status bar. (p)
- Added the File/Save As/Measurements command for saving measurement results to a tab-delimited text file. (p)
- The arrow keys, with the alt key held down, now move the end of line selections. (p)
- Added center of mass measurement option that works with 8-bit and 16-bit images. The center of mass is the pixel value weighted average of all the x and y coordinates in the selection. (i)
- Added centroid measurement option. The centroid is calculated by averaging the x and y coordinates of all of the pixels in the selection. (h)
- Added perimeter measurement option. Perimeter is calculated using the same algorithm as NIH Image, where edge pixels are counted as one and corner pixels as square root of two. (h)
- Changed the name of Image/Get Info to Show Info. (h)
- Show Info now displays DICOM and FITS header information. (h)
- Multi-image DICOM files now open as a stack. (h)
- Analyze Particles can now be canceled using the esc key. (h)
- Fixed a bug in Analyze Particles that caused it to fail with images containing thousands of particles. (h)
- Added the Particles sample image, contributed by Katriona Lightbody. This 2000x1000 binary image containing 5097 particles is useful for stress testing and benchmarking Analyze Particles. (h)
Version 1.09, 19-Oct-99
- Replaced the text panel in the ImageJ window with an improved version based on the Viewer class by
Rene Grothmann. This version has no arbitrary size limit, supports color, and features a popup menu for saving the contents of the panel to a file or to the system clipboard. Right-click (command-click on the Mac) to access this menu.
- Moving small (less than 25x25) rectangular ROIs causes the pixel value to be displayed in the status bar. Can be used, in conjunction with the arrow keys, to inspect individual pixels.
- Added Analyze/Set Measurements to specify the values to be calculated and recorded by Analyze/Measure.
- Added a progress bar to File/Save As Jpeg.
- Default Jpeg compression quality increased from 50 to 75.
- Newly opened grayscale Jpegs are automatically converted to 8-bits.
- Added nine new sample images to the File/Open submenu.
- Added File/Aquire/As Text File for opening text files in read-only mode.
- Image/Rotate now use bilinear interpolation and rotates entire stacks.
- The Process/Math command was converted to a submenu.
- Image/Type now supports 16-bit to 32-bit and 32-bit to 16-bit conversions.
- Added a plugin that does MRI t2 calculations (s2 = k/ln(s1/s2)) on two images or stacks.
- Added plugins that load and save images in
Analyze, PNG, Pict, SPE, AHF and other formats.
- Process/Math/Log now works correctly for float images.
- ImagePlus.getProperties() now automatically constructs a property object instead of returning null.
- Added the TextWindow class that plugins (e.g. ij/plugin/System_Properties.java) can use to display text in a window.
- Added ImagePlus.startTiming() method so filter plugins (e.g. ij/plugin/filter/Rotator.java) can avoid having dialog open times including in the displayed processing time.
- Added OpenFile and SaveFile classes that plugins can use for opening and saving images. See the I/O plugins on the plugins page for examples.
- Added the ImagePlus.setProperty(String,Object) method.
Version 1.08, 21-Sept-99
- Added the Image/Stacks/Reslice and Image/Stacks/ZProject commands. Descriptions of these commands are in the
online manual.
They were contributed by
Patrick Kelly and Harvey Karten of the University of California, San Diego.
- Added a bilinear interpolation option to the Image/Scale and Image/Transformations/Resize commands.
- Added the Process/Repeat Command command for repeating the previous command. Note that the Undo and Close are ignored.
- Added a batch file to the Windows distribution for running ImageJ using Microsoft'sJava. It contains the single command "jview /cp ij.jar;plugins ij.ImageJ".
- Added the ImageProcessor.setInterpolate(boolean) method.
- Added the ImagePlus.show(String) method for displaying an image in a window with a message in the status bar. The ZProject and Reslice commands use this method to display the processing time.
- Fixed a rounding bug that caused Image/Scale and Image/Transformations/Resize to work incorrectly along the edge of images with an odd width or odd height.
Version 1.07, 3-Aug-99
- File/Save As/Tiff and File/Save As/Raw Data now support RGB and float stacks.
- Added a plugin (RGB_Stack_Merge.java) for merging three 8-bit stacks into one RGB stack.
- Added support for 8-bit indexed color to grayscale stack conversions.
- Added the Image/Stacks/Make Montage command for creating a composite image from the slices in a stack.
- Released a Mac 1.07 version that adds the File/Acquire/Video command for capturing images from QuickTime compatible video sources. Requires QuickTime for Java, a QuickTime 4.0 custom install. QT 4.0 is not required, but you have to use the QT 4.0 installer to install QT for Java (do a custom install).
- Process/Equalize now works much better thanks to an improved histogram equalization algorithm contributed by Richard Kirk that uses the square root of the histogram values. Process/Equalize also now works with 16-bit images. Hold down the alt key use the standard histogram equalization algorithm.
- Removed the Process/Enhance Contrast command. As a substitute, use Process/Equalize or the "Auto" button in the Image/Adjust Contrast window. The "Auto" button has the advantage of not altering the pixel values except for RGB images.
- Added Process/Repeat, which repeats the previous command.
- File/New can now create unsigned 16-bit images.
- For RGB images, Analyze/Histogram now displays the histogram of all red, green and blue values. Previously it displayed a luminance histogram.
- Clicking on an image's close box now invokes the File/Close command, which runs as a separate thread, instead of closing the image in the event queue thread. This should make exceptions and thread deadlocks less likely.
- Changed the title of the IJ.error() dialog from "Error" to "ImageJ".
- Changed the argument of the ImageProcessor.applyTable method from byte[] to int[] so it can be used with 16-bit images.
- The ImageWriter class now writes short and float images using little-endian byte order if FileInfo.intelByteOrder is set true.
- For stacks, ImagePlus.getFileInfo() now sets FileInfo.pixels to an array of images.
- The ImageProcessor.getHistogram method now works with 16-bit images.
- Added IJ.altKeyDown method for determining if the alt key is down.
- Added the ImageProcessor.drawString method for drawing text on images. Use moveTo(x,y) to specify the position and getStringWidth() to determine how many pixels will be required to draw the text.
- Fixed a recently introduced bug that caused File/Acquire/Raw to not work with RGB images.
- Fixed a bug that sometimes caused the the slice selector to become invalid when converting a stack to a different data type.
Version 1.06, 2-July-99
- Plugins in the plugins folder are no longer loaded using a custom class loader. Consequently, the plugins folder must be in the classpath. This change fixes a bug that caused static variables in plugins to be reset.
Version 1.05, 1-July-99
- The Image/Stacks/Convert Stack to RGB command now works with 16-bit stacks.
- Conversion of 16-bit stacks, real stacks and RGB stacks to 8-bit grayscale is now supported.
- Added "Add Slice", "Delete Slice" and "Convert Images to Stack" commands to the Image/Stacks submenu.
- Added the File/Acquire/Text command for opening tab-delimited text files as real images.
- Values displayed in histograms of real images are now better formatted.
- Analyze/Gels/Plot Lanes now displays large plots in an enlarged window zoomed 1:1.
- Added the Analyze/Gels/Label Peaks command.
- The Gel Analyzer now converts pixel values to uncalibrated OD before plotting the lanes. It also adds half the perimeter to the peak area to compensate for the area under the boundary line.
- A 3-point running average is now used to measure freehand line lengths.
- ImageJ now looks for the plugins folder in the folder containing ij.properties. Previous versions expected it to be in "user.dir".
- Added the Image/Color Tables/Invert LUT command for inverting the lookup table. Inverted LUTs display zero pixels as white instead of black. Unlike Edit/Invert, Invert Lut does not alter the pixel data.
- Roi outlines are no longer limited to 5000 points.
- Edit/Draw now works with oval selections.
- The display is now updated correctly after using Edit/Draw with a line width greater than one.
- Added the createImagePlus method to ImagePlus for creating new ImagePlus objects that have the attributes, such as spatial scale, of the parent.
- Added the hide method to ImagePlus. Use hide() to close an ImagePlus' window and show() to open it.
- Added constructors to ShortProcessor and FloatProcessor for creating blank images. The ShortProcessor constructor has a boolean argument used to specify signed or unsigned.
- Added the invertLut method to ImageProcessor. Inverted Luts display zero pixels as white.
- Image/Stacks/Convert Stack to RGB is working again (It broke in v1.03).
- The File/Acquire/LUT command is working again.
- Fixed a bug that caused brightness and contrast modifications to be lost after using Image/Crop, Image/Duplicate or Image/Transformations/Resize on a 16-bit or 32-bit image or stack.
- Fixed a bug that caused spatial calibration to be lost after using Image/Crop or Image/Transformations/Resize.
- Fixed a bug that caused the lineTo() method of ImageProcessor to not draw the end pixel.
Version 1.04, 13-May-99
- Added a "Difference" operator (dst = (dst-src)/2+128) to the Process/Image Calculator and Edit/Paste Control.
- Fixed a bug, introduces in v1.02, that caused profile plots of straight line selections to be incorrect.
- Fixed a bug that caused the "Subtract" operator in Process/Image Calculator and Edit/Paste Control to produce incorrect results.
Version 1.03, 6-May-99
- Added a flush() method to the ImagePlus class that sets the pixel arrays to null, making it more likely that the garbage collector will reclaim memory when images are closed.
- The "Apply" button in the contrast/brightness control now processes every slice in a stack, with the exception of RGB and HSB stacks.
- The standalone Windows version now comes as a self-extracting zip archive and includes JRE 1.1.8.
- Worked around a null cursor bug with JDK 1.1.8.
- Fixed a bug, introduced in V1.02, that caused conversions to RGB and HSB stacks to fail.
- Fixed a Windows NT specific bug that caused values typed in the File/Acquire/Raw dialog to be read incorrectly.
Version 1.02, 4-May-99
- Added the Acquire/Twain command for acquiring images from TWAIN sources (scanners, digital cameras, frame grabbers). Requires that the "twain.jar" and "JavaTwain32.dll" files from the Java Twain Package at http://internet.sk/gnome/ be moved to the ImageJ folder.
- Added the Process/Morphology submenu with Erode, Dilate, Open, Close, Outline and Skeletonize commands.
- Added the Process/Shadows submenu with commands for producing shadow effects. Includes a nifty demo that shows off the speed of the 3x3 convolution routine contributed by Glynne Casteel.
- Added the Process/Noise submenu, moved to it the "Add Noise" and Despeckle commands, and added "More Noise" and "Salt and Pepper" commands.
- Added the Save As/Text command for saving images as tab-delimited text files.
- 8-bit images can now be pasted into RGB images.
- Profile plots of irregular line selections are now supported.
- The Smooth and Sharpen commands now work with 32-bit floating-point images.
- Fixed several bugs relating to 16-bit unsigned images.
- Fixed a Windows NT specific bug that caused values typed in the Image/Scale dialog to be read incorrectly.
Version 1.01, 25-March-99
- Plug-ins placed in a folder named "plugins" are now automatically installed in the PlugIns menu. The folder distributed with ImageJ contains source code for two example plug-ins.
- The applet version of ImageJ now downloads as a JAR (Java ARchive) file. It is now slower to start up but the annoying class file downloading delays are gone.
- Added the Image>Crop command, which works with all data types and with stacks. Note that there is no Undo available for operations on stacks.
- Dialog boxes are now centered on the screen.
- The Rotate Right, Rotate Left and Resize commands now work with 16-bit and 32-bit grayscale images, and with stacks.
- The Cut, Copy, Paste and Enhance Contrast commands now work with 16-bit and 32-bit grayscale images.
- Added the "3-3-2 RGB" LUT to the Image>Color Tables sub-menu. This palette uses 3-bits for red, 3-bits for green, and 2-bits for blue.
- Moved the benchmark commands from the PlugIns menu to the Image>Benchmarks sub-menu.
- Added methods to the FileSaver class for saving as tiff, gif, jpeg or raw using a file path.
- Removed the RGBA and HSB public constants from the ImagePlus class.
- Added isRGBA() and isHSB() methods to the ImageStack class.
- Fixed a bug with the "Pixel Aspect Ratio" option in the Analyze>Set Scale dialog.
- Fixed a masking bug that caused operations on non-rectangular ROIs to fail on some UNIX systems.
Version 0.99, 2-March-99
- Added the Image>Stack>Save Slices as Files command for saving a stack as separate tiff, gif, jpeg or raw files.
- On the Macintosh, the menu bar no longer disappears when image windows are active.
- Added the "Spectrum" LUT to the Image>Color Tables sub-menu.
- Added the Image>Stacks:Convert Stack to RGB command for converting a 3 or 4-slice stack to a color image.
- The File>Acquire>All as Stack command now sorts the file list to guarantee that images are loaded into the stack in alphabetical order.
- The Image>Scale and Image>Transformations>Resize commands now work with 16-bit images.
- Fixed a problem with the 16-bit version Process>Sharpen.
Version 0.98, 2-February-99
- The Image>Colors window no longer requires a network connection and colors can be "picked up" without switching to the eyedropper tool.
- The spatial scale in TIFF and DICOM headers is now used.
- Added the "Analyze>Set Scale" command for setting the spatial scale.
- Added the "Image>Stacks>Set Speed" command for changing the stack animation speed. The default is 10 fps.
- When opening a TIFF file, and ImageJ is in debug mode, the TIFF tags are dumped to the ImageJ window.
- Added the "File>Page Setup" dialog for specifying the printer scaling (5-500%) and whether or not the image is centered on the page, has a border and/or a title.
- Images are now printed centered, with a border, and are scaled to fit the page.
- Added the Image>Color Tables sub-menu for applying color lookup tables to grayscale images to produce false-color images. If no image is open, a 256x32 ramp image is created to display the color table.
- Added an "Open All" option to the Import dialog.
- Added the "File>Acquire>Open All As Stack" command for opening all the image files in a folder as a stack. The images must all be the same size and type (8-bit, 16-bit or RGB). The images can be in tiff, gif, jpeg or bmp format.
- When closing a stack, the references to the raster data are set to null so the memory used by the stack is more likely to be reclaimed.
- The Adjust Contrast plug-in no longer prevents closed images from being garbage collected.
- The IP Demo plug-in now runs commands in a separate thread and no longer prevents closed images from being garbage collected.
- Changed the name of the getTitle method in ImageStack to getSliceLabel.
- Added the setColorModel methed to the ImageProcessor class.
- Changed the name of the Info class to IJ.
- Added the static IJ.runPlugIn method that runs a plug-in and returns a reference to it.
- Changed the name of the getImageJ method in IJ to getInstance.
- Changed the name of the getLUT method in ImagePlus to createLUT.
- Edit>Draw now works with rectangular ROIs created by a paste operation.
- Fixed a thread synchronization bug that could sometimes cause ImageJ to hang.
- Fixed a bug that caused the File>Quit command to sometimes fail when running ImageJ under JDK 1.2.
Version 0.97, 11-December-98
- Updated the "Waves" benchmark results for the released version of JDK 1.2. Vote for bug 4185726 if you want to see image display speeded up in JDK 1.2.
- Added a "16-bit Unsigned" option to the File/Acquire/Raw dialog. Selecting this option causes ImageJ to subtract 32768 from each pixel value before creating a ShortProcessor to contain the image. Methods in ShortProcessor that return pixel values (getPixelValue, getMin, getMax, etc.) then add back the 32768.
- The new MemoryMonitor plug-in continuously plots ImageJ's memory utilization. Hold down the alt/option key to use a 640x480 window and display the frame rate, simulating video acquisition. Click on the status bar in the ImageJ window to force the JVM to do garbage collection.
- The class files for the stand alone Windows version are now packaged as a JAR file.
- The stand alone Windows version no longer uses a minimized console window.
- Upgraded the Java runtime bundled with the stand alone Windows version to JRE 1.1.7B, which seems to have fixed a problem with exporting text to the system clipboard.
- The "fps" display in the "Waves" plug-in now works with zoomed images.
- The List System Properties plug-in now displays the name of the JIT compiler (java.compiler).
- The "Test Display Speed" plug-in can now be aborted by pressing the esc key.
- Plug-in can now have "about boxes". See the source for the Invert, MemoryMonitor or Waves plug-ins for examples.
- The Plot Profile command, for rectangular selections, now averages horizontally if the alt/option key is down.
- Added the Edit/Options/Profile Plot Options command for fixing the y-axis scale in profile plots.
- The "Memory: xxxxK" message shown when clicking in the status bar no longer displays the free heap space.
- File/Acquire/Raw handles out of memory situations better.
- Fixed a bug that caused some tiff files to be displayed with inverted pixels.
- Fixed a bug that caused a null pointer exception when using Plot Profile with no current selection.
- Fixed a bug that could cause a null pointer exception when using the Rotate 90 Degrees Right/Left commands.
Version 0.96, 23-November-98
- Made the ImageJ window slightly wider so lines displayed by the Measurement command are less likely to be split.
- Added a constructor to the ImagePlus class for creating an ImagePlus given an ImageProcessor.
- Changed the order of the arguments in the ShortProcessor and FloatProcessor constructors to be consistent with the ByteProcessor and ColorProcessor constructors.
- Fixed a thread synchronization bug that could sometimes cause ImageJ to hang when closing a window.
- Fixed a bug that caused the drawing color of 8-bit images to be set to 254 instead of 255.
- Fixed a bug that caused a null pointer exception when clicking on a 16-bit or 32-bit image with the dropper tool.
Version 0.95, 19-November-98
- The Plug-Ins/"Show Display Speeds" command was updated to include results for JDK 1.2. The results show that the crucial drawImage method is up to 22 times slower compared to JDK 1.1.7. To encourage Sun to fix this problem, vote for bug 4185726 ("JDK 1.2rc1 drawImage very slow (50% slower) compared to JDK 1.1.7") on the Bug Parade. ImageJ is not going to run well under JDK 1.2 until this problem is fixed.
- Added the "Waves" plug-in that continuously applies a sine wave to the x-coordinates of an image. Click on the image or press the escape key to stop. This plug-in is useful as a benchmark (it displays the frame rate), as a way to demonstrate ImageJ's multi-tasking ability, and as an example of a plug-in that processes both 8-bit and RGB images.
- Added a "Transformations" sub-menu to the Image menu and moved the "Flip Vertical" and "Flip Horizontal" commands into it.
- Added the "Rescale" command to the Transformations sub-menu for scaling an image to a specified width and height.
- Added commands to rotate an image 90 degrees left or right to the Transformations sub-menu.
- The "Show Benchmark Times" and "Show Display Speeds" commands no longer require that an image be open.
- Stack animation is now much faster.
- The slice selection scroll bar in stack windows now works more reliably.
- The Invert, Smooth, Find Edges, Add Noise, Despeckle and Threshold commands now operate on all the slices of a stack.
- The Reduce Noise command, a median filter, was renamed Despeckle.
- Added a public "running" flag to the ImageWindow class. Plug-ins can use this flag to terminate themselves when the user clicks on the image or presses the escape key. See /ij/plugin/filter/Waves.java for an example.
- Improved the interface used by plug-in filters. Filters must now implement the PlugInFilter interface and be in the the ij.plugin.filter package. They must also provide a setup method that ImageJ will call to determine the filters capabilities. See ij/plugin/filter/PlugInFilter.java for more information and ij/plugin/filter/Invert.java for an example.
- Added the GenericDialog class that plug-in can use to acquire multipler numeric parameters. See /ij/plugin/filter/Resizer.java for an example of how to use this new class.
- The lock method in ImagePlus beeps and displays a status bar message if the image is already locked.
- The reserve and unreserve methods in the ImagePlus class were renamed lock and unlock.
Version 0.94, 21-October-98
- The File/Acquire/Raw command no longer generates extra blank slices at the end of the stack when more than the actual number of images is specified.
- Added a "Gap Between Images" field to the File/Acquire/Raw dialog box. This allows import of multi-image files with gaps between the images (e.g. uncompressed 8-bit AVI movies with a 4104 byte header and a gap of 8). Set the gap to (n-1)*width*height*2*real-gap to read every nth frame in a movie.
- Changes to RGB images made using the Image/Adjust Contrast command are now be limited to the interior of non-rectangular selections.
- The Process/Math command now works correctly with non-rectangular selections.
- The Open... command now opens BMP files with names ending in ".bmp".
- Added a command to the Save As sub-menu for saving images in JPEG format. It uses the JPEG encoder from http://www.obrador.com. Use the Edit/JPEG Quality command to specify the compression level.
- The wand tool now more reliably traces areas defined by a one pixel wide boundary line.
Version 0.93, 7-October-98
- Added a constructor to the GifEncoder class for saving 8-bit AWT images.
- Added the Edit/Fonts command for specifying the font, font size and font style. For a shortcut, double-click on the Text tool in the tool bar.
- Double-clicking in the tool bar on any of the three line selection tools now brings up the set line width dialog.
- Added a "Colors..." command to the Image menu. It downloads and displays an image that can be used, in conjunction with the dropper tool, to set the drawing color. Note that holding down the alt (option) key temporarily switches to the dropper tool.
- Moved the Draw Arrow command from the PlugIns menu to the Edit menu.
- Moved the Draw Arrow command from the PlugIns menu to the Edit menu.
- Moved the Adjust Contrast command from the PlugIns menu to the Image menu.
- The Fill and Clear commands now require a selection.
- The Save As, Acquire/BMP and Acquire/Raw commands now "remember" the previously used directory.
- Worked around a JDK 1.1.7 related bug that caused a null pointer exception when using ImageJ's GetNumberDialog or GetStringDialog classes.
- Worked around a JDK 1.1.7 related bug that caused ImageJ to lock up when opening an 8-bit image.
Version 0.92, 28-September-98
- Fixed several bugs in "Adjust Contrast".
- Added an "Hist." button to "Ajust Contrast" that generates a histogram and combines it with the LUT plot.
- Added an "Apply" button to "Ajust Contrast" that, for 8-bit images, makes brightness and contrast changes permanent.
- When running as an applet, the first time a command is executed, a progress bar is displayed as class files downloaded.
- The 16-bit sample image "M51 Galaxy" now displays correctly.
- Fixed a bug the that caused 16 and 32-bit images loaded over the network to become corrupted.
- It's now possible to move text selections using the arrow keys.
- Fixed a bug that could cause null pointer exceptions when generating line profiles.
Version 0.91, 21-September-98
- New downloadable versions for Mac OS, Windows and UNIX are available.
- Increased the maximum heap size of the stand alone Windows version from 16MB to 64MB.
- Updated the API documention.
Version 0.90, 17-September-98
- Worked around a bug in Sun's JDK/JRE 1.1.6 that caused the main ImageJ window to be too large.
- Saved gif files now reflect changes made in the Adjust Contrast window.
- Look-up table plots generated by Analyze/Show LUT now reflect changes made in the Adjust Contrast window.
- Measurement results displayed in the ImageJ window are now formatted better.
- Stacks are no longer limited to 100 slices.
- Added "Next Slice" and "Previous Slice" commands to the Stacks sub-menu. Use the ">" and " Added a line of text to the top of each image window that displays current slice/total slices (stacks only), width, height, type and memory size.
Version 0.89, 16-September-98
- Added a text (annotation) tool. Use it to create a text rectangle, type some text, then use Edit/Draw to add the text to the Image. To draw the text on a white background, use Edit/Clear prior to Edit/Draw. To change the font size, use Edit/Font Size or double-click on the text tool. There is currently no way to select a different font or style. Text rectangles are currently limited to one line.
- Added a Draw command to the pop-up menu. To use this menu, right-click on an image (option-click on the Mac).
- Fixed a bug that sometimes caused operations on non-rectangular regions in stacks to fail.
- Fixed a bug that could result in multiple checked items in the Type sub-menu after an attempt to do an unsupported conversion.
- Fixed a bug that caused images larger than the screen (e.g. a 1024x1024 image on a 640x480 screen) to be displayed incorrectly after conversion to RGBA or HSB.
- Fixed a bug that could cause null pointer exceptions when generating histograms.
- Fixed a bug that caused the line width to be set to one if "Cancel" was clicked in the Edit/Line Width dialog box.
Version 0.88, 8-September-98
- Worked around a bug in SUN's JVM for Windows that could cause ImageJ to lock up when closing a window with changes.
- Updated "Plug-Ins/Show Benchmark Times" to include results for Apple's MRJ 2.1ea2.
- Fixed a bug that could cause images to become permanently locked when memory was low.
- Fixed a minor bug in the Image/Scale command. To see the bug in action, use Acquire/URL to load the image http://rsbweb.nih.gov/~wayne/ij/images/dots.gif, and then use Image/Scale to scale it by 2.
- When switching slices (channels) in RGBA or HSB stacks, the slice name ("red", "green", "blue", "hue", "saturation" or "brightness") is now displayed in the status bar.
- Removed the Image/Channel sub-menu.
Version 0.87, 20-August-98
- Fixed several problems that caused Edit/Draw and Edit/Fill to use incorrect colors with in 8-bit images.
- Hold down the alt (option) key to temporarily switch to the hand (panning) tool.
- Alt-click (option-click) on an image with any tool except the magnifying glass to "pick up" a new drawing color. This is a shortcut for switching to the dropper tool, clicking on the image to select a drawing color, and then switching back to the original tool.
- The Plug-Ins menu has a new command that tests to see how fast the JVM can draw images to the screen.
Version 0.86, 2-July-98
- The Benchmark plug-in has a new option that displays more times.
- Images now display much faster when running under MRJ (MacOS Runtime for Java).
- Lines rendered using the Draw command are now aligned better with the yellow ROI selection.
- Worked around a problem with some versions of MRJ and Internet Explorer that caused ImageJ windows to be displayed under the the Mac menu bar.
- Fixed another problem with the Draw command.
Version 0.85, 22-June-98
- Released new standalone versions for Mac OS8 and Windows. Reverted back to using JRE 1.1.5 with the Windows version because JRE 1.1.6 has a bug that causes ImageJ to hang when quiting with unsaved windows.
- The Draw command works again.
- Fixed a null pointer exception error (introduced in 0.83) that followed the "There are no Images open." dialog.
Version 0.84, 19-June-98
- New stand alone versions for Mac OS8 and Windows are available. The Mac version include source code and a Metrowerks CodeWarrior project file. The Windows version includes the source and Java Runtime Environment (JRE) 1.1.6. There is also a much smaller ZIP file containing the class files and source but not the JRE.
- Updated the API documentation.
Version 0.83, 18-June-98
- Stacks can now be saved as tiff files.
- 8-bit multi-image tiff files open as stacks if the images are all the same size.
- The File/New command will now create 8-bit stacks.
- Added an Image/Stacks submenu with commands to start/stop stack animation.
- The Image/GetInfo command now displays "(inverted LUT)" for images with inverted look-up tables and, for stacks, displays the current slice number.
- Fixed a bug that caused Edit/Clear to erase to black instead of white for images with inverted LUTs.
- Added buttons to histogram windows that allow histogram values to be saved to a text file or copied to the system clipboard.
- Fixed a bug that sometimes caused an array bounds exceptions when generating histograms of 32-bit real images.
Version 0.82, 5-June-98
- "Adjust Contrast" now changes the brightness and contrast of 8-bit images by updating the image's look-up table rather than its pixel values. This is particularly nice when working with stacks since brightness and contrast changes apply to all the slices in the stack.
- Added two sample stacks to the Open menu. "MRI Stack" is a 3D MRI head scan consisting of 27 186x226 axial slices and "Scala Media Stack" is a 36 frame 3D movie of the scala media volume within the cochlea of the moustached bat.
- Three of the larger sample images (Boats, Bridge and Gel) now download more reliably as a result of being converted from gifs to tiffs.
- The FileOpener class now supports URLs and can open 8-bit stacks.
- Acquire/Raw can now import multi-image 8-bit files.
- Windows with multiple images (stacks) now have a scrollbar for selecting the image to be displayed. To see how this works, convert a color image to ARGB (alpha, red, green, blue) or to HSB (hue, saturation, brightness).
Version 0.81, 14-May-98
- Improved the DICOM plug-in so it now opens some aberrant GE MRI scans.
- Copying text from the ImageJ window to the Clipboard now works more reliably.
- Measurement results displayed in the ImageJ window are now tab-delimited so they can be easily pasted into a spreadsheet.
- Moved the buttons in the profile plot window from the right side of the window to the bottom.
- Fixed a problem with the "Copy" (to Clipboard) option in the profile plot window.
- Moved the "Save XY Coordinates" and "Fractal Box Counter" plug-ins from the Plug-ins menu to the new Process/Fractals submenu.
- The "Fractal Box Counter" now allows you to specify the box sizes and the results are now tab-delimited.
Version 0.80, 11-May-98
- The run() method plug-ins are required to implement is now passed a String instead of an ImagePlus. Plug-ins that need an ImagePlus object can call WindowManager.getCurrentImage(). One plug-in that used this new feature is URLOpener, which ImageJ uses to open the sample images in the Open submenu.
- Changed the name of the URL plug-in to URLOpener.
- The Acquire/Raw and Math commands now "remember" the popup menu selection.
- Added a 16-bit image of the M51 galaxy to the Open submenu. As an exercise, try using Adjust Contrast to bring out detail in the galaxy. One useful trick is to select a region of interest and click on the "Auto" button.
- Zoomed images now expand to fill the window as the window is enlarged.
Version 0.79, 1-May-98
- Resize rectangular selections by clicking and dragging the little box in the lower right corner.
- Resize rectangular and oval selections by holding down the the option (alt) key and using the arrow keys.
- Added a "Save Changes" dialog that is displayed when closing windows or quitting.
- The Save command is now an alias for "Save as Tiff..." instead of "Save as Gif...".
Version 0.78, 21-Apr-98
- The "Adjust Contrast" plug-in is now multi-threaded to provide a more responsive user interface.
- Added the wand tool. This tool automatically selects image areas with identical pixel values.
- Fixed a problem with the interactive display of pixel values of zoomed RGB images.
- Double-clicking in the toolbar now works more reliably. Currently you can double-click on the line tool to set the line width and on the zoom tool to unzoom.
Version 0.77, 3-Apr-98
- Added a plug-in (Acquire/URL) for opening GIF and JPEG images using a URL.
- Added a class (GetStringDialog) that prompts the user for a string.
- Converted the MessageDialog, MessageWithCancelDialog and GetNumberDialog classes to the Java 1.1 event model.
- Added Select All and Select None commands.
- Moved the Restore Selection command to the Edit menu and renamed it Restore Selection.
- Profile plots are now larger for larger selections.
- Added buttons to profile plots windows that allow the plot data to be saved to a text file or copied to the system clipboard.
- Updated the API documentation.
Version 0.76, 31-Mar-98
- Added a plug-in for displaying 8, 16 and 32-bit FITS (Flexible Image Transport System) images.
- Fixed a problem with ROI histograms of 16 and 32-bit grayscale images.
- Fixed several image zooming and scrolling problems.
- Added a plug-in for drawing arrows.
- White (255,255,255) backgrounds are no longer changed to (248,248,248) when converting from RGB to 8-bit color.
- File extensions are automatically changed when saving images in a different format.
- Added a plug-in for adjusting the brightness and contrast and of all supported image types.
Version 0.75, 17-Mar-98
- Fixed an array bounds exception bug when using Enhance Contrast or Threshold with non-rectangular selections.
- Fixed a bug that allowed freehand ROIs to extend beyond the left or top edge of the image.
- Added a plug-in for displaying DICOM images. DICOM (Digital Imaging and Communications in Medicine) is an image file format widely used in the medical imaging community.
- The DICOM plug-in dumps the DICOM tags (group, element, length, explicit VR) if debugging is enabled.
- Added a plug-in for displaying uncompressed BMP images.
- Added Acquire submenu for acquisition plug-ins such as the new DICOM and BMP plug-ins.
- Changed Import command to a plug-in and moved it to the Acquire submenu.
Version 0.74, 9-Mar-98
- Three tools were added for creating straight, segmented and freehand line selections. Use the Draw command to draw the line. Use Measure to measure its length. Use Plot Profile to plot the pixel values along a straight line selection. To measure an angle, create a two-segment line selection and use the Measure command. Use the arrow keys to move line selections one pixel at a time.
- A server bug was fixed that sometimes caused larger demo images such as "Boats" and "Bridge" to be downloaded incorrectly.
- The status bar was moved to the top of the "ImageJ" window.
- The new eyedropper tool "picks up" colors from image windows for use by the Draw and Fill commands.
- A working JIT compiler is included with the standalone Win32 version.
Version 0.73, 2-Mar-98
- The Open command dumps TIFF tags to the Java console if debugging is enabled.
- The "Lena" benchmark example times were updated.
- The new "Draw" command outlines the ROI using the current color and line width. Note that this doesn't work yet with oval ROIs and there is currently no way to set the color.
- Use the new "Line Width..." command, or double-click on the line tool, to set the line width.
Version 0.72, 24-Feb-98
- Keyboard shortcuts (without command or control) now work when the ImageJ window is active.
- The "click on status bar to display memory used" feature works more reliably.
- The ImageJ and IP_Demo classes were converted to the Java 1.1 event model.
- Potential thread deadlock problem with the "IP Demo" plug-in fixed.
- The "IP Demo" plug-in works with multiple images.
- You can now quit the "IP Demo" plug-in by clicking on its close box.
Version 0.71, 19-Feb-98
- The "Save as Gif..." command now uses the GifEncoder class by Jef Poskanzer(http://www.acme.com). This GifEncoder is more reliable than the one previously used and it adds support for interlaced and transparent GIFs, although these features are currently not supported by ImageJ.
- Added a simple example plug-in (Prototype PlugIn) that inverts grayscale images.
- The ImageJ source code was divided into five packages: imagej, imagej.gui, imagej.process, imagej.io, and imagej.plugin.
- The API documentation was updated.
Version 0.70, 10-Feb-98
- The New command now has a dialog box for specifing the name, size and content of newly created images.
- The ImageWindow, ImageCanvas and ImportDialog classes were converted to the Java 1.1 event model.
Version 0.63, 4-Feb-98
- Support was added for cut, copy and paste of rectangular image selections. Support is limited to ImageJ's internal clipboard. Images cannot be copied to or from other programs.
- Image windows now have a popup menu accessed using control-click on the Mac and right-click on PCs. This menu can be customized by editing the ij.properties file.
- Keyboard shortcuts work without holding down the control key when an image window is active.
- Use the keys "1" through "4" to switch image channels.
- When switching channels, the channel name ("Red", "Hue", etc.) is displayed in the status bar.
Version 0.62, 30-Jan-98
- "Clear" now erases to white and "Fill" fills with black on images with inverted look-up tables.
- ROI outlines are now more precisely drawn on magnified images whose width or height is not evenly dividable by the magnification factor.
- A bug, introduced in v0.56, was fixed that prevented memory from being reclaimed when closing the last remaining image window.
- A bug was fixed that prevented ROI outlines from being moved all the way to the right or bottom edge of an image.
- A bug was fixed that caused operations to fail on images that had been duplicated using the Duplicate command.
Version 0.61, 28-Jan-98
- A plug-in was added that uses the "box counting" method to make measurements that allows one to calculate the fractal dimension of an object.
- Text displayed in the ImageJ window can be selected and copied to the system clipboard. Note that this may not work when ImageJ is running as an applet due to security restrictions.
- Stack traces due to run-time exceptions are now displayed in the ImageJ window.
- Run-time exceptions such as array bounds errors no longer leave the active image in a locked state.
Version 0.60, 21-Jan-98
- The file open dialog box is now more likely to "remembers" the directory.
- The window title is used as the default file name in the "Save as" dialog box.
- Scrolling tool (looks like a hand) added.
- Use function keys to select tools.
- Values displayed by the Measure command are rounded and better formatted.
Version 0.59, 13-Jan-98
- ImageJ now requires a Java 1.1 virtual machine such as Sun's JDK 1.1.x, Netscape Navigator 4 with the
JDK 1.1 patch (PC only), Internet Explorer 4 (Mac and PC), or MacOS Runtime for Java 2.0.
- Horizontal scrollbar in ImageJ window is never used.
- Keyboard shortcuts are shown in menus.
- "Print" command added.
- Zoom magnifications less than one are now supported.
- "About..." command moved to standard help menu on Macs.
- Integer pixel values now displayed in status bar without decimal points.
- A number formating problem in the Rotate dialog box was fixed.
- Status bar messages are now displayed using 12-point "SansSerif" font.
- New image windows are positioned slightly offset from the previous window.
- Images larger than the screen are scaled to fit.
- Image windows increase/decrease in size as needed when zooming.
Version 0.58, 22-Dec-97
- Six more sample images were added.
- The location and names of the sample images are now read from a file named ij.properties.
- A plug-in was added that saves to a text file the x,y coordinates of black pixels in binary images.
- A plug-in was added that displays the Java system properties.
- The progress bar has a new 3D look.
- Attempts to filter 8-bit indexed color images cause an error message to be displayed.
Version 0.57, 4-Dec-97
- "Window" menu added.
- Keyboard shortcuts work more reliably.
- The RGB to 8-bit color conversion dialog is now dismissed more quickly..
- Keyboard shorcuts added for Enhance Contrast (Shift^E) and Threshold (Shift^T)
- The revert command now works with images opened using Open... and with imported raw images.
Version 0.56, 20-Nov-97
- The new Measure command (control-1 or just 1) calculates and displays the pixel count, mean, standard deviation, and min and max pixel value. Note that results are truncated, rather than rounded. This will be fixed in a future version.
- The new Restore Outline command restores the previous ROI outline or, when switching windows, transfers an outline from one window to another.
- The arrow keys now move ROI outlines.
- The Measure and Histogram commands now work with non-rectangular selections on 16 and 32-bit grayscale images.
Version 0.55, 14-Nov-97
- Filters no longer automatically convert 8-bit indexed color images to 32-bit RGB images.
- All menu commands now run in a separate thread.
- The Find Edges, Reduce Noise, Enhance Contrast and Threshold commands now work with RGB images.
- The Enhance Contrast and Threshold commands now work correctly with non-rectangular selections.
- ImageJ now compiles without error using the JDK 1.1.4 Java compiler. The command "javac ImageJ.java" compiles all the classes except for plug-ins.
- Enhance Contrast now continues to increase contrast when used repeatedly.
Version 0.54, 5-Nov-97
- Get Info now displays the amount of memory used by ImageJ in kilobytes. You can also view this value by clicking on the status bar at the bottom of the ImageJ window.
- Window and memory management are improved.
- More information is displayed in the debug mode.
- The Memory_Test plug-in displays a warning dialog box.
- The applet version of ImageJ was moved to a faster server so images and class files should now load faster.
Version 0.53, 29-Oct-97
- A magnifying glass tool was added to the toolbar. Click on an image to zoom in. Option-click or right-click to zoom out. Double-click on the magnifying glass icon to reset the image. Eight magnification levels are available: 1:1, 2:1, 4:1, 8:1, 16:1, 32:1 and 64:1.
- The outlining tools work on zoomed images. As an exercise, try outlining a single pixel with each of the four outlining tools.
Version 0.52, 21-Oct-97
- The memory requirements of the 3x3 neighborhood filters (Smooth, Sharpen, etc.) were reduced. They now require free memory equal to 2 times the image size instead of 3 times.
- An error message is now displayed when OutOfMemoryError exceptions occur.
- Use the "Memory_Test" plug-in to see how will your JVM handles low memory situations. It will open as many 1024x1024x8-bit images as possible and then attempt to calculate how much memory was used for each image. This is a demanding test that may require ImageJ to be restarted, may crash your browser, or may even crash your machine.
Version 0.51, 17-Oct-97
- A toolbar with four outlining tools was added.
- The status bar and progress bar were moved to the bottom of the ImageJ window.
- The cursor changes to a crosshair if it's inside an image window and not inside an ROI.
- Holding the shift key down constrains selections to be square.
- The Smooth and Sharpen filters no longer ignore ROIs on color images.
Version 0.50, 23-Sep-97
- ImageJ's functionality can now be expanded via plug-in class files that are automatically installed in
the Plug-Ins (formerly Special) menu. This version is supplied with five example plug-ins: Benchmark, IPDemo_PlugIn,
PlugIn_Macro, Thread_Lister and Timer. Future versions will allow plug-ins to be installed in any menu.
Version 0.49
- Filters and the built-in benchmark now run as separate threads. You can now run two or more benchmarks at the same time!
- The entire image is no longer redrawn when ROIs are created or moved.
- "Plot Profile" command added.
Version 0.48
- Histograms of 16 and 32-bit images now correctly labeled
Version 0.47
- Save grayscale (8, 16 and 32-bit) and color (8 and 24-bit) images as TIFF
Version 0.46 and Earlier
- Save byte, short, float and RGB images as raw data
- Open uncompressed TIFF files
- Now works with JDK 1.1.x and Hot Java 1.0
- Progress bar when downloading images and class files
- Support for 32-bit real images
- Progress bar for filters
- Import raw 8 and 16 bit images
- Support for 16-bit (signed) images
- Cursor location and value of pixel at that location are dynamically displayed
- Pixel values and counts dynamically displayed in the Histogram window
- Histogram command works correctly with indexed color images
- Convert RGB color to 8-bit indexed color
- Keyboard shortcuts using the Control key. ^N=New, ^O=Open, ^K=Open Color Lena, ^L=Open Lena, ^W=Close, ^S=Save As,
^R=Revert, ^D=Duplicate, ^I=Get Info, ^Z=Undo, ^F=Fill, E^=Scale, ^H=Histogram. You may need to click on a window to get
keyboard focus.
- Close, Save As (GIF) and Revert commands
- New prototype macro in Special menu
- Convert color images to RGB (red, green and blue) or HSB (hue, saturation and brightness)
- Convert color to grayscale
|