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.
- 1 Introduction
- 2 Installing and Maintaining ImageJ
- 3 Getting Help
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 (email@example.com), 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/ ( command). Specially useful are the platform-specific Troubleshooting and Known Problems sections. ↓Fiji↓ installation is described at http://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 , which will install the latest ij.jar in the ImageJ folder (on Linux and Windows) or inside the ImageJ.app (on Mac OS X).
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↓).
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 , 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 , 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 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.
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
Software Packages Built on Top of ImageJ
Bio7 Bio7 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↓).
\microManager Micro-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”.
ObjectJ ObjectJ, 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.
SalsaJ SalsaJ 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.
[[|]]TrakEM2 TrakEM2 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.
Several packages exist that allow ImageJ to ↓interact with other applications/environments:
Bitplane Imaris ImarisXT 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.
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.
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.
Help on Image Analysis
Ethics in Scientific Image Processing
- Online learning Tool for Research Integrity and Image Processing
This website, created by the Office of Research Integrity, explains what is appropriate in image processing in science and what is not.
- Digital Imaging: Ethics (at the Cellular Imaging Facily Core, SEHSC)
This website, compiled by Douglas Cromey at the University of Alabama -- Birmingham, discusses thoroughly the topic of digital imaging ethics. It is recommended for all scientists. The website contains links to several external resources, including:
- What's in a picture? The temptation of image manipulation (2004) M Rossner and K M Yamada, J Cell Biology 166(1):11--15, doi:10.1083/jcb.200406019
- Not picture-perfect (2006), Nature 439, 891--892, doi:10.1038/439891b.
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↓.
- The ImageJ online documentation pages
Can be accessed via the command.
- The ↓Fiji↑ webpage:
- The ImageJ Information and Documentation Portal (ImageJ wikipage):
- 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.
- The ↓ImageJ for Microscopy manual
- Several online documents, most of them listed at:
http://imagej.nih.gov/ij/links.html and http://imagej.nih.gov/ij/docs/examples/
- Mailing lists:↓
- ImageJ — http://imagej.nih.gov/ij/list.html
General user and developer discussion about ImageJ. Can be accessed via the 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.
- Fiji users --- http://groups.google.com/group/fiji-users
For user discussion specific to Fiji↑ (rather than core ImageJ).
- Fiji-devel — http://groups.google.com/group/fiji-devel
For developer discussion specific to Fiji.
- ImageJ-devel — http://imagejdev.org/mailman/listinfo/imagej-devel
For communication and coordination of the ImageJDev project.
- Dedicated mailing lists for ImageJ related projects
Described at http://imagejdev.org/mailing-lists .
- ImageJ — http://imagej.nih.gov/ij/list.html
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:
- 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 ().
- Look up the mailing list archives (). Most of your questions may have already been answered.
- If you think you are facing a ↓bug try to upgrade to the latest version of 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.
- 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↓).
- As with any other mailing list, you should always follow basic netiquette, namely:
- Use descriptive subject lines — Re: Problem with Image>Set Scale command is much more effective than a general Re: Problem.
- Stay on topic — Do not post off-topic messages, unrelated to the message thread.
- Be careful when sending attachments — Refrain from attaching large files. Use, e.g., a file hosting service instead.
- 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.