Information on View5D

ImageJ plugin, Matlab plugin and Java applet (current version: 1.3.00, 07. Sept 2010)

Rainer Heintzmann, 
Randall Division, King's College London, London, U.K.

(heintzmann at gmail dot com)

The program View5D interactively displays of up to 5 dimensional volumetric datasets.

Multi-dimensional data frequently arises in confocal microscopy and medical imaging applications. The applet can be tested by clicking the links below, however a Java runtime environment (preferably from Sun Microsystems) must have been installed and Java activated in the preferences of your browser!

Here are some example screen shots and the applet version can be tested or the interactive online tutorials can be used.
There is also a reference of all commands and mode of operation

Main features of View5D are:Example displaying an MRI dataset


Online-Tutorials are also available. You can reproduce them directly with the viewer embedded in the web-page.

How to obtain

Download the current version as a zip-file with all the necessary classes and an example html-file in it. Just place it into your folder visible on the net together with a raw-data file (stacked X, Y, Z, Elements), edit the html file to refer to the correct raw data filename and to the correct dimensional sizes. The included jar file works both for the applet version and the ImageJ version.

The ImageJ plugin can be obtained as plugin with the documentation and examples included or you can download only the plugin. To install it in ImageJ, create a folder "View5D" in the plugin directory of ImageJ and unpack the zip file into this "View5D" folder or place the jar file directly into the ImageJ plugin folder.

If you want to modify the source to adapt it to your special needs you can do so under the terms of the GPL2 license. The source code is also available, currently as a single java file and supporting files (mostly for developing in Linux). Please feel free to send useful improvements back to me.

ImageJ plugin, Java applet and MATLAB plugin

The View5D Java program can be compiled as Java Applet or as a plugin to ImageJ or MATLAB. Its functionality remains identical; only the way its loads and saves data differs between applet and plugin. To optain information on the specific details, click Applet, ImageJ plugin, or as applet within MATLAB.

Almost all commands in View5D can be addressed via the keyboard (be careful when you type, as every letter has an action!) or the menu (right click in one of the data-display windows) and selection from the popup menu.

The most recent version of View5D and documentation can been found on the web page
(this is probably exactly the document you are just reading).


Display of time-series data is supported. When reading in the data from ImageJ the user can specify the number of timepoints in the dataset. The order of the data needs to be X, Y, Z, Time, Elements except for RGB data, where multiple elements are stored in the same integer. Depending on the application it may be useful to reorder the data before reading it in. Exchanging dimensions can be very useful (e.g. displaying time along the depth direction) since the projections along the time can be made and velocities estimated. However, there is currently no support of dimension exchange within the program, and the reordering has to be done prior to loading the data.

Single Particle Tracking

View5D can perform a guided particle tracking analysis (see also the interactive online tutorial on particle tracking). If the data is a series of 2D images, it is most useful to stack them along z-direction, for 3D+time data the stacking along time direction should be used. The direction along which to track can be selected via the Popup-menu in the user interface accessible via "n". The "Use automatic maximum finding" option and the "subpixel position by Center of Mass" option (in the menu accessed by "n") should be activated. For 2D+time data the "Z Neighbours" search width should be set to zero. In the fist time-point where a particle to track is visible, it should be marked using "m". By pressing "W", the particle is tracked thoughout the stack starting from the currently active marker. The tracking is performed, looking the maximum (with iterative refinements and Center of Mass determination) in the next slice in the region determined by the "X Neighbours", "Y Neighbours" setting, starting at the positions of the previous slice. Once a trace has been generated, it can be corrected by dragging the appropriate wrongly assigned marker to the correct spot and pressing "W" to refine all successive time-points. It is useful to deactivate "Show all slices", in which case the active marker corresponds to the displayed slice. The track can conveniently be checked by advancing along its direction with pressing "0" and "9".
The next particle-track can be started by pressing "k" near its position in the slice, where it is first visible. See section Markers for details of navigating in marker lists.
When tracking multiple cells or intracellular components it is useful to align the visualisation to a neighbouring track "|". The saved track data will still correspond to the raw data, but the tracking algorithms search in the aligned frames and find corresponding particles much easier.
When cells devide it is useful to keep track of the cell lineage. A division at the end of a track can be initiated by pressing "\". This will generate two markers on which the track then can be continued.
If a particle is bleached, the particle tracker will still try to continue. For convinience the remaining part of a track can be deleted by pressing "Q". Once a particle track is determined, the estimated particle can be subtracted from the data by pressing "#". The subtraction is based on a Gaussian of selected width (see menu under "n") and the momentary integral intensity calculated for the position in the particle track.
Finally the output of all partcle traces and intensities can be generated with "m" pressed in the lower right element (or spectral) display window. The text output can then be cut-and-pasted to any editor.
The "repulsion" toggle in the menu accesible via "n" switches a Gaussian based intensity-subtraction during the determination of marker position on and off. Note, that this feature does not permanently subtract information from the intensity. With the "repulsion" on, the marker finding can be very slow, since the influence of all other markers has to be tested.
By pressing "q" multiple times in the element window, it is possible to show the different intensity information in the marker lists as plots. The X-direction of the plot is determined by the "Track direction" toggle in the marker-menu ("n"). This feature is useful to e.g. plot the intensity of vesicles during their movement through a cell.


For many applications it is useful to define regions of interest (ROIs). These define the 3-dimensional data volume on which a number of processing algorithms act. Since it is difficult to define 3D ROIs, the following approach was selected: A voxel belongs to the 3D ROI, if it is positioned inside all three 2D-ROIs given in the orthogonal slices or projections. This is useful for many application but does not allow to define all arbitrary shapes in 3D. In a future version this will be improved by allowing multiple 3D ROIs to be active at the same time.

Projections and Processing

For the projections as described below, the data values including the effect of the threshold and the logarithmic mode are used. The colormap, however, will not influence the computation of the maximum or average but only have its effect on the display of the result.


View5D can generate histograms by combining the information from up to 3 elements.

Another viewer will pop up containing the histogram. The axes will be calibrated in corresponding value-units. By default the histogram view starts in a logarithmic display mode using a non-linear colormap. The current settings of the threshold lower and upper limit (see "1"-"4") in each participating element will be used to define the limiting bins of the histogram.
If  "h" is pressed a second time in the original window (for example after having selected a different 3D-ROI) a further element in the histogram will be generated (over- and underflow voxels will go to the highest/lowest bin). The histogram view automatically toggles to multicolor display. The full functionality (e.g. projections), line-scans, ... is available in the histogram view.
Pressing "h" inside the histogram window itself will generate a new element in the original data display window. This element will mark the position of voxels whose histogrammed elements (as currently defined by the histo-X, histo-Y and histo-Z elements) lie within the currently defined ROIs in the histogram view.

Bug reports

If you find any bugs, please send them to me under heintzmannd at gmail dot com stating the system you were using and the java version. Please put "view5d bug" in the subject line.

History of View5D

View5D started under the name "View3D" during my PhD time in Heidelberg in the group of Prof. Dr. Christoph Cremer. It was later further developed in the department of molecular biology, director Dr. Thomas Jovin, at the Max Planck Institute for Biophysical Chemistry in Goettingen. There is was tested and used for several sets of biological imaging data (mostly CLSM). The latest additions are from my time at King's College London. The matlab and DIPImage compatibility issues were adressed together with Dr. Bernd Rieger and Dr. Keith Lidke.

Recent changes:

Future goals

Back to the View5D homepage
For hints and suggestions, contact the author under heintzmann at gmail dot com

DWI Lawyer
DWI Lawyer