Working with ImageJ

This part introduces some basic aspects of ImageJ so that you can use the software more efficiently. It also introduces some important terms and concepts used throughout this guide. You may skip it if you already use the program efficiently and are familiar with terms such as Virtual Stacks↓, Hyperstacks↓, Pseudocolor Images↓, Color Composite Images↓ or Composite Selections↓.

Using Keyboard Shortcuts

You’ll learn more and more ↓shortcut keys as you use ImageJ, because (almost) all shortcuts are listed throughout ImageJ menus. Similarly, in this guide each command has its shortcut key listed on its name (flanked by square brackets). Please note that the notation for these key-bindings is case sensitive, i.e., Shift-modifiers are not explicitly mentioned (a capital A means Shift--A) and assumes that Require control key for shortcuts in Edit ▷ Options ▷ Misc…↓ is unchecked (i.e., except when using the IJ Editor↓ or the Text Tool↓, you won’t have to hold down the Control key to use menu shortcuts). For example, the command Edit ▷ Invert [I]↓ can be evoked by Shift I or Ctrl Shift I if Require control key for shortcuts is checked. The full list of ImageJ shortcuts (see Keyboard Shortcuts↓) can be retrieved at any time using the Plugins ▷ Utilities ▷ List Shortcuts…↓ command.

There are three ↓modifier keys in ImageJ:

Control (Command Key on Apple keyboards) Denoted by ‘Ctrl’ or Ctrl in this document. Although a control key is typically present on Apple keyboards, on a Macintosh computer running ImageJ the Command key \cmd  Cmd replaces the functionality of the Control key of other operating systems. For sake of simplification, ‘Ctrl’ will always refer to both throughout this guide.

Shift Denoted by ‘Shift’ or Shift in this document.

Alt Denoted by ‘Alt’ or Alt in this document. This is also the ‘Option’ or ‘Meta’ key on many keyboards. In ImageJ, it is also used to type special unit symbols such as \micro (AltM) or \angstrom (AltShiftA).


float-infobox2 Frontmost Window and Window Activation

In ImageJ, all operations are performed on the active (frontmost) image (which has its title bar highlighted). If a window is already open it will activate when its opening command is re-run, e.g., if the B&C window is already opened (Image ▷ Adjust ▷ Brightness/Contrast… [C]↓), pressing its keyboard shortcut ( Shift C ) will activate it.

Pressing Enter on any image will bring the [[#fig:The-ImageJ-window|]]

Main ImageJ window

↓ to the foreground. In addition, it is also possible to permanently place the main window above all other windows (see Floating Behavior of Main Window↓).

Finding Commands

Navigating through the extensive list of ImageJ commands, macros and plugins may be quite cumbersome. Through its built-in Command Finder / Launcher[[[#biblio-48|48]]], ImageJ offers an expedite alternative that allows you to retrieve commands extremely fast: Plugins ▷ Utilities ▷ Find Commands… [l]↓.

In addition, ImageJ features a find function that locates macros, scripts and plugins source (.java) files on your computer: the Plugins ▷ Utilities ▷ Search… command. Because most of IJ source files contain circumstanced comments, you can use this utility to retrieve files related not only to a image processing routine (e.g., background or co-localization) but also to a practical context such as radiogram, cell or histology. Indeed, ImageJ source files contain detailed annotations useful to both developers and regular users that want to know more about ImageJ routines and algorithms.

Search… and Find Commands… [l]↓ are described in detail in Plugins ▷ Utilities ▷ ↓.

Plugins ▷ Utilities ▷ Find Commands… [l]↓

Plugins ▷ Utilities ▷ Search…

Control Panel… [U]↓, Keyboard Shortcuts↓ and SourceCodeRetriever, a macro that searches for a menu entry and retrieves the source file of the respective command

Undo and Redo

Probably the first thing you will notice is that ImageJ does not have a large ↓undo/redo buffer. Undo (Edit ▷ Undo [z]↓) is currently limited to the most recent image editing / filtering operation. With time you will appreciate that this is necessary to minimize memory overhead. Nevertheless, with IJ 1.45 and later, Undo [z]↓ is, in most cases, undoable and can be applied to multiple images if Keep multiple undo buffers is checked in Edit ▷ Options ▷ Memory & Threads…↓

If you cannot recover from a mistake, you can always use File ▷ Revert [r]↓ to reset the image lo its last saved state. For selections, Edit ▷ Selection ▷ Restore Selection [E]↓ can be used to recover any misdealt selection.

In ImageJ the equivalent to ‘Redo’ is the Process ▷ Repeat Command [R]↓, that re-runs the previous used command (skipping Edit ▷ Undo [z]↓ and File ▷ Open… [o]↓ commands).

Plugins ▷ Utilities ▷ Reset…↓, Multi Undo plugin

Image Types and Formats

Digital Images are two-dimensional grids of pixel intensities values with the width and height of the image being defined by the number of pixels in x (rows) and y (columns) direction. Thus, pixels (picture elements) are the smallest single components of images, holding numeric values — pixel intensities — that range between black and white. The characteristics of this range, i.e., the number of unique intensity (brightness) values that can exist in the image is defined as the bit--depth of the image and specifies the level of precision in which intensities are coded, e.g.: A 2--bit image has 22 = 4 tones: 00 (black), 01 (gray), 10 (gray), and 11 (white). A 4--bit image has 24 = 16 tones ranging from 0000 (0) to 1111 (16), etc. In terms of bits per pixel (bpp), the most frequent types of images (Image ▷ Type ▷ ↓) that ImageJ deals with are (ImageJ2↑ supports many more types of image data):

8--bit Images that can display 256 (28) gray levels (integers only).

16--bit Images that can display 65, 536 (216) gray levels (integers only).

32--bit Images that can display 4, 294, 967, 296 (232) gray levels (real numbers). In 32--bit images, pixels are described by floating point values and can have any intensity value including NaN (Not a Number).

RGB Color Color Images↓ that can display 256 values in the Red, Green and Blue channel. These are 24--bit (23 × 8) images. RGB color images can also be 32--bit color images (24--bit color images with additional eight bits coding alpha blending values, i.e., transparency).

Native Formats

Natively (i.e. without the need of third-party plugins) ImageJ opens the following formats: TIFF, GIF, JPEG, PNG, DICOM, BMP, PGM and FITS. Many more formats are supported with the aid of plugins. These are discussed in Non--native Formats ↓.

TIFF (Tagged Image File Format) is the ‘default’ format of ImageJ (cf. File ▷ Save [s]↓). Images can be 1--bit, 8--bit, 16--bit (unsigned [C]  [C] A numeric variable is signed if it can represent both positive and negative numbers, and unsigned if it can only represent positive numbers.), 32--bit (real) or RGB color. TIFF files with multiple images of the same type and size open as Stacks↓ or Hyperstacks↓. ImageJ opens ↓lossless compressed TIFF files (see 3↓ Image Types: Lossy Compression and Metadata↓) by the LZW, PackBits and ZIP (Deflate/Inflate) [[[#biblio-2|2]]] compression schemes. In addition, TIFF files can be opened and saved as ZIP archives.
Tiff tags and information needed to import the file (number of images, offset to first images, gap between images) are printed to the Log Window↓ when ImageJ is running in Debug Mode (Edit ▷ Options ▷ Misc…↓, see Settings and Preferences↓).

DICOM (Digital Imaging and Communications in Medicine) is a standard popular in the medical imaging community. Support in ImageJ is limited to uncompressed DICOM files. DICOM files containing multiple images open as Stacks↓.
Use Image ▷ [[#sub:Show-Info...|]]

Show Info… [i]

↓ to display the DICOM header information. A DICOM sequence can be opened using File ▷ Import ▷ Image Sequence… or by dragging and dropping the folder on the ‘ImageJ’ window. Imported sequences are sorted by image number instead of filename and the tags are preserved when DICOM images are saved in TIFF format. ImageJ supports custom DICOM dictionaries, such as the one at More information can be found at the Center for Advanced Brain Imaging.

FITS (Flexible Image Transport System) image is the format adopted by the astronomical community for data interchange and archival storage. Use Image ▷ [[#sub:Show-Info...|]]

Show Info… [i]

↓ to display the FITS header. More information here.

PGM (Portable GrayMap), PBM (Portable BitMap) and PPM (Portable PixMap) are simple image formats that use an ASCII header. More information here.

AVI (Audio Video Interleave) is a container format which can contain data encoded in many different ways. ImageJ only supports uncompressed AVIs, various YUV 4:2:2 compressed formats, and PNG or JPEG-encoded individual frames. Note that most MJPG (motion-JPEG) formats are not read correctly. Attempts to open AVIs in other formats will fail.

Non--native Formats

When opening a file, ImageJ first checks whether it can natively handle the format. If ImageJ does not recognize the type of file it calls for the appropriate reader plugin using HandleExtraFileTypes, a plugin bundled with ImageJ. If that fails, it tries to open the file using the OME Bio-Formats library (if present), a remarkable plugin that supports more than one hundred of the most common file formats used in microscopy. If nevertheless the file cannot be opened, an error message is displayed.

Because both these plugins are under active development, it is important that you keep them updated. The OME Bio-Formats library can be updated using its self-updating plugin (Plugins ▷ LOCI ▷ Update LOCI Plugin…) or Fiji↑’s built-in updater (Help ▷ Update Fiji…). The following websites provide more information on the OME Bio-Formats:

In addition, the ImageJ web site lists more than sixty plugins that recognize more ‘exotic’ file formats. The ImageJ Documentation Portal also maintains a (somewhat outdated) list of file formats that are supported by ImageJ.


float-infobox3 Image Types: Lossy Compression and Metadata

Two critical aspects to keep in mind when converting images:

[[|]] [[|]]Lossy compression Transcoding an image into a format that uses ↓lossy compression will alter the original data, introducing artifacts (see 11↓ Warning on JPEG Compression↓). This is the case, e.g., for JPEG formats (with the exception of some JPEG2000 images that use lossless compression). As such, these types of data are intended for human interpretation only and are not suitable for quantitative analyses

[[|]] [[|]]Metadata In ImageJ, ↓metadata associated with the image, such as scale, gray value calibration and user comments is only supported in tiff and zip (compressed tiff) images. In addition, selections and Overlays↓ are also saved in the TIFF header (cf. File ▷ Save [s]↓). None of the above is saved in other formats (cf. Native Formats↑).

Stacks, Virtual Stacks and Hyperstacks


ImageJ can display multiple spatially or temporally related images in a single window. These image sets are called stacks. The images that make up a stack are called slices. In ↓stacks, a pixel (which represents 2D image data in a bitmap image) becomes a voxel (volumetric pixel), i.e., an intensity value on a regular grid in a three dimensional space.

All the slices in a stack must be the same size and bit depth. A scrollbar provides the ability to move through the slices and the slider is preceded by a play/pause icon that can be used to start/stop stack animation. Right-clicking on this icon runs the Animation Options… [Alt /]↓ dialog box.

Most ImageJ filters will, as an option, process all the slices in a stack. ImageJ opens multi-image TIFF files as a stack, and saves stacks as multi-image TIFFs. The File ▷ Import ▷ Raw…↓ command opens other multi-image, uncompressed files. A folder of images can be opened as a stack either by dragging and dropping the folder onto the ‘ImageJ’ window or or by choosing File ▷ Import ▷ Image Sequence… To create a new stack, simply choose File ▷ New ▷ Image… [n]↓ and set the Slices field to a value greater than one. The Image ▷ Stacks ▷ ↓ submenu contains commands for common stack operations.


figure images/StacksHyperstacks.png

Figure 2 Stacks and Hyperstacks in ImageJ: File ▷ Open Samples ▷ Mitosis (26MB, 5D stack). Hyperstacks dimensionality can be reduced using Image ▷ Hyperstacks ▷ Reduce Dimensionality…↓, Image ▷ Stacks ▷ Z Project… or Image ▷ Hyperstacks ▷ Channels Tool… [Z]↓ The ‘(V)’ on the window title denotes a virtual image (see Virtual Stacks↓).

Virtual Stacks

Virtual stacks are disk resident (as opposed to RAM resident) and are the only way to load image sequences that do not fit in RAM. There are several things to keep in mind when working with virtual stacks:

  • Virtual stacks are read-only, so changes made to the pixel data are not saved when you switch to a different slice. You can work around this by using macros (e.g., Process Virtual Stack) or the Process ▷ Batch ▷ Virtual Stack… command
  • You can easily run out of memory using commands like Image ▷ [[#sub:Crop-[X]|]]

    Crop [X]

    ↓ because any stack generated from commands that do not generate virtual stacks will be RAM resident.
  • TIFF virtual stacks can usually be accessed faster than JPEG virtual stacks. A JPEG sequence can be converted to TIFF by opening the JPEG images as a virtual stack and using File ▷ Save As ▷ Image Sequence… to save in TIFF format

ImageJ appends a ‘(V)’ to the window title of virtual stacks and hyperstacks (see Hyperstacks↓). Several built-in ImageJ commands in the File ▷ Import ▷ ↓ submenu have the ability to open virtual stacks, namely: TIFF Virtual Stack…↓, Image Sequence…, Raw…↓, Stack From List…, AVI… (cf. Virtual Stack Opener). In addition, TIFF stacks can be open as virtual stacks by drag and drop (cf. 4↓ Opening Virtual Stacks by Drag & Drop↓).


float-infobox4 Opening Virtual Stacks by Drag & Drop

TIFF stacks with a .tif extension open as virtual stacks when dragged and dropped on the figure images/tools/Switcher-small.png  toolbar icon.


Hyperstacks are multidimensional images, extending image stacks to four (4D) or five (5D) dimensions: x (width), y (height), z (slices), c (channels or wavelengths) and t (time frames). Hyperstacks are displayed in a window with three labelled scrollbars (see Stacks and Hyperstacks↑). Similarly to the scrollbar in Stacks↑, the frame slider (t) has a play/pause icon.

Image ▷ Hyperstacks ▷ ↓ submenu

Color Images [D]  [D] This section is partially extracted from the MBF ImageJ online manual at

ImageJ deals with color mainly in three ways: pseudocolor images, RGB images, RGB/ HSB stacks, and composite images.

Pseudocolor Images

A pseudocolor (or indexed color) image is a single channel gray image (8, 16 or 32--bit) that has color assigned to it via a lookup table or LUT. A LUT is literally a predefined table of gray values with matching red, green and blue values so that shadows of gray are displayed as colorized pixels. Thus, differences in color in the pseudo-colored image reflect differences in intensity of the object rather than differences in color of the specimen that has been imaged.

8-bit indexed color images (such as GIFs) are a special case of pseudocolor images as their lookup table is stored in the file with the image. These images are limited to 256 colors (24--bit RGB images allow 16.7 million of colors, see Image Types and Formats↑) and concomitantly smaller file sizes. Reduction of true color values to a 256 ↓color palette is performed by color quantization algorithms. ImageJ uses the Heckbert’s median-cut color quantization algorithm (see Image ▷ Type ▷ ↓ menu), which, in most cases, allows indexed color images to look nearly identical to their 24-bit originals.

True Color Images

As described in Image Types and Formats↑, true color images such as RGB images reflect genuine colors, i.e., the green in an RGB image reflects green color in the specimen. Color images are typically produced by color CCD cameras, in which ↓color filter arrays (Bayer masks) are placed over the image sensor.

Color Spaces and Color Separation

Color spaces ↓describe the gamut of colors that image-handling devices deal with. Because human vision is trichromatic, most color models represent colors by three values. Mathematically, these values (color components) form a three-dimensional space such as the RGB, HSB, CIE Lab or YUV color space.


figure images/RGB-HSBcolorModels.png

Figure 3 Representation of an eight pixel color image in the RGB and HSB color spaces. The RGB color space maps the RGB color model to a cube with Red (R) values increasing along the x-axis, Green (G) along the y-axis and Blue (B) along the z-axis. In the HSB cylindrical coordinate system, the angle around the central vertical axis corresponds to Hue (H), the distance from the axis corresponds to Saturation (S), and the distance along the axis corresponds to Brightness (B). In both cases the origin holds the black color. The right panel shows the same image after brightness reduction, easily noted by the vertical displacement along the HSB cylinder. Images produced using Kai Uwe Barthel’s 3D Color Inspector plugin.

RGB (Red, Green, Blue) is the most commonly-used color space. However, other alternatives such as HSB (Hue, Saturation, Brightness) provide significant advantages when processing color information. In the HSB color space, Hue describes the attribute of pure color, and therefore distinguishes between colors. Saturation (sometimes called “purity” or “vibrancy”) characterizes the shade of color, i.e., how much white is added to the pure color. Brightness (also know as Value — HSV system) describes the overall brightness of the color (see e.g., the color palette of Color Picker window↓). In terms of digital imaging processing, using the HSB system over the traditional RGB is often advantageous: e.g., since the Brightness component of an HSB image corresponds to the grayscale version of that image, processing only the brightness channel in routines that require grayscale images is a significant computational gain [E]  [E] See Wootton R, Springall DR, Polak JM. Image Analysis in Histology: Conventional and Confocal Microscopy. Cambridge University Press, 1995, ISBN 0521434823. You can read more about the HSB color model here.

In ImageJ, conversions between image types are performed using the Image ▷ Type ▷ ↓ submenu. Segmentation on the HSB, RGB, CIE Lab and YUV color spaces can be performed by the Image ▷ Adjust ▷ Color Threshold…↓ command [[[#biblio-20|20]]]. Segregation of color components (specially useful for quantification of ↓histochemical staining) is also possible using Gabriel Landini’s Colour Deconvolution plugin. In addition, several other plugins related to color processing can be obtained from the ImageJ website.

Conveying Color Information [F]  [F] This section is partially extracted from Masataka Okabe and Kei Ito, Color Universal Design (CUD) — How to make figures and presentations that are friendly to Colorblind people,, accessed 2009.01.15

People see color with significant variations. Indeed, the popular phrase “One picture is worth ten thousand words” may not apply to certain color images, specially those that do not follow the basic principles of Color Universal Design. Citing Masataka Okabe and Kei Ito:

Colorblind people can recognize a wide ranges of colors. But certain ranges of colors are hard to distinguish. The frequency of colorblindness is fairly high. One in 12 Caucasian (8%), one in 20 Asian (5%), and one in 25 African (4%) males are so-called ‘red--green’ colorblind.
There are always colorblind people among the audience and readers. There should be more than ten colorblind in a room with 250 people (assuming 50% male and 50% female).
[ …] There is a good chance that the paper you submit may go to colorblind reviewers. Supposing that your paper will be reviewed by three white males (which is not unlikely considering the current population in science), the probability that at least one of them is colorblind is whopping 22%!


figure images/Dichromacy.png

Figure 4 Red--green images and partial color blindness. Deuteranopia (second panel), protanopia (third panel) are the most common types of partial color blindness (red / green confusion). Tritanopia (blue / orange confusion, fourth panel) is quite rare. Replacing Red with Magenta in RGB Images↓ (bottom row) is a simple way to compensate for color vision deficiencies.

One practical point defined by the Color Universal Design is the use of magenta in red--green overlays (see also [[[#biblio-97|47]]]). Magenta is the equal mixture of red and blue. Colorblind people that have difficulties recognizing the red component can easily recognize the blue hue. The region of double positive becomes white, which is easily distinguishable for colorblind. In ImageJ this is easily accomplished using the Image ▷ Color ▷ Merge Channels…, or using the ImageJ macro language (see 5↓ Replacing Red with Magenta in RGB Images↓).


float-infobox5 Replacing Red with Magenta in RGB Images

When building RGB images, magenta can be obtained using the Image ▷ Color ▷ Merge Channels… Previously created RGB images can be converted to ‘MGB’ using Image ▷ Color ▷ Channels Tool… [Z]↓. Alternatively, the Process ▷ Image Calculator…↓ command can be used to add the red channel to the blue channel. Both these approaches can be automated using the ImageJ macro language as exemplified by Macros (11↓) and (7↓). Once saved in the ImageJ/plugins/ folder these Macros↓ are treated as regular ImageJ commands.

In Fiji↑, as expected, the procedure of modifying RGB images is simpler: one just needs to run Image ▷ Color ▷ Replace Red with Magenta. For even more convenience, Fiji provides an analogous command that replaces the system clipboard’s image with a magenta-green one.

It is also possible to simulate color blindness using the Vischeck or Dichromacy plugins [G]  [G] One advantage of Dichromacy over the Vischeck plugin is that it can be recorded and called from scripts and macros, without user interaction., or in Fiji↑, using the Image ▷ Color ▷ Simulate Color Blindness command.

[[|]]Replace Red with Magenta.ijm (Using Process ▷ Image Calculator…)

 /* This macro replaces Red with Magenta in RGB images using Process>Image Calculator...  command. */
   if (bitDepth!=24)
       exit("This macro requires an RGB image");
   title= getTitle();
   r= title+" (red)"; g= title+" (green)"; b= title+" (blue)";
   run("Split Channels");
   imageCalculator("Add", b, r);
   run("Merge Channels...", "red=&r green=&g blue=&b");
   rename(title + " (MGB)");

Color Composite Images

In a ↓composite image colors are handled through channels. The advantages with this type of image over plain RGB images are:

  1. Each channel is kept separate from the others and can be turned on and off using the ‘Channels’ tool (Image ▷ Color ▷ Channels Tool… [Z]↓). This feature allows, e.g., to perform measurements on a specific channel while visualizing multiple.
  2. Channels can be 8, 16 or 32--bit and can be displayed with any lookup table
  3. More than 3 channels can be merged or kept separate

[[|]]Replace Red with Magenta.ijm (Using Image ▷ Color ▷ Channels…)

 /* This macro replaces Red with Magenta in RGB images using the Image>Color>Channels... tool. */
   if (bitDepth!=24)         // Ignore non-RGB images
       exit("This macro requires an RGB image");
 setBatchMode(true);         // Enter ‘Batch’ mode
   title = getTitle();       // Retrieve the image title
   run("Make Composite");    // Run Image>Color>Make Composite
   run("Magenta");           // Run Image>Lookup Tables>Magenta on channel 1
   run("RGB Color");         // Run Image>Type>RGB Color
   rename(title + " (MGB)"); // Rename the image
 setBatchMode(false);        // Restore ‘GUI’ mode


Selections (regions of interest, ROIs), are typically created using the Toolbar↓ Tools↓. Although ImageJ can display simultaneously several ROIs (see Overlays↓ and ROI Manager↓) only one selection can be active at a time. Selections can be measured (Analyze ▷ [[#sub:Measure...[m]|]]

Measure… [m]

↓), drawn (Edit ▷ Draw [d]↓), filled (Edit ▷ Fill [f]↓) or filtered (Process ▷ Filters ▷  submenu), in the case of area selections. In addition it is also possible to hold multiple ROIs as non-destructive Overlays↓.

Selections can be initially outlined in one of the nine ImageJ default colors (Red, Green, Blue, Magenta, Cyan, Yellow, Orange, Black and White). Once created, selections can be contoured or painted with any other color using Edit ▷ Selection ▷ [[#sub:Properties...|]]

Properties… [y]

↓. Selection Color can be changed in Edit ▷ Options ▷ Colors…↓, by double clicking on the Point Tool↓, or using hot keys (see (27.13.9↓) Colors…↓). It is highlighted in the center of the Point Tool↓ and Multi-point Tool↓.


figure images/Selections.png

Figure 5 Three types of area selections In ImageJ. Notice the cursor changes: to an arrow when it is within the selection, to a cross-hair when outside the selection, to a hand when over a selection vertex or ‘handler’. Notice also the filled handler in the polygon selection and the absence of point handlers in Composite Selections↓. Overlays↓, i.e., non-active selections displayed in the non-destructive image overlay, are also displayed without handlers.

Manipulating ROIs

Most of commands that can be useful in defining or drawing selections are available in the Edit ▷ Selection ▷  submenu and summarized in ROI manipulations↓. Listed below are the most frequent manipulations involving ↓selections:

Adjusting Area selections can be adjusted with the Brush Selection Tool↓. In addition, vertexes of selections created with the Polygon Selection Tool and Segmented Line Selection Tool↓ can be adjusted by Alt/Shift-clicking.

Deleting Choose any of the selection tools and click outside the selection, or use Edit ▷ Selection ▷ Select None [A]↓. Use Edit ▷ Selection ▷ Restore Selection [E]↓ to restore a selection back after having deleted it. With Overlays↓, an activated ROI can be deleted by pressing the Backspace (Delete on Mac) key.

Managing A selection can be transferred from one image window to another by activating the destination window and runnig Edit ▷ Selection ▷ Restore Selection [E]↓. Alternatively, Analyze ▷ Tools ▷ Synchronize Windows to create ROIs across multiple images. Multiple selections can be stored as Overlays↓ or in the ROI Manager↓ list (Analyze ▷ Tools ▷ ROI Manager…).

Moving Selections can be moved by clicking and dragging as long as the cursor is within the selection and has changed to an figure images/pointers/Pointer-Arrow.png . The status bar displays the coordinates of the upper left corner of the selection (or the bounding rectangle for non-rectangular selections) as it is being moved. To move the contents of a selection, rather than the selection itself, Edit ▷ Copy [c]↓, Edit ▷ Paste [v]↓, and then click within the selection and drag.

Nudging Selections can be ‘nudged’ one pixel at a time in any direction using the arrow keys. Note that the up and down keys zoom the image in and out in the absence of selections (see Arrow Keys↓ shortcuts).

Resizing The Brush Selection Tool↓ can be used to perform fine adjustments of ROI contours. Most ROIs can be resized one pixel at a time by holding Alt while using the arrow keys. In general (see Area Selection Tools↓ and Line Selection Tools↓ for details), selections are resized by dragging one of the selection handlers. While dragging, holding Ctrl resizes the selection around its center, holding Alt imposes a fixed aspect ratio and holding Shift forces a 1:1 aspect ratio.

Composite Selections

Composite selections are non-contiguous ROIs containing more than one cluster of pixels and/or ROIs containing internal holes. Composite ROIs are typically originated with the Brush Selection Tool↓ but they can be defined with any other selection tool using key modifiers.

The following modifier keys can be use to create composite selections:

Shift Drawing outside current selection while pressing Shift creates new content. To add a non-square rectangle or ellipse, the Shift key must be released after adding the selection

Alt Drawing inside current selection while pressing Alt creates a hole removing content from the ROI

Note that some operations may not be performed properly on complex ROIs. In these cases, it may be useful to convert a composite ROI into a polygon using the Edit ▷ Selection ▷ Enlarge…↓ command as explained in 14↓ Converting Composite Selections↓.

Selections With Sub-pixel Coordinates\featureSelections with sub-pixel resolution

Since ImageJ 1.46, selections can be defined with subpixel accuracy, beyond the nominal pixel resolution of the image: Floating point selections↓. Line Selections (see Line Selection Tools↓) are created with floating-point coordinates if the Sub-pixel resolution checkbox is active in Edit ▷ Options ▷ Profile Plot Options… Sub-pixel coordinates of pre-existing selections can be interpolated using the Edit ▷ Selection ▷ Interpolate command. Interpolated points are easily noticeable on small selections created on images zoomed 1200% or greater.


figure images/SubPixel.png

Figure 7 'Interpolated selections. ROIs drawn with (left) or without (middle) sub-pixel accuracy. For line selections (see Line Selection Tools↓), this option can be enabled in ' Edit ▷ Options ▷ Profile Plot Options… by activating the Sub-pixel resolution checkbox. Pixel coordinates of area selections (see Area Selection Tools↓), can be interpolated using Edit ▷ Selection ▷ Interpolate. The image on the right is the output of SubPixelSelections.js, a script that demonstrates how to create selections at sub-pixel resolution without the need of setting any option in ImageJ.

Overlays[[|]]\improvementImproved handling of Overlays

Overlays are non-active selections displayed ‘over’ the pixel data, on the image overlay, and are the core of non-destructive image processing in ImageJ. In a way you can think of the image overlay as an invisible ROI Manager↓ in which selections are being added, allowing ROIs to be on ‘hold’. This concept of multiple distinct selections has been dramatically improved in ImageJ2↑ so we urge you to download IJ2 if multiple ROIs are important in your workflows.


figure images/OverlayShowcase.png

Figure 8 Non-destructive operations using the image overlay. Overlays can be used to annotate images, store ROIs and blend images (ImageROIs) at multiple opacity levels. Refer to the Image ▷ Overlay ▷ ↓documentation for further examples↓. You can download the frontmost image to practice overlay editing.

Importantly, overlay selections are vector graphics composed of mathematically-defined paths (as opposed to raster graphics in which objects are defined by pixels) and are not affected by scaling, i.e., do not become pixelated. Most of overlay-related commands are listed in the Image ▷ Overlay ▷ ↓, and in the ROI Manager window (Analyze ▷ Tools ▷ ROI Manager…). Appearance of overlay selections can be adjusted using Image ▷ Overlay ▷ Overlay Options…/Labels…

As mentioned in 3↑ Image Types: Lossy Compression and Metadata↑, overlays are saved in the header of tif images, and do not need to be saved externally when using TIFF, the default file format of ImageJ. The major advantages of overlays are summarized below:

Storage of ROIs In ImageJ it is only possible to have a single ROI at a time. However, it is possible to add selections to the image overlay using B (Image ▷ Overlay ▷ [[#sub:Add-Selection...[b]|]]

Add Selection… [b]

↓).\feature Once added to the image overlay, ROIs can be re-activated by Alt-clicking, Control-clicking or long-pressing (14 second or longer). Activated ROIs can be deleted by pressing the Backspace key. Selections can also be added and recovered in bulk, using the Image ▷ Overlay ▷ From ROI Manager↓/To ROI Manager↓ commands.

Non-destructive annotations Overlays are the best way of annotating images in ImageJ (examples↓). As vector graphics, overlays do not change pixel values, can be scaled without loss of quality even at high zoom levels (see 19↓ Working with Zoomed Canvases↓) and can be displayed at different opacity values (see 20↓ Hexadecimal Color Values↓). RGB snapshots of the image with embedded overlays can be created by holding Shif F, the shortcut for Image ▷ Overlay ▷ Flatten [F]↓. ‘Flattened’ images with the overlay rendered as pixel data are also created when saving the image as PNG or JPEG (File ▷ Save As ▷ ↓), or when printing the image canvas (File ▷ Print… [p]↓). The Flatten command is also listed in the ROI Manager↓.

Image ROIs An ↓imageROI (image selection) is a ROI that displays an image as an overlay. As described in Edit ▷ Selection ▷ Image to Selection… and Image ▷ Overlay ▷ Add Image…, this allows multiple images to be ↓blended on a single image canvas.

3D Volumes

Currently, the support for 3D ROIs (selections containing contiguous cluster of voxels) is somewhat limited in ImageJ. This limitation has been addressed by ImageJ2↑ and several IJ1 plugins. The list below summarizes some of the ImageJ plugins that deal effectively with multi-dimensional objects. Note that a manual installation of these tools as standalone ImageJ plugins is a challenging task given their special dependencies, reason why they are all bundled as part of Fiji↑.


figure images/3Dviewer.png

Figure 9 3D Viewer (Fiji 1.46o), bringing hardware-accelerated 3D visualization to ImageJ. As explained in 3D Volumes↑, most of plugins that truly extend ImageJ functionally to multi-dimentional data are bundled as part of Fiji.

3D Filters Specialized 3D filters such as Process ▷ Filters ▷ Gaussian Blur 3D… can be installed to perform 3D operations. Examples are the 3D processing package by Thomas Boudier [[[#biblio-84|34]]] and the 3D binary filters by Benjamin Schmid.

3D Object Counter3D Object Counter (3D-OC) ↓counts and qualifies 3D objects in a stack [[[#biblio-147|97]]], similarly to the 2D analysis performed by Analyze ▷ Analyze Particles…↓ It is complemented by 3D Roi Manager [[[#biblio-84|34]]], a companion plugin that adds a 3D ROI Manager↓ to ImageJ

3D Viewer3D Viewer ↓brings powerful hardware-accelerated 3D visualization to ImageJ [[[#biblio-65|15]]], extending the limited functionality of Image ▷ Stacks ▷ 3D Project… In the ImageJ 3D Viewer↑ stacks can be displayed as texture-based volume renderings, surfaces or orthoslices. It is macro-recordable and can be used by other plugins as a high-level programming library for 3D visualization

Simple Neurite TracerSimple Neurite Tracer ↓allows semi-automated segmentation of tubular structures in 3D [[[#biblio-128|78]]]

TrakEM2 As mentioned earlier, Software Packages Built on Top of ImageJ↑ features powerful tools for multi-dimensional regions of interest [[[#biblio-57|7]]]

Settings and Preferences[[|]]\improvement

ImageJ preferences are automatically saved in a preferences file, the IJ_prefs.txt text file. This file is stored in  ~ /Library/Preferences/ on Mac OS X, in  ~ /.imagej/ on Linux and Windows (with  ~  referring to the user’s home directory). Several macros and plugins also write parameters to this file. If the IJ_prefs.txt is erased using Edit ▷ Options ▷ Reset…, ImageJ will create a new one the next time it is opened resetting all parameters to their default values.

Sometimes, it may be useful to override (or restore) certain settings that may have been changed during a working session. For example, the Limit to threshold option (Analyze ▷ Set Measurements…) will affect most measurements performed on thresholded images. Thus, it may be wise to check the status of this parameter before each analysis, specially when working on multiple computers.

[[|]]Ensuring Specific Settings at Launch

 macro "AutoRun" {
   setOption("DebugMode", true);
   setOption("Bicubic", true);
   setOption("Display Label", true);
   setOption("Limit to Threshold", false);
   setOption("BlackBackground", true);
   run("Colors...", "foreground=white background=black"); //this line could be substituted by: setBackgroundColor(0,0,0); setForegroundColor(255,255,255);
   run("Profile Plot Options...", "width=350 height=200 draw");

The setOption() macro function can be used to set this and several other ImageJ options. Calling this function from the “AutoRun” macro in the StartupMacros.txt file ensures preferences are set each time ImageJ starts. The macro (13↑) Settings and Preferences↑ exemplifies this approach ensuring that the following settings are enforced at startup:

  1. TIFF tag values are displayed by ImageJ (Debug Mode in Edit ▷ Options ▷ Misc…↓)
  2. Bicubic interpolation is preferred over bilinear (e.g., Edit ▷ Selection ▷ Straighten…↓)
  3. The name of the measured image name is recorded in the first column of the Results Table↓ (Display Label in Analyze ▷ Set Measurements…)
  4. Measurements are not restricted to thresholded pixels (Limit to Threshold in Analyze ▷ Set Measurements…)
  5. Binary images are processed assuming white objects on a black background (Black background in Process ▷ Binary ▷ Options…, see 23↓ Interpreting Binary Images↓)
  6. Background color is black and foreground color is white (Edit ▷ Options ▷ Colors…↓)
  7. ImageJ plots contain grid lines and are always 350 × 200 pixels in size (Edit ▷ Options ▷ Profile Plot Options…)
  8. Open the B&C widget at its last saved screen position (Image ▷ Adjust ▷ Brightness/Contrast… [C]↓)