Page history Edit this page How do I edit this website?

User Guide - 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 ↓keyboard↓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 EditOptionsMisc…↓ is unchecked (i.e., except when using the IJ Editor↓ or the Text Tool↓, you won’t have to hold down the ⌃ Ctrl key to use menu shortcuts). For example, the command EditInvert [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 PluginsUtilitiesList Shortcuts…↓ command.

There are three ↓modifier keys in ImageJ:

  • ⌃ Ctrl (⌘ Command on Apple keyboards) - Although a ⌃ control key is typically present on Apple keyboards, on a Macintosh computer running ImageJ the ⌘ Command key replaces the functionality of the ⌃ Ctrl key of other operating systems. For sake of simplification, ⌃ Ctrl will always refer to both throughout this guide.

  • ⇧ Shift

  • ⌥ Alt - This is also the ⌥ Option or ◆ Meta key on many keyboards. In ImageJ, it is also used to type special unit symbols such as μ (⌥ Alt + M) or Å (⌥ Alt + ⇧ Shift + A).

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 (ImageAdjust\[\[\#sub:Brightness/Contrast...%5BC%5D\Brightness/Contrast... \[C\]↓\]\]), pressing its keyboard shortcut ( ⇧ Shift + C ) will activate it.
Pressing ↵ Enter on any image will bring the [The-ImageJ-window](#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↓](#sub:FloatingMainWin)).

Finding Commands

Navigating through the extensive list of ImageJ commands, macros and plugins may be quite cumbersome. Through its built-in Command Finder / Launcher48], ImageJ offers an expedite alternative that allows you to retrieve commands extremely fast: PluginsUtilities[[#sub:Command-Finder</span> › Find Commands… [l]↓]].

In addition, ImageJ features a find function that locates macros, scripts and plugins source (.java) files on your computer: the PluginsUtilitiesSearch…↓ 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 [[#sub:Command-Finder|Find Commands… [l]↓]] are described in detail in PluginsUtilities↓.

PluginsUtilities\[\[\#sub:Command-Finder\Find Commands... \[l\]↓\]\]
![figure images/CommandFinderAndSearch.png](/media/images/commandfinderandsearch.png)
\[\[\#sub:Control-Panel...\|Control Panel... \[U\]↓\]\], [Keyboard Shortcuts↓](#sec:Keyboard-Shortcuts) and [SourceCodeRetriever](/ij/macros/SourceCodeRetriever.txt), 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[[#sub:Undo-%5Bz%5D</span> › 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, [[#sub:Undo-%5Bz%5D|Undo [z]↓]] is, in most cases, undoable and can be applied to multiple images if Keep multiple undo buffers is checked in EditOptionsMemory & Threads…↓

If you cannot recover from a mistake, you can always use File[[#sub:Revert%5Br%5D</span> › Revert [r]↓]] to reset the image lo its last saved state. For selections, EditSelection[[#sub:Restore-Selection-%5BE%5D</span> › Restore Selection [E]↓]] can be used to recover any misdealt selection.

In ImageJ the equivalent to ‘Redo’ is the Process[[#sub:Repeat-Command-%5BR%5D</span> › Repeat Command [R]↓]], that re-runs the previous used command (skipping Edit[[#sub:Undo-%5Bz%5D</span> › Undo [z]↓]] and File[[#sub:Open…</span> › Open… [o]↓]] commands).

PluginsUtilities[Reset...↓](#sub: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 \(2^2 = 4\) tones: 00 (black), 01 (gray), 10 (gray), and 11 (white). A 4–bit image has \(2^4 = 16\) tones ranging from 0000 (0) to 1111 (16), etc. In terms of bits per pixel (bpp), the most frequent types of images (ImageType↓) that ImageJ deals with are:

**8--bit** Images that can display 256 ($$ 2^8 $$) gray levels (integers only).
**16--bit** Images that can display 65, 536 ($$ 2^16 $$) gray levels (integers only).
**32--bit** Images that can display 4, 294, 967, 296 ($$ 2^32 $$) gray levels (real numbers). In 32--bit images, pixels are described by Floating point values and can have any intensity value including *NaN*[↓](#nom-nan) (Not a Number).
**RGB Color** [Color Images↓](#sec:Color-Images) that can display 256 values in the Red, Green and Blue channel. These are 24--bit (2^{3 \times 8}) images. RGB[↓](#nom-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\[\[\#sub:Save%5Bs%5D\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](#index-TIFF) files with multiple images of the same type and size open as [Stacks↓](#sub:Stacks-Intro) or [Hyperstacks↓](#sub:Hyperstacks-Intro). ImageJ opens [↓lossless](#index-Lossless-compression) compressed TIFF files (*see* [3↓](#infobox:Formats) [Image Types: Lossy Compression and Metadata↓](#infobox:Formats)) by the LZW[↓](#nom-lzw)[↓](#index-LZW-compression), [↓PackBits](#index-PackBits-compression) and [↓ZIP](#index-ZIP-Lossless-compression) ([↓Deflate](#index-Deflate)/Inflate) [2]([#biblio-2)\] compression schemes. In addition, TIFF files can be opened and saved as [↓ZIP](#index-ZIP-Archived-TIFF-files) 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↓](#sec:Log-Window) when ImageJ is running in *Debug Mode* (EditOptions[Misc...↓](#sub:Misc...), *see* [Settings and Preferences↓](#sec: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](#index-DICOM) files. DICOM files containing multiple images open as [Stacks↓](#sub:Stacks-Intro). Use Image[Show-Info...](#sub:Show-Info...) ↓ to display the DICOM header information. A DICOM sequence can be opened using FileImport[Image Sequence...↓](#sub: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 [here](/ij/download/docs/DICOM\_Dictionary.txt). 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[Show-Info...](#sub:Show-Info...) ↓ to display the [↓FITS](#index-FITS) header. More information [here](
**PGM** ([↓Portable](#index-PGM) GrayMap), **PBM[↓](#nom-pbm)** (Portable BitMap) and **PPM[↓](#nom-ppm)** (Portable PixMap) are simple image formats that use an ASCII[↓](#nom-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](#index-AVI), various [↓YUV](#index-YUV) 4:2:2 compressed formats, and [↓PNG](#index-PNG) or [↓JPEG](#index-JPEG)-encoded individual frames. Note that most [↓MJPG](#index-MJPG)[↓](#nom-mjpg) (motion-JPEG) formats are not read correctly. Attempts to open AVIs in other formats will fail.
[Non--native Formats ↓](#sub:Non-native-Supported-Formats), [3↓](#infobox:Formats) [Image Types: Lossy Compression and Metadata↓](#infobox:Formats), [11↓](#infobox:JpegAlert) [Warning on JPEG Compression↓](#infobox:JpegAlert)

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 (PluginsLOCIUpdate LOCI Plugin…) or Fiji↑’s built-in updater (HelpUpdate 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.

[Native Formats↑](#sub:Native-Formats), File[Import↓](#sub:Import), [3↓](#infobox:Formats) [Image Types: Lossy Compression and Metadata↓](#infobox:Formats), [11↓](#infobox:JpegAlert) [Warning on JPEG Compression↓](#infobox:JpegAlert), [Acquisition plugins](/ij/plugins/#acq), [Input/Output plugins](/ij/plugins/#io)
[]( )
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](#index-Lossy-compression) compression will alter the original data, introducing artifacts (*see* [11↓](#infobox:JpegAlert) [Warning on JPEG Compression↓](#infobox:JpegAlert)). This is the case, e.g., for JPEG formats (with the exception of some [↓JPEG](#index-JPEG2000)2000 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](#index-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↓](#sub:Overlay-Intro) are also saved in the TIFF header (cf. File\[\[\#sub:Save%5Bs%5D\Save \[s\]↓\]\]). None of the above is saved in other formats (cf. [Native Formats↑](#sub: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 [[#sub:Animation-Options…|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 FileImportRaw…↓ 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 FileImportImage Sequence…↓” %}. To create a new stack, simply choose FileNew[[#sub:Image…%5Bn%5D</span> › Image… [n]↓]] and set the Slices field to a value greater than one. The ImageStacks↓ submenu contains commands for common stack operations.

[]( )
![figure images/StacksHyperstacks.png](/media/images/stackshyperstacks.png)
Figure 2 **Stacks and Hyperstacks in ImageJ:** FileOpen SamplesMitosis (26MB, 5D stack). Hyperstacks dimensionality can be reduced using ImageHyperstacks[Reduce Dimensionality...↓](#sub:Reduce-Dimensionality...), ImageStacks[Z Project...↓](#sub:Z-Project...) or ImageHyperstacks\[\[\#sub:Channels...%5BZ%5D\Channels Tool... \[Z\]↓\]\]. The '(V)' on the window title denotes a virtual image (*see* [Virtual Stacks↓](#sub:Virtual-Stacks)).
[Stacks Menu↓](#sub:StacksMenu), [Stack Manipulations]( on Fiji website, [Image5D](/ij/plugins/image5d.html)

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 ProcessBatchVirtual Stack…↓ command
  • You can easily run out of memory using commands like ImageCrop-%5BX%5D ↓ 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 FileSave AsImage 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 FileImport↓ 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↓).

[LOCI Bio-Formats]( and [RegisterVirtualStackSlices]( plugins, [Process Virtual Stack](/ij/macros/Process_Virtual_Stack.txt) and [VirtualStackFromList](/ij/macros/VirtualStackFromList.txt) macros
[]( )
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](/media/images/tools/switcher-small.png) toolbar icon.
![figure images/DragAndDropVirtualTiff.png](/media/images/draganddropvirtualtiff.png)


↓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↓](#sub:Hyperstacks) submenu

Color Images [D]  [D] This section is partially extracted from the MBF ImageJ online manual at>.</span

↓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 ImageType↓ menu), which, in most cases, allows indexed color images to look nearly identical to their 24-bit originals.

Image[Lookup Tables↓](#sub:Lookup-Tables) and [LUT Menu↓](#sub:LUTMenu)

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 filter) are placed over the image sensor.

Color Spaces and Color Separation

Color space ↓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](/media/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 HSB color space.

In ImageJ, conversions between image types are performed using the ImageType↓ submenu. Segmentation on the HSB, RGB, CIE Lab and YUV color spaces can be performed by the ImageAdjustColor Threshold…↓ command 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</span

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](/media/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↓](#infobox:Replacing-Red-w-Magenta) (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 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 ImageColorMerge 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 ImageColor[Merge Channels...↓](#sub:Merge-Channels...). Previously created RGB images can be converted to [↓](#index-Magenta-Green-Blue-(MGB))'MGB' using ImageColor\[\[\#sub:Channels...%5BZ%5D\Channels Tool... \[Z\]↓\]\]. Alternatively, the Process[Image Calculator...↓](#sub: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↓)](#lis:RGBtoMGB1) and [(7↓)](#lis:RGBtoMGB2). Once saved in the ImageJ/plugins/ folder these [Macros↓](#sub:Macros-ExtendingIJ) are treated as regular ImageJ commands.
In [Fiji↑](#sub:Fiji-intro), as expected, the procedure of modifying RGB images is simpler: one just needs to run ImageColorReplace 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 ImageColorSimulate Color Blindness command.

[Replace]( ) Red with Magenta.ijm (Using ProcessImage 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"); setBatchMode(true); 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)"); setBatchMode(false);

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 (ImageColor[[#sub:Channels…%5BZ%5D</span> › 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 ImageColorChannels...)
/* 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 (AnalyzeMeasure…%5Bm%5D ↓), drawn (Edit[[#sub:Draw-%5Bd%5D</span> › Draw [d]↓]]), filled (Edit[[#sub:Fill-%5Bf%5D</span> › Fill [f]↓]]) or filtered (ProcessFilters↓ 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 EditSelectionProperties…. Selection Color can be changed in EditOptionsColors…↓, 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](/media/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↓](#sub:Composite-selections). [Overlays↓](#sub:Overlay-Intro), 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 EditSelection 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↓](#sub:Brush-Selection-Tool). In addition, vertexes of selections created with the [Polygon Selection Tool↓](#sub:Polygon-Selection-Tool) and [Segmented Line Selection Tool↓](#sub:Segmented-Line-Selection) can be adjusted by Alt/Shift-clicking.
**Deleting** Choose any of the selection tools and click outside the selection, or use EditSelection\[\[\#sub:Select-None-%5BA%5D\|Select None \[A\]↓\]\]. Use EditSelection\[\[\#sub:Restore-Selection-%5BE%5D\|Restore Selection \[E\]↓\]\] to restore a selection back after having deleted it. With [Overlays↓](#sub:Overlay-Intro), 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 running EditSelection\[\[\#sub:Restore-Selection-%5BE%5D\|Restore Selection \[E\]↓\]\]. Alternatively, AnalyzeToolsSynchronize Windows↓](#sub:SynchronizeWindows) to create ROIs across multiple images. Multiple selections can be stored as [Overlays↓](#sub:Overlay-Intro) or in the [ROI Manager↓](#fig:The-ROI-Manager) list (AnalyzeToolsROI Manager...↓](#sub: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](/media/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\[\[\#sub:Copy%5Bc%5D\Copy \[c\]↓\]\], Edit\[\[\#sub:Paste%5Bv%5D\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↓](#Arrow-Keys) shortcuts).
**Resizing** The [Brush Selection Tool↓](#sub: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↓](#sec:Area-selection-tools) and [Line Selection Tools↓](#sec: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.
[Key Modifiers↓](#sec:Key-Modifiers)
### Composite Selections
![figure images/compositeROI.png](/media/images/compositeroi.png)
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↓](#sub: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:[↓](#index-Selection-Composite)
⇧ 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 EditSelection[Enlarge...↓](#sub:Enlarge...) command as explained in [14↓](#infobox:Composites) [Converting Composite Selections↓](#infobox:Composites).
[Wand Tool↓](#sub:Wand-Tool), [ROI2PolylineROI]( macro
### Selections With Sub-pixel Coordinates[↓](#index-Sub-pixel-selections)\\featureSelections with sub-pixel resolution Since ImageJ 1.46, selections can be defined with Sub-pixel resolution, beyond the nominal pixel resolution of the image: [Floating point selections↓](#fig:Subpixel-selections). Line Selections (*see* [Line Selection Tools↓](#sec:Line-Selection-Tools)) are created with floating-point coordinates if the *Sub-pixel resolution* checkbox is active in EditOptions[Profile Plot Options...↓](#sub:Profile-Plot-Options...). Sub-pixel coordinates of pre-existing selections can be interpolated using the EditSelection[Interpolate↓](#sub:Interpolate) command. Interpolated points are easily noticeable on small selections created on images zoomed 1200% or greater.
[]( )
![figure images/SubPixel.png](/media/images/subpixel.png)
Figure 7 **Interpolated selections.** ROIs drawn with (left) or without (middle) sub-pixel accuracy. For line selections (*see* [Line Selection Tools↓](#sec:Line-Selection-Tools)), this option can be enabled in EditOptions[Profile Plot Options...↓](#sub:Profile-Plot-Options...) by activating the *Sub-pixel resolution* checkbox. Pixel coordinates of area selections (*see* [Area Selection Tools↓](#sec:Area-selection-tools)), can be interpolated using EditSelection[Interpolate↓](#sub:Interpolate). The image on the right is the output of [SubPixelSelections.js](/ij/macros/js/SubPixelSelections.js), a script that demonstrates how to create selections at sub-pixel resolution without the need of setting any option in ImageJ.
[Zoom↓](#sub:Zoom), [Magnifying Glass↓](#sec:Magnifying-Glass)
## Overlays[]( )\\improvementImproved handling of Overlays [↓](#index-Overlay)[↓](#index-Non-destructive-annotations)[↓Overlays](#index-Annotations-Non-destructive-image-overlay) 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↓](#fig:The-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↑](#sub:ImageJ2intro) so we urge you to download IJ2 if multiple ROIs are important in your workflows.
[]( )
![figure images/OverlayShowcase.png](/media/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↓](#sub:Overlay)documentation for further [examples↓](#fig:image-overlays). You can [download the frontmost](/ij/docs/guide/images/ImageWithOverlay.tif) 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↓](#sub:Overlay), and in the ROI Manager window (AnalyzeTools[ROI Manager...↓](#sub:ROI-Manager...)). Appearance of overlay selections can be adjusted using ImageOverlay[Overlay Options...↓](#sub:Overlay-Options...)/[Labels...↓](#sub:Labels...) As mentioned in [3↑](#infobox:Formats) [Image Types: Lossy Compression and Metadata↑](#infobox:Formats), 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 (ImageOverlay[Add-Selection...%5Bb%5D](#sub:Add-Selection...%5Bb%5D) ↓).\\feature Once added to the image overlay, ROIs can be re-activated by Alt-clicking, Control-clicking or long-pressing ($$ \frac{1}{4} $$ second or longer). Activated ROIs can be deleted by pressing the ⌫ Backspace key. Selections can also be added and recovered in bulk, using the ImageOverlay[From ROI Manager↓](#sub:From-ROI-Manager)/[To ROI Manager↓](#sub:To-ROI-Manager) commands.
Non-destructive annotations Overlays are the best way of annotating images in ImageJ ([examples↓](#fig:image-overlays)). As vector graphics, overlays do not change pixel values, can be scaled without loss of quality even at high zoom levels (*see* [19↓](#infobox:ZoomedCanvas) [Working with Zoomed Canvases↓](#infobox:ZoomedCanvas)) and can be displayed at different opacity values (*see* [20↓](#infobox:HEX) [Hexadecimal Color Values↓](#infobox:HEX)). RGB snapshots of the image with embedded overlays can be created by holding ⇧ Shift + F, the shortcut for ImageOverlay\[\[\#sub:Flatten-%5BF%5D\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↓](#sub:SaveAs)), or when printing the image canvas (File\[\[\#sub:Print...%5Bp%5D\Print... \[p\]↓\]\]). The Flatten command is also listed in the [ROI Manager↓](#fig:The-ROI-Manager).
Image ROIs An [↓](#index-Image-selection)[↓imageROI](#index-ImageROI) (image selection) is a ROI that displays an image as an overlay. As described in EditSelection[Image to Selection...↓](#sub:Image-to-Selection...) and ImageOverlay[Add Image...↓](#sub:Add-Image...), this allows multiple images to be [↓blended](#index-Blend) on a single image canvas.
## 3D Volumes Currently, the support for [↓](#index-ThreeD-ROIs_3D-ROIs)[↓](#index-3D-ROIs)3D ROIs (selections containing contiguous cluster of voxels) is somewhat limited in ImageJ. This limitation has been addressed by [ImageJ2↑](#sub:ImageJ2intro) 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 [↓](#index-Fiji)[Fiji↑](#sub:Fiji-intro).
[]( )
![figure images/3Dviewer.png](/media/images/3dviewer.png)
Figure 9 **3D Viewer (Fiji 1.46o), bringing hardware-accelerated 3D visualization to ImageJ.** As explained in [3D Volumes↑](#sub:3D-Intro), most of plugins that truly extend ImageJ functionally to multi-dimentional data are bundled as part of Fiji.
3D Filters Specialized [↓](#index-ThreeD-Filters_3D-Filters)[↓](#index-3D-Filters)3D filters such as ProcessFilters[Gaussian Blur 3D...↓](#sub:Gaussian-Blur-3D...) can be installed to perform 3D operations. Examples are the [3D processing package]( by Thomas Boudier [34]([#biblio-84)\] and the [3D binary filters]( by Benjamin Schmid.
3D Object Counter [3D Object Counter]( (3D-OC) [↓](#index-ThreeD-Object-Counter_3D-Object-Counter)[↓counts](#index-3D-Object-Counter) and qualifies 3D objects in a stack [97]([#biblio-147)\], similarly to the 2D analysis performed by Analyze[Analyze Particles...↓](#sub:Analyze-Particles...) It is complemented by [3D Roi Manager]( [34]([#biblio-84)\], a companion plugin that adds a 3D [ROI Manager↓](#fig:The-ROI-Manager) to ImageJ
3D Viewer [3D Viewer]( [↓](#index-ThreeD-Viewer_3D-Viewer)[↓brings](#index-3D-Viewer) powerful hardware-accelerated 3D visualization to ImageJ [15]([#biblio-65)\], extending the limited functionality of ImageStacks[3D Project...↓](#sub:3D-Project...). In the ImageJ [3D Viewer↑](#fig:-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 Tracer [Simple Neurite Tracer]( [↓allows](#index-Simple-Neurite-Tracer) semi-automated segmentation of tubular structures in 3D [78]([#biblio-128)\]
TrakEM2 As mentioned earlier, [Software Packages Built on Top of ImageJ↑](#misc:TrakEM2) features powerful tools for multi-dimensional regions of interest [7]([#biblio-57)\]
ImageStacks[3D Project...↓](#sub:3D-Project...)/\[\[\#sub:Orthogonal-Views\|Orthogonal Views \[H\]↓\]\], Analyze[Surface Plot...↓](#sub:Surface-Plot...), [22↓](#infobox:Skeletonize-vs-Skeletonize3D) [Skeletonize vs Skeletonize 3D↓](#infobox:Skeletonize-vs-Skeletonize3D), [3D tools in Fiji](, [Three Pane Crop](, [3D image processing tutorials]( on the ImageJ wikipage
## Settings and Preferences[]( )\\improvement [↓](#index-Settings)[↓](#index-Preferences)[↓ImageJ](#index-Options) preferences are automatically saved in a preferences file, theIJ\_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 EditOptions[Reset...↓](#sub:ResetOptions), 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...↓](#sub: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"); run("Brightness/Contrast..."); }
The `setOption()` [macro function](/ij/developer/macro/functions.html#setOption) can be used to set this and several other ImageJ options. Calling this function from the [↓](#index-StartupMacros)[↓](#index-AutoRun)"AutoRun" macro in the StartupMacros.txt file ensures preferences are set each time ImageJ starts. The macro [(13↑)](#lis:setOption) [Settings and Preferences↑](#lis:setOption) exemplifies this approach ensuring that the following settings are enforced at startup: 1. TIFF tag values are displayed by ImageJ (*Debug Mode* in EditOptions[Misc...↓](#sub:Misc...)) 2. Bicubic interpolation is preferred over bilinear (e.g., EditSelection[Straighten...↓](#sub:Straighten...)) 3. The name of the measured image name is recorded in the first column of the [Results Table↓](#sec:Results-Table) (*Display Label* in Analyze[Set Measurements...↓](#sub:Set-Measurements...)) 4. Measurements are not restricted to thresholded pixels (*Limit to Threshold* in Analyze[Set Measurements...↓](#sub:Set-Measurements...)) 5. Binary images are processed assuming white objects on a black background (*Black background* in ProcessBinary[Options...↓](#sub:BinaryOptions...), *see* [23↓](#infobox:blackBackground) [Interpreting Binary Images↓](#infobox:blackBackground)) 6. *Background color* is black and *foreground color* is white (EditOptions[Colors...↓](#sub:Colors...)) 7. ImageJ plots contain grid lines and are always $$ 350 \times 200 $$ pixels in size (EditOptions[Profile Plot Options...↓](#sub:Profile-Plot-Options...)) 8. Open the B&C widget at its last saved screen position (ImageAdjust\[\[\#sub:Brightness/Contrast...%5BC%5D\Brightness/Contrast... \[C\]↓\]\])
[Customizing the ImageJ Interface↓](#sec:GUIcustomization), FAQs[↓](#nom-faq) on [ImageJ wikipage](, [8↓](#infobox:Organizing-Commands) [Organizing Commands in the Menu Bar↓](#infobox:Organizing-Commands)