This is an archive of the old MediaWiki-based ImageJ wiki. The current website can be found at imagej.net.

Getting Started


This part provides basic information on ImageJ installation, troubleshooting and update strategies. It discusses Fiji↓ and ImageJ2↓ as well as third-party software related to ImageJ. Being impossible to document all the capabilities of ImageJ without exploring technical aspects of image processing, external resources allowing willing readers to know more about digital signal processing are also provided.

Introduction

ImageJ is a public domain Java image processing and analysis program inspired by NIH Image for the Macintosh. It runs, either as an online applet or as a downloadable application, on any computer with a Java 1.5 or later virtual machine. Downloadable distributions are available for Windows, Mac OS X and Linux. It can display, edit, analyze, process, save and print 8--bit, 16--bit and 32--bit images. It can read many image formats including TIFF, GIF, JPEG, BMP, DICOM, FITS and ‘raw’. It supports ‘stacks’ (and hyperstacks), a series of images that share a single window. It is multithreaded, so time-consuming operations such as image file reading can be performed in parallel with other operations [A]  [A] A somehow outdated list of ImageJ’s features is available at http://imagej.nih.gov/ij/features.html.

It can calculate area and pixel value statistics of user-defined selections. It can measure distances and angles. It can create density histograms and line profile plots. It supports standard image processing functions such as contrast manipulation, sharpening, smoothing, edge detection and median filtering.

It does geometric transformations such as scaling, rotation and flips. Image can be zoomed up to 32 : 1 and down to 1 : 32. All analysis and processing functions are available at any magnification factor. The program supports any number of windows (images) simultaneously, limited only by available memory.

Spatial calibration is available to provide real world dimensional measurements in units such as millimeters. Density or gray scale calibration is also available.

ImageJ was designed with an open architecture that provides extensibility via Java plugins. Custom acquisition, analysis and processing plugins can be developed using ImageJ’s built in editor and Java compiler. User-written plugins make it possible to solve almost any image processing or analysis problem.

Being public domain open source software, an ImageJ user has the four essential freedoms defined by the Richard Stallman in 1986: 1) The freedom to run the program, for any purpose; 2) The freedom to study how the program works, and change it to make it do what you wish; 3) The freedom to redistribute copies so you can help your neighbor; 4) The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.

ImageJ is being developed on Mac OS X using its built in editor and Java compiler, plus the BBEdit editor and the Ant build tool. The source code is freely available. The author, Wayne Rasband (wsr@nih.gov), is a Special Volunteer at the National Institute of Mental Health, Bethesda, Maryland, USA.

Installing and Maintaining ImageJ

ImageJ can be downloaded from http://imagej.nih.gov/ij/download.html. Details on how to install ImageJ on Linux, Mac OS 9, Mac OS X and Windows [[[#biblio-1|1]]] are available at http://imagej.nih.gov/ij/docs/install/ (Help ▷ Installation…↓ command). Specially useful are the platform-specific Troubleshooting and Known Problems sections. Fiji↓ installation is described at https://fiji.sc/wiki/index.php/Downloads.

The downloaded package may not contain the latest bug fixes so it is recommended to upgrade ImageJ right after a first installation. Updating IJ consists only of running Help ▷ Update ImageJ…↓, which will install the latest ij.jar in the ImageJ folder (on Linux and Windows) or inside the ImageJ.app (on Mac OS X).

Help ▷ Update ImageJ…↓ can be used to upgrade (or downgrade) the ij.jar file to release updates or daily builds. Release updates are announced frequently on the IJ news website and are labelled alphabetically (e.g., v. 1.43m). Typically, these releases contain several new features and bug fixes, described in detail on the ImageJ News page. Daily builds, on the other hand, are labelled with numeric sub-indexes (e.g., v. 1.43n4) and are often released without documentation. Nevertheless, if available, release notes for daily builds can be found at http://imagej.nih.gov/ij/source/release-notes.html. When a release cycle ends (v. 1.42 ended with 1.42q, v. 1.43 with 1.43u, etc.) an installation package is created, downloadable from http://imagej.nih.gov/ij/download.html. Typically, this package is bundled with a small list of add-ons (Macros↓, Scripts↓ and Plugins↓).

Luts, Macros and Tools Updater, a macro toolset that performs live-updating of macros listed on the ImageJ web site

ImageJDistributions

ImageJ alone is not that powerful: it’s real strength is the vast repertoire of Plugins↓ that extend ImageJ’s functionality beyond its basic core. The many hundreds, probably thousands, freely available plugins from contributors around the world play a pivotal role in ImageJ’s success [[[#biblio-162|112]]]. Running Help ▷ Update ImageJ…↓, however, will not update any of the plugins you may have installed [B]  [B] Certain plugins, however, provide self-updating mechanisms (e.g., ObjectJ and the OME Bio-Formats)..

ImageJ add-ons (Plugins↓, Scripts↓ and Macros↓) are available from several sources (ImageJ's plugins page [Help ▷ Plugins…↓], ImageJ Information and Documentation Portal and Fiji's webpage, among others) making manual updates of a daunting task. This reason alone, makes it extremely convenient the use of ImageJDistributions↑ bundled with a pre-organized collection of add-ons.

Below is a list of the most relevant projects that address the seeming difficult task of organizing and maintaining ImageJ beyond its basics. If you are a life scientist and have doubts about which distribution to choose you should opt for Fiji↓. It is heavily maintained, offers an automatic updater, improved scripting capabilities and ships with powerful plugins. More specialized adaptations of ImageJ are discussed in Software Packages Built on Top of ImageJ↓.

Fiji

Fiji (Fiji Is Just ImageJ---Batteries included) is a distribution of ImageJ together with Java, Java 3D and several plugins organized into a coherent menu structure. Citing its developers, “Fiji compares to ImageJ as Ubuntu compares to Linux”. The main focus of Fiji is to assist research in life sciences, targeting image registration, stitching, segmentation, feature extraction and 3D visualization, among others. It also supports many scripting languages (BeanScript, Clojure, Jython, Python, Ruby, see Scripting in Other Languages↓). Importantly, Fiji ships with a convenient updater that knows whether your files are up-to-date, obsolete or locally modified. Comprehensive documentation is available for most of its plugins. The Fiji project was presented publicly for the first time at the ImageJ User and Developer Conference in November 2008.

MBF ImageJ

The MBF ImageJ bundle or ImageJ for Microscopy (formerly WCIF-ImageJ) features a collection of plugins and macros, collated and organized by Tony Collins at the MacBiophotonics facility, McMaster University. It is accompanied by a comprehensive manual describing how to use the bundle with light microscopy image data. It is a great resource for microscopists but is not maintained actively, lagging behind the development of core ImageJ.

Note that you can add plugins from MBF ImageJ to Fiji, combining the best of both programs. Actually, you can use multiple ImageJ distributions simultaneously, assemble your own ImageJ bundle by gathering the plugins that best serve your needs (probably, someone else at your institution already started one?) or create symbolic links to share plugins between different installations.

Description of all ImageJ related projects at ImageDev

Related Software

Software Packages Built on Top of ImageJ

Bio7Bio7 is an integrated development environment for ↓ecological modeling with a main focus on individual based modeling and spatially explicit models. Bio7 features: Statistical analysis (using R); Spatial statistics; Fast communication between R and Java; BeanShell and Groovy support; Sensitivity analysis with an embedded flowchart editor and creation of 3D OpenGL (Jogl) models (see also RImageJ in ImageJ Interoperability↓).

BoneJBoneJ ↓is a collection of tools for trabecular geometry and whole bone shape analysis.

\microManagerMicro-Manager is a software package for control of automated microscopes. It lets you execute common microscope image acquisition strategies such as time-lapses, multi-channel imaging, z-stacks, and combinations thereof. \microManager works with microscopes from all four major manufacturers, most scientific-grade cameras and many peripherals used in microscope imaging.

MRI--CIA' 'MRI Cell Image Analyzer, developed by the Montpellier RIO Imaging facility (CNRS), is a rapid image analysis application development framework, adding visual scripting interface to ImageJ’s capabilities. It can create batch applications as well as interactive applications. The applications include the topics “DNA combing”, “quantification of stained proteins in cells”, “comparison of intensity ratios between nuclei and cytoplasm” and “counting nuclei stained in different channels”.

ObjectJObjectJ, the successor of object-image, supports graphical vector objects that non-destructively mark images on a transparent layer. Vector objects can be placed manually or by macro commands. Composite objects can encapsulate different color-coded marker structures in order to bundle features that belong together. ObjectJ provides back-and-forth navigation between results and images. The results table supports statistics, sorting, color coding, qualifying and macro access.

SalsaJSalsaJ is a student-friendly software developed specifically for the EU-HOU project. It is dedicated to image handling and analysis of astronomical images in the classroom. SalsaJ has been translated into several languages.

[[|]]TrakEM2TrakEM2 is a program for morphological ↓data mining, three-dimensional ↓modeling and image stitching, registration, editing and annotation [[[#biblio-57|7]]]. TrakEM2 is distributed with Fiji and capable of:


  • 3D modeling Objects in 3D, defined by sequences of contours, or profiles, from which a skin, or mesh, can be constructed, and visualized in 3D.

    Relational modeling The extraction of the map that describes links between objects. For example, which neuron contacts which other neurons through how many and which synapses.

ImageJ Interoperability

Several packages exist that allow ImageJ to ↓interact with other applications/environments:

Bitplane ImarisImarisXT can load and execute ImageJ plugins. bpImarisAdapter (Windows only and requiring valid licenses for Imaris and ImarisXT) allows the exchange of images between Imaris and ImageJ.

CellProfilerCellProfiler [[[#biblio-61|11]]] features RunImageJ, a module that allows ImageJ plugins to be run in a CellProfiler pipeline.

IcyIcy, an open source community software for ↓bio-imaging, executes ImageJ plugins with almost 100% plugin compatibility.

Knime Knime (Konstanz Information Miner) contains several image processing nodes (KNIP) that are capable of executing ImageJ plugins and macros.

Open Microscopy EnvironmentAll Open Microscopy Environment projects such as Bio-Formats, VisBio and OMERO integrate well with ImageJ.

RImageJ --- R bindings for ImageJ Bindings between ImageJ and R (GNU S) — The free software environment for statistical computing and graphics. The documentation for RImageJ is available at http://cran.r-project.org/web/packages/RImageJ/RImageJ.pdf (see also Bio7 in Software Packages Built on Top of ImageJ↑).

MIJ --- Matlab--ImageJ bi-directional communication A Java package for bi-directional data exchange between Matlab and ImageJ, allowing to exchange images between the two imaging software. MIJ also allows MATLAB to access all built-in functions of ImageJ as well as third-party ImageJ plugins. The developers provide more information on the MIJ and Matlab File Exchange websites. Fiji↑ features Miji.m, which makes even more convenient to use the libraries and functions provided by Fiji’s components from within Matlab.

ImageJ2

ImageJDev is a federally funded, multi-institution project dedicated to the development of the next-generation version of ImageJ: “ImageJ2”. ImageJ2 is a complete rewrite of ImageJ, that includes the current, stable version ImageJ (“ImageJ1”) with a compatibility layer so that old-style plugins and macros can run the same as they currently do in ImageJ1. Below is a summary of the ImageJDev project aims:

  • To create the next generation version of ImageJ and improve its core architecture based on the needs of the community.
  • To ensure ImageJ remains useful and relevant to the broadest possible community, maintaining backwards compatibility with ImageJ1 as close to 100% as possible.
  • Expand functionality by interfacing ImageJ with existing open-source programs.
  • To lead ImageJ development with a clear vision, avoiding duplication of efforts
  • To provide a central online resource for ImageJ: program downloads, a plugin repository, developer resources and more.

Be sure to follow the ImageJ2 project news and the ImageDev blog for updates on this exciting project.

Getting Help

Help on Image Analysis

Below is a list of online resources (in no particular order) related to image processing and scientific image analysis, complementing the list of external resources on the IJ web site.

Ethics in Scientific Image Processing

Scientific Image Processing

Simple and clear, this Fiji↑ webpage explains basic aspects of scientific image processing.

Web site of Digital Image Processing: An Algorithmic Introduction using Java by Wilhelm Burger and Mark Burge [[[#biblio-164|114]]]. This technical book provides a modern, self-contained, introduction to digital image processing techniques. Numerous complete Java implementations are provided, all of which work within ImageJ.

Developed at the Department of Artificial Intelligence in the University of Edinburgh, provides on-line reference and tutorial information on a wide range of image processing operations.

The Imaging Facility Network (IFN) in Biopolis Dresden provides access to advanced microscopy systems and image processing. The website hosts high quality teaching material and useful links to external resources.

Stereology Information for the Biological Sciences, designed to introduce both basic and advanced concepts in the field of stereology.

ImageJ Related Publications on page 1↓

Help on ImageJ

Below is a list of the ImageJ ↓help resources that complement this guide (see $↓). Specific documentation on advanced uses of ImageJ (macro programming, plugin development, etc.) is discussed in Extending ImageJ↓.

  1. The ImageJ online documentation pages
    Can be accessed via the Help ▷ Documentation…↓ command.
  2. The Fiji↑ webpage:
    https://fiji.sc/
  3. The ImageJ Information and Documentation Portal (ImageJ wikipage):
    http://imagejdocu.tudor.lu/doku.php
  4. Video ↓tutorials on the ImageJ Documentation Portal and the Fiji YouTube channel:
    http://imagejdocu.tudor.lu/doku.php?id=video:start&s%5B%5D=video and http://www.youtube.com/user/fijichannel. New ImageJ users will probably profit from Christine Labno's video tutorial.
  5. The ImageJ for Microscopy manual
    http://www.macbiophotonics.ca/imagej/
  6. Several online documents, most of them listed at:
    http://imagej.nih.gov/ij/links.html and http://imagej.nih.gov/ij/docs/examples/
  7. Mailing lists:
    1. ImageJhttp://imagej.nih.gov/ij/list.html
      General user and developer discussion about ImageJ. Can be accessed via the Help ▷ Mailing List… command. This list is also mirrored at Nabble and Gmane. You may find it easier to search and browse the list archives on these mirrors. Specially useful are the [feed://rss.gmane.org/topics/excerpts/gmane.comp.java.imagej RSS feeds] and the frames and threads view provided by Gmane.
    2. Fiji users --- http://groups.google.com/group/fiji-users
      For user discussion specific to Fiji↑ (rather than core ImageJ).
    3. Fiji-develhttp://groups.google.com/group/fiji-devel
      For developer discussion specific to Fiji.
    4. ImageJ-develhttp://imagejdev.org/mailman/listinfo/imagej-devel
      For communication and coordination of the ImageJDev project.
    5. Dedicated mailing lists for ImageJ related projects
      Described at http://imagejdev.org/mailing-lists .

Using Mailing-lists

If you are having problems with ImageJ, you should inquiry about them in the appropriated ↓list. The ImageJ mailing list is an unmoderated forum subscribed by a knowledgeable worldwide user community with \thickapprox2000 advanced users and developers. To have your questions promptly answered you should consider the following:

  1. Read the documentation files (described earlier in this section) before posting. Because there will always be a natural lag between the implementation of key features and their documentation it may be wise to check briefly the ImageJ news website (Help ▷ ImageJ News…↓).
  2. Look up the mailing list archives (Help ▷ Mailing List…). Most of your questions may have already been answered.
  3. If you think you are facing a ↓bug try to upgrade to the latest version of ImageJ (Help ▷ Update ImageJ…↓). You should also check if you are running the latest version of the Java Virtual Machine for your operating system. Detailed instructions on how to submit a bug report are found at http://imagej.nih.gov/ij/docs/faqs.html#bug.
  4. Remember that in most cases you can find answers within your own ImageJ installation without even connecting to the internet since the heuristics for finding commands or writing macros have been significantly improved in later versions (see Finding Commands↓ and Extending ImageJ↓).
  5. As with any other mailing list, you should always follow basic netiquette, namely:
    1. Use descriptive subject lines — Re: Problem with Image>Set Scale command is much more effective than a general Re: Problem.
    2. Stay on topic — Do not post off-topic messages, unrelated to the message thread.
    3. Be careful when sending attachments — Refrain from attaching large files. Use, e.g., a file hosting service instead.
    4. Edit replies — You should include only the minimum content that is necessary to provide a logical flow from the question to the answer, i.e., quote only as much as absolutely necessary and relevant.