home | download | resources
ImageJ Release Notes
Version 1.54m 5 December 2024 (upgrade)
- 1.54m 5 December 2024
- Thanks to Michael Cammer, the Orthogonal Views command
no longer removes overlays.
- Thanks to 'Patricia' and Herbie Gluender, the
Image>Transform>Image to Results command
now shows NaNs when values are outside non-rectangular
selections.
- Thanks to Kevin Terretaz, Command Finder
(Plugins>Utilities>Find Commands) filtering is more
precise and flexible. It now splits the input into individual words
and returns commands where all words are found in either the command
name or the menu path.
- Thanks to 'Jerry1144', added the setOption("SetIJMenuBar",boolean)
macro function.
- Thanks to Kenneth Sloan, added the Roi.setMinStrokeWidth(minStrokeWidth)
macro function and Java method that you can use to specify a
minimum scaled stroke width
(example).
- Thanks to Bram van den Broek, fixed bug with duplicating hyperstacks when
the selection was outside the image border.
- Thanks to Giovanni Cardone and Michael Schmid, fixed bug with
right arrow in dialog box sliders not working as expected on
Linux and Windows.
- Thanks to Giovanni Cardone and Michael Schmid, fixed bug where
the ImageProcessor.getLine() method returned a smaller than
expected array with horizontal lines with a width equal
to the image width or vertical lines with a length equal to
the image height.
- Thanks to Peter Dodok, fixed bug with recording in
Fiji headless mode.
- Thanks to Jerome Mutterer, fixed bug where the -ijpath
command line option is not respected when using the
-batch option.
- Thanks to Guenter Pudmich, fixed bug with the calculation
of 16 and 32 bit histogram bin widths.
- Thanks to Gilles Carpentier, fixed several Hyperstack type
conversion bugs.
- Thanks to 'scouser27', fixed bug with ROI Manager
"Multi Measure" command when "Measure all n slices" was
not checked and "One row per slice" was.
- Thanks to 'scouser27', fixed a bug with how perimeters
of rotated rectangle selections are calculated.
- Thanks to Jurgen_Gluch and Ved Sharma, fixed bugs where the charAt()
macro function would return a number instead of a string and would
throw an exception if the index was out of range.
- Fixed a 1.54i regression that caused the Command Finder to throw an
exception when clicking on a blank field.
- 1.54k 15 September 2024
- Thanks to 'Carlos', added the RoiManager.delete(index) macro function
and the RoiManager.delete(index) method.
- Thanks to Michael Schmid, the dialog shown for Image>Overlay>Add Selection
with the ALT key down has an additional "Show on all slices" checkbox.
Using "Apply" in the Image>Overlay>Overlay Options dialog
can be also used to remove the stack positions for the current overlay
("Set stack positions" off is equivalent to "Show on all slices"). With
"Set stack positions" on, the stack position of the overlay elements is set
to the current slice if it was previously unspecified. Modifying an overlay
with "Apply" in Image>Overlay>Overlay Options and removing an
overlay are undoable operations (ctrl+z).
- Thanks to Michael Schmid, the stack positions of multi-point ROIs can be set in
the Edit>Selection>Properties dialog or in the ROI Manager's
Properties dialog. The ROI Manager's More>>Remove Positions command also works
for multi-point ROIs.
- Thanks to 'nicole3432', restored the particle analyzers's "Record starts" option.
- Thanks to Bram van den Broek, the Image>Duplicate
command enables the "Ignore Selection" option when the ROI is
outside the image.
- Thanks to Herbie Gluender, the Image>Duplicate
command retains the selection when "Ignore Selection" is
checked in the dialog.
- Thanks to Michael Schmid, file dialogs show the
prompt in the status bar, a work around on Macs where
file dialogs do not have titles.
- Thanks to 'odinsbane', fixed bug with FolderOpener
(File>Import>Image Sequence) only using the
first FileInfo from tiff stacks.
- Thanks to Michael Nonet and Guenter Pudmich, fixed bug
with the roiManager("rename",name) macro function causing the
stack position to be lost.
- Thanks to Philippe Carl and Michael Schmid, fixed bug
where the roiManager("select",index) macro function did
not remove previous selections.
- Thanks to Oleg Dobrokhotov, fixed bug with the
"non-antialiased" option of the setFont() macro
function not working as expected.
- Thanks to Jonathan Cottet, fixed bug with
IJ.openImage(path,n) opening .ome.tif files.
- Thanks to Fred Demen and Michael Schmid, fixed bug
with the run("Size...",option) macro function when
the "width=" option was missing and the "constrain"
option was presendt.
- Thanks to Fred Demen, fixed bug with the
Image>Adjust>Window/Level "Set" dialog
using inadequate precision when displaying float values.
- Thanks to Michael Schmid, fixed Undo exception
after using Image>Adjust>Size on
a stack.
- Thanks to 'Carlos', fixed bug with freehand and
segmented line selection iterators when the line was
completely straight vertically or
horizontally.
- Thanks to Christophe Leterrier, fixed bug with the
Array.concat() macro function not accepting getList()
as an argument.
- Thanks to Felix Rudolphi and Curtis Rueden, fixed a
1.54i regression that caused FileOpener to throw
HeadlessExceptions in headless environments.
- 1.54j 12 June 2024
- Thanks to 'ramnoob', added a number of official tags
to the DICOM reader.
- Thanks to Abdul Hannan, changed the default extension
used by the File>Save As>Text Image command from
".txt" to ".csv".
- Thanks to Gabriel Landini, ImageJ adds an "*" next to
the Mode value in the Histogram window if the histogram is
multi-modal.
- Thanks to Norbert Vischer, added the
setOption("MouseWheelStackScrolling",boolean) macro
function.
- Thanks to Gilles Carpentier, added the
Table.showHistogramTable macro function, which is
equivalent to clicking on "List" in a Histogram
window.
- Thanks to Albert Cardona and Curtis Rueden, added
public setEqualize() and setSaturated() methods to the
ContrastEnhancer class.
- Thanks to Gabriel Landini, fixed bug where the
"Composite ROIs" particle analyzer option did not
work as expected.
- Thanks to Norbert Vischer, fixed bug where empty string
fields in tables are converted to NaNs after the table is
saved and reopened.
- Thanks to Stein Rorvik, fixed bug where the
Table.getColumn() macro function did not work with
columns containing empty strings.
- Thanks to Norbert Vischer, fixed bug where
text fields in GenericDialogs opened after a showMessage()
were non-editable.
- Thanks to Jan Brocher, fixed bug where drag-and-drop of
directories onto GenericDialog directory fields did not
work as expected.
- Thanks to Norbert Vischer, fixed an Overlay.clear macro
function bug.
- Thanks to Alexander Bender, fixed bug with the ROI Manager
ignoring selections when saving.
- Thanks to Michael Schmid, fixed 1.53t regression
where Image>Stacks>Z Project failed when doing
"Average" projection of 32-bit float stacks
- 1.54i 03 March 2024
- Thanks to Fred Damen, hex notation (e.g., "0xff00ff") can be
used in GenericDialog numeric fields.
- Thanks to Philippe Carl, the point options dialog is now non-modal
when the point tool is in the single point mode.
- Thanks to Christian Tischer, added the
setOption("OpenGrayscaleJpegsAsRGB") macro
function.
- Thanks to Stein Rorvik, added the Dialog.addFile(label,path,columns)
and Dialog.addDirectory(label,path,columns) macro functions and limited
the field width to 60 columns if the number of columns is not
specified.
- Thanks to Stein Rorvik, the contents of a cell in the
Command Finder is displayed in the status bar when you click
on that cell.
- Thanks to Stein Rorvik, added the Stack.startOrthoViews
macro function.
- Thanks to Norbert Vischer, fixed exception caused by Overlay.toArray(indexes)
(used by Overlay.xor(indexes)).
- Thanks to Philippe Carl, fixed bug with the Threshold window method not being
updated when using the setAutoThreshold() macro function.
- Thanks to Michael Schmid, fixed bug with handling of infinite values
plots.
- Thanks to Michael Schmid, fixed bug where recording was silently
turned off when running a multi-threaded plugin.
- Thanks to Gabriel Landini, fixed bug with Make Montage not working
with one channel hyperstacks.
- Thanks to Norbert Vischer, fixed bug (feature?) where the getMetadata("info")
macro function would unexpectedly return the current stack slice label when the
image's "Info" property was null.
- Thanks to Philippe Carl, fixed bug with zooming in/out using ctrl+scroll wheel
and, with hyperstacks, removed this option (use shift+scroll wheel instead),
allowing it to be used to set slice positions.
- Thanks to Stein Rorvik, fixed bug where calling run("Clear Outside","slice")
set the foreground color to the background color.
- Thanks to Fred Damen, fixed bug where the Process>Math>Set
command did not work as expected with RGB images.
- Thanks to Norbert Vischer, fixed a v1.54h regression that caused an unexpected
"No particles detected. The threshold may not be correct." message.
- Fixed v1.49r regression that caused an invalid "Save changes..." dialog after
running a macro in the Editor.
- Thanks to Curtis Rueden, fixed a ImageJ 1.54h regression that breaks
the imglib2
CellImgToVirtualStackTest.
- 1.54h 15 December 2023
- Thanks to Michael Schmid, improved the fidelity of
the RGB to indexed color conversion done by the
Image>Type>8-bit Color command.
- Thanks to Michael Ellis, added the ImageListenerAdapter
class, which supports notification when an ImagePlus
is saved.
- Thanks to 'mandamanta', a warning is displayed in the "Log"
window if no particles are detected by the particle analyzer
when its running in batch mode.
- Thanks to Philippe Carl, added the Dialog.enableYesNoCancel
and Dialog.getYesNoCancel macro functions
(example).
- Thanks to Michael Schmid, the Plot.update() macro function
now works for plots that are not under construction.
- Thanks to Stein Rorvik, fixed bug where use of a modifier key
in the text editor caused isKeyDown() calls to be stuck
returning 'true' for that modifier.
- Thanks to 'IztokD', fixed bugs with the Plot.getValues() macro
function not working in batch mode.
- Thanks to 'Fijipuff', fixed bug with making montages of multi-channel
"Composite" mode images.
- Thanks to Michael Schmid, fixed exceptions that occurred
with Plot.addLabel() and with the Image>Color>Show LUT
command.
- Thanks to Michael Schmid, fixed an exception that occurred
with Plot.addLabel().
- Thanks to Michael Schmid, fixed several
Image>Color>Show LUT
bugs.
- Thanks to Michael Schmid, fixed bug with virtual stacks
that cache pixel data
(example).
- Thanks to Rodrigo Goncalves, fixed bug that caused the
Color Thresholder's "Original" button to not work as
expected.
- Thanks to Etienne Monier, fixed bug with opening image URLs that
include access credentials.
- Thanks to Nick Condon, fixed a 1.53 regression that made the
Plot.getValues() macro function slower.
- Thanks to Stein Rorvik, fixed a 1.54e regression with the
Overlay.addSelection(fcolor,0,bcolor) macro function when used
with a text selection.
- Thanks to Michael Cammer, fixed a 1.53b regression that caused
selection outlines to scale when zooming if the GUI scale was greater
than 1.0.
- 1.54g 18 October 2023
- Thanks to Yuekan Jiao, added a "16-bit histogram"
option to the Image>Adjust>Threshold dialog
and a '16-bit' option to the setAutoThreshold()
macro function and the ImagePlus.setAutoThreshold(String) method.
When this option is enabled, the full 16-bit histogram is used to
calculate the threshold of 16-bit images
(example).
- Thanks to Eyal Rozenberg, the File>Import>Raw command
uses the directory name as the image title when the
"Open all files in folder" option is enabled.
- Thanks to Zoltan Kis, the Process>Noise>Remove Outliers
tools uses sliders for setting the radius and
threshold.
- Thanks to Nicolas De Francesco and Curtis Rueden,
the macro language documentation (functions.html) is now included
in ij.jar and is used by the Editor's Macros>Function Finder
command.
- Thanks to Robert Baer, the "Associate 'Show All' ROIs with slices"
option in the ROI Manager's More>>Options dialog is now always
enabled when ImageJ starts up.
- Thanks to Christian Tischer, files with an "ome.tif" or "ome.tiff" extension
are opened using Bio-Formats.
- Thanks to Fred Damen and Michael Schmid, the ImageProcessor.getSliceNumber()
method returns the stack position when not called from a
PlugInFilter.
- Thanks to Fred Damen, added the Dialog.getLocation(x,y) macro function.
- Thanks to Philippe Carl, added the RoiManager.setPosition(c,z,t)
macro function.
- Thanks to Fred Damen, the second argument of the
Dialog.addDirectory(label,defaultdir) function is no longer ignored when
the user clicks on the "Browse" button.
- Thanks to 'Phiir42', fixed bug with closed tables reopening after
a macro finishes.
- Thanks to 'Ender', fixed headless mode "Scale Bar" and "Show Info" bugs.
- Thanks to Michael Schmid, fixed ImageCanvas.fitToWindow() bug with
very small images or user resized windows
(example).
- Thanks to Michael Ellis and Michael Schmid, fixed a
RotatedRectRoi rounding bug and a bug where newly created RotatedRectRois
consisted of 5 points instead of 4.
- Thanks to Volker Backer, fixed a Roi group bug with Fiji on Linux.
- Thanks to Yuekan Jiao and Michael Schmid, fixed a rounding error with
PointRoi.getContainedPoints().
- Thanks to Guenter Pudmich, fixed a 1.54d regression that caused 16-bit
grayscale PNGs to be opened incorrectly.
- Thanks to Saleh Altahini, fixed bug with opening ImspectorPro MSR files.
- 1.54f 29 June 2023
- Improved recording of the Analyze>Tools>Scale Bar command.
- Thanks to Stephen Cross, added the Image>Overlay>Toggle Overlay
command.
- Thanks to Dennis Chang, drawString() defaults to antialiasing when
the font size is 14 or greater and it is disabled by
default on Macs to work around a Java/macOS text rendering bug
(example macro,
example script).
- Thanks to Philippe Carl, made the ImagePanel class, used
to add images to GenericDialogs, public
(example).
- Thanks to Norbert Vischer, File>New>Hyperstack
adds slice labels when "Label Images" is checked in the
dialog.
- Fixed bug with getDir() macro function and IJ.getDir() method
changing the default directory when they are used to choose
a directory.
- Thanks to 'sat1999', fixed bug with File.setDefaultDir()
macro function and OpenDialog.setDefaultDirectory() method
not working as expected when used with directory choosers
added to dialog boxes.
- Thanks to Norbert Vischer, fixed bug with Image>Color>Split Channels
not correctly handling overlays.
- Thanks to Norbert Vischer, fixed bug with Image>Color>Arrange Channels
losing metadata.
- Thanks to Jeremy Adler and Michael Schmid, fixed bug that caused
Make Band to fail when the selection extended beyond the
image edge.
- Thanks to Julia Behnsen and Michael Schmid, fixed bug with
automatic switching to scientific notation in results tables
(test case).
- Thanks to 'melikovk' and 'scuniff', fixed a PointRoi point count
bug when points are added both programmatically and interactively.
- Thanks to Herbie Gluender and Michael Schmid, fixed a bug with the
Array.findMaxima() macro function that occurred when the first array element
was NaN.
- Thanks to Michael Cammer, fixed a 1.54e Analyze>Tools>Scale Bar
regression with images that are spatially calibrated and have an ROI.
- 1.54e 4 June 2023
- Thanks to Jerome Mutterer, added the
Help>Examples>Plots>Plot with Spectrum
example macro.
- Thanks to Jerome Mutterer, selections can now be both
filled and outlined. For an example, use the new
Help>Examples>Macro>Easter Eggs
command.
- Thanks to Zoltan Kis, when manually switching image windows,
"selectImage(title);" is recorded instead of
"selectWindow(title);".
- Thanks to Rodrigo Goncalves, added a "Do not create substack" checkbox
to the Make Substack dialog.
- Thanks to Eric Kischell, added a "Calibrate" checkbox to the
Edit>Options>Conversions dialog and a
setOption("CalibrateConversions",boolean) macro
function
(example).
- Thanks to Chris Ambrose, the title is displayed in the
status bar when the cursor is moved over an image and the
alt key is down.
- Thanks to 'Nottsuni', the Image>Show Info command
displays both the pixel value range and the display range.
- Thanks to Michael Ellis, the Edit>Selection>Interpolate
command works with composite selections with holes.
- Thanks to Philippe Carl and Michael Schmid, added the
Plot.eneableLive() macro function.
- Thanks to Jerome Mutterer, added the Color.wavelengthToColor()
macro function and the Colors.wavelengthToColor() method.
- Thanks to Michael Schmid, fixed issue with thresholding of 16-bit
and float images with inverting LUTs.
- Thanks to 'Jossie', fixed problem with Image>Color>Make Composite
not working with 1 channel, 3 slice stacks
(example).
- Thanks to Michael Schmid, fixed several scale bar bugs.
- Thanks to Philippe Carl, fixed bug with roiManager("Select",i)
macro function not updating the active selection.
- Thanks to Kurt De Vos, fixed bug with using
Process>Filter>Convolve in Fiji headless
mode.
- Thanks to Alan Brooks, fixed transparency bug with the
ImageRoi.setProcessor() method
(example).
- Thanks to Rodrigo Goncalves, added a warning message to the
Make Substack dialog with virtual stacks opened
by Fiji's FFMPEG plugin, which does not support slice deletion.
- Thanks to Justin Conroy, fixed arrow selection scaling bug.
- Thanks to Herbie Gluender, fixed isKeyDown() bug when using
"Run" button in macro editor.
- Thanks to Jerome Mutterer, fixed a bug with deleting
a rescaled overlay image ROI with a transparent background.
- 1.54d 30 March 2023
- Thanks to Norbert Vischer, added an '#include'
statement to the macro language. For an example,
use the Help>Examples>Macro>Turtle Graphics
command.
- Thanks to Stein Rorvik and Dennis Chang, added the
"Full range 16-bit inversions" option to the
Edit>Options>Conversions dialog
and the setOption("fullRangeInversions")
macro function.
- The Image>Show Info command now displays LUT
information for 16 and 32 bit images.
- Thanks to Norbert Vischer, the Process>Binary>Convert to Mask
command no longer records the unnecessary and confusing
"method=Default background=Default" options.
- Thanks to 'Maro', added the RoiManager.selectPosition(c,z,t)
macro function.
- Thanks to Wilco Kasteleijn, fixed a bug
with opening 16-bit RGB PNGs
(example).
- Thanks to Christian Tischer, fixed bug that caused the
ImagePlus.getDisplayRangeMin() and ImagePlus.getDisplayRangeMax()
methods to not work with undisplayed composite color
images.
- Fixed GUI scaling of Image>Color>Show LUT
plots.
- Thanks to 'librethinker', fixed bug that limited Minimum and Maximum for
16-bit images in the Brightness/Contrast dialog to 0 and 65,535.
- Thanks to 'KlMichel', fixed bug with ROI Manager "Multi Measure"
command and point selections.
- Thanks to 'jboulanger', fixed a bug with
Image>Stacks>Tools>Make Substack where modifications to
the newly created stack appeared in the original stack.
- Thanks to Eric Denarier, fixed a bug with creation of selections
less than one pixel in size.
- Thanks to Corey Elowsky, fixed bug where a red cursor was saved
with synchronized images.
- Fixed a 1.53g text editor regression where Search and Debug
selections were not visible on windows with "Run", "Install"
and "Macro" buttons.
- Thanks to Dennis Chang, fixed a 1.53k regression that caused
the Edit>Invert command to not work as expected with
density calibrated 16-bit images.
- 1.54c 6 March 2023
- Thanks to Jerome Mutterer, added support for
Turtle Graphics.
- Thanks to Eugene Katrukha, re-implemented the
Edit>Selection>Fit Spline command
using Haysn Hornbeck's freely available
"Fast Cubic Spline Interpolation"
algorithm.
- Thanks to Paul Evans, ImageJ now opens 10-bit tiffs.
- Thanks to Stein Rorvik, text rendering in the Log
window and tables is optimized for LCD screens on
Linux and Windows,
- Thanks to Damon Poburko, the Save command in the
ROI Manager is now much faster.
- Thanks to Fred Damen, added a Font>Monospaced
checkbox menu command to the Log window.
- Thanks to Fred Damen, the Edit>Options>Compiler
command supports Java versions greater than 9.
- Thanks to 'michihaa', the File>Import>Tiff Virtual Stack
command calls the Bio-Formats Importer for files that can't
be opened by the built in tiff reader.
- Thanks to Stein Rorvik, added the
TextWindow.setAntialiased(boolean) method.
- Fixed a bug that caused the selectImage(n) macro function,
where n>0, to sometimes fail in batch mode macros.
- Thanks to 'Sethur', fixed a bug that caused the current
working directory to not be transferred to plugins executed
from command line macros.
- Thanks to 'Sethur', fixed a bug the caused the
ImagePlus.setPositionWithoutUpdate(c,z,t) method to not
work as expected.
- Thanks to Eugene Katrukha, fixed a bug that caused the
Edit>Selection>Fit Spline command to
shorten freehand line selections.
- Thanks to 'lguerard', fixed a v1.53 regression that caused
the Image>Overlay>Flatten command to not work
correctly with hyperstacks.
- Thanks to 'Sethur', fixed a v1.53t regression that caused
"Average Intensity" Z projection to not work correctly with
32-bit hyperstacks.
- Thanks to Eugene Katrukha, fixed a bug that caused the
Edit>Selection>Fit Spline command to
shorten freehand line selections.
- Thanks to 'michihaa', fixed a bug that caused files with a
".tiff" extension dragged and dropped on the ">>" icon
in the toolbar to not open as virtual stacks.
- 1.54b 08 January 2023
- Fixed a 1.54a regression (changing IJ.URL to "http://imagej.net/ij")
that caused the sample images to fail to load on Fiji.
- 1.54a 05 January 2023
- Thanks to Herbie Gluender, added the
Process>Binary>Median
command and the ImageProcessor.threshold(level1,level2)
method.
- Thanks to Michael Cammer, setOption("ScaleConversions",boolean)
is recorded when doing stack conversions.
- Thanks to Volko Straub, added the recordable
RoiManager.associateROIsWithSlices(), RoiManager.restoreCentered()
and RoiManager.useNamesAsLabels() macro functions.
- Thanks to Christian Tischer, added the
AVI_Reader.open(path,options) method.
- Thanks to Wilhelm Burger, added the GenericDialog.addEnumChoice()
method
(BeanShell example).
- Thanks to Wilhelm Burger, added the ImageProcessor.isThreshold()
method.
- Changed the URL constant in IJ.java from "http://imagej.nih.gov/ij"
to "http://imagej.net/ij".
- Thanks to Andrew McCall, fixed a bug that caused the
Image>Transform>Rotate command to fail when rotating
very large stacks, but processing is now slower because
multi-threading is no longer used.
- Thanks to 'rlazevedo1', fixed a bug that caused plot symbols to
not be drawn correctly when the line width was greater that 3
(example).
- Thanks to 'rlazevedo1', fixed a bug that caused the range arrow overlay to
be included when saving a plot in tiff format.
- Thanks to Eg Laf, fixed a bug that caused the multi-point tool
to throw an exception when it was used for counting.
- Thanks to 'Bio7', fixed minor bugs that caused compiler warnings.
- Thanks to 'Wyn', worked around a bug in Fiji's Import>Movie (FFMPEG)
command that caused the Duplicate and Reslice commands to
sometimes throw exceptions.
- Thanks to Wilhelm Burger, fixed bugs that caused some of the
Image>Adjust>Threshold auto thresholding methods to
not work with bilevel images.
- Thanks to Diego Perez Dones and Olivier Burri, fixed a bug that caused
the Process>Find Maxima command to not work as expected with
float EDM images.
- Thanks to 'Kavi', fixed a 1.53v regression that prevents measurement
of angle selections.
- 1.53v 21 November 2022
- Thanks to Andrey Kazak, added the String.setFontSize() macro function.
- Thanks to Mario Faretta, added the Dialog.addImage(path) macro function.
- Thanks to Wilhelm Burger, added the Roi.translate() macro
function and Roi.translate() method
(macro example,
JavaScript example).
- Thanks to Avinoam Kalma, fixed a bug that caused ImageJ
to not correctly read TIFF images saved with the "deflate"
compression option.
- Thanks to Mary Brown, fixed a bug that caused the
"Menu font size" setting in the Edit>Options>Appearance
dialog to not be preserved in the preferences file.
- Thanks to Hidenao Iwai, fixed a bug that caused the
Image>Stacks>Reslice command to throw an
exception if the selection extended beyond the
image bounds.
- Thanks to 'Alex' and Curtis Rueden, fixed a bug that caused ImageJ
to freeze if "waitForUser" was entered into the "Interactive Interpreter"
window.
- Thanks to 'Olivier', fixed a bug that caused RGB DICOM files imported
using Bio-Formats as hyperstacks to "loose" the metadata when converted
to RGB.
- Thanks to Wilhelm Burger, fixed a bug that caused the Roi.isLine() and
Roi.isLineOrPoint() methods to return 'false' for angle selections.
- Thanks to Curtis Rueden, fixed a bug that caused the
File>Open Samples>Cache Sample Images command
to not work on Fiji.
- Thanks to Peter Zentis, fixed a 1.53k regression that caused the
Image>Invert command to ignore selections when inverting
16-bit images. Note that the image may not be displayed correctly unless
it uses the full pixel value range (0-65535) or a range has been set
using the "Set" option of the Image>Adjust>Brightness/Contrast
dialog.
- 1.53u 15 October 2022
- Thanks to Giovanni Cardone, the Image>Transform>Bin
command now supports z-binning of 4D hyperstacks.
- Thanks to Dr. Njitram, the Analyze>Plot Profile
command works with rotated rectangles.
- The Edit>Selection>Line to Area command
converts straight line selections to rotated rectangle
selections.
- Thanks to Herbie Gluender, improved recording of the
Edit>Selection>Properties command and added a
comment to the Edit>Options>Line Width dialog
to make it clearer what the command does.
- Thanks to Pau Carrillo-Barbera, the Selection Brush Tool is no
longer disabled when activating a selection in an overlay by
double clicking on it.
- Thanks to 'John D.', made GenericDialog.resetCounters()
public so it can be called by plugins using
GenericDialog.addButton()
(example).
- Thanks to Dennis Chang, added the recordable Image.removeScale()
macro function and the ImagePlus.removeScale() method.
- Added the ImageProcessor.setColor(String) method.
- Thanks to Tiago Ferreira, fixed a bug that caused toolbar
contextual menus to ignore the Edit>Options>Appearance
"GUI scale" setting.
- Thanks to Jan Brocher, fixed a bug that caused the "Results" menu
in a table to disappear if the table was renamed.
- Thanks to Rene Ramekers, fixed a bug that caused the
File>Import>TIFF Virtual Stack command to not
correctly calibrate TIFF stacks that were not created
by ImageJ.
- Thanks to Andrey Kazak, fixed a bug that caused the
Image>Overlay>From ROI Manager menu command to
not transfer the ROI positions.
- Thanks to Herbie Gluender, fixed a bug that caused the
Edit>Selection>Straighten command to change
the global line selection width.
- Thanks to Nayana Gaur, fixed a bug that caused ROIs with
x or y coordinates greater than 60,535 and less than 65,535 to
be saved incorrectly.
- Thanks to Christoph Gohike, fixed a bug that caused ImageJ to
create TIFF files with invalid RowsPerStrip tags when the image
height was greater than 65,535.
- Thanks to Michael Schmid, fixed several bugs
with Image>Stacks>Plot Z-axis Profile
"Live" plots.
- Thanks to Jerome Mutterer, fixed a bug that caused the "CP"
window to not be updated when the Color Picker tool was used to pick
new colors from the active image.
- Thanks to Ko Sugawara, fixed a bug that caused the
Opener.openAndAddToRecent() method to return 'false' when
the file was opened successfully.
- Thanks to Stein Rorvik, worked around a Java bug on Windows that
caused the main menu bar sub-menus to not scale to larger than 17 points.
Unfortunately, the main menu bar font size on Windows is still limited to
17 points regardless of the "GUI scale" setting.
- Thanks to Stein Rorvik, fixed a bug that caused the Roi.Paste
macro function to not work as expected.
- Thanks to 'bobfRT1', fixed a scale bar width rounding error.
- Thanks to 'rlimame', fixed a bug that caused the
Edit>Selection>Rotate command to convert
Rotated Rectangle selections to Polygon selections.
- Thanks to Michael Schmid, fixed bugs that caused the
Scale and Rotate commands in the ROI Manager to
only work correctly when processing all the ROIs.
- Thanks to Mark Hiner, fixed a 1.53t regression that caused
the Image>Stacks>Z Project command to ignore the last
slice when doing "Average" projection of 32-bit stacks.
- Thanks to Jerome Mutterer, fixed a 1.53o regression that caused
unexpected error messages when double clicking on a line in a table or
in the ROI Manager when a custom action was not defined
(example).
- 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 <= 0.001 cm
(previously it was <= 0.0001 cm).
- 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
(example1,
example2).
- 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!
- 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...",optons) 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 whensaving
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 thatcaused 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 a?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 a?00ixa? 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
a?Cancel button on righta? 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("InvertYa?) macro functions.
- Thanks to Pradeep Rajasekhar and Jan Eglinger, fixed a 1.51v regression
that caused the a?OKa? and a?Cancela? 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 a?Show alla? 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 SteinRorvik, 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" onRGB 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.net/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 Measurementsdialog 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 aredown.
- 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 MichaelSchmid, 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 abug 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 floatand
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 "<" and ">" 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.
Version 1.47 8 July 2013
- 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 inthe 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.
Version 1.46, 26 June 2012
- 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.net/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 defaultsto 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.
Complete Release Notes
top | home