4d_player

A QuickTime movie being played in the QT4D Player plugin within ImageJ under Macintosh OS X 10.4, Java virtual machine 1.5, and QuickTime for Java 6.1. [Original footage - Mark Sheffield; software development: Jeff Hardin]

I (Jeff) have developed plugins that run within the public domain program, ImageJ, to acquire, process, and play back 4d microscopy data as an outgrowth of our own imaging needs. The advantage of this software suite is that it is free(!), and that it allows 4d datasets to be viewed without special, proprietary software. Please recognize that I am a professor, and program in my "spare" time, so support for these plugins is limited and bound to be sporadic!

Click on the links below to go to various section of this page...

(1) MicroManager scripts and associated ImageJ plugins
(2) FRAP plugin for ImageJ
(3) Quicktime plugins for ImageJ
(4) Acquisition plugins for ImageJ
(5) Legacy software

MicroManager scripts/plugins
Coming soon...

FRAP plugins
FRAP profiler (final version)
Description: This plugin operates on a FRAP dataset (open in ImageJ as a TIFF stack). Normalizes for overall bleaching, and permits one- and two-component exponential curve fitting (thanks to additions to ImageJ by Wayne Rasband; thanks Wayne!). Code written by Jeff Hardin, adapted from Tony Collins' Macbiophotonics plugins.
Plugin is available here: [source] [plugin]
Sample TIFF stack (ZIP archive; 53 Mb): sample data

Quicktime plugins for ImageJ

Many of my plugins can be found on the ImageJ plugins page at the ImageJ website. This keeps them all in one location. Thanks to Wayne Rasband (NIH) for writing the base code for ImageJ, and and for hosting and annotating plugins. Wayne is a tireless servant of the biomedical imaging community.

Important notes
new(1) Quicktime for Java is being deprecated by Apple. It does not function on 64-bit installations of ImageJ. This means that you must be running ImageJ in 32-bit mode. Quicktime for Java does not work at all on Windows systems running in 64-bit mode.

new(2) July 2011: Recent Java updates required changes to the version checking code in these plugins. Try the most recent versions of the plugins on this site if you are having trouble. The 4d_Plugins.jar file has been updated.

(3) QuickTime plugins require that QuickTime for Java (QTJ) is installed on your computer. Requires both QuickTime and QuickTime for Java. Both are preinstalled on Macs. Windows users must install QuickTime 7 and copy QTJava.zip to the Java extensions folder (ImageJ\jre\lib\ext). Additional instructions can be found here on the ImageJ web site.

(4) Older issues
(a) Changes to the underlying architecture of QuickTime for Java broke many pieces of code under Mac OS X when using JMV 1.4+ and QTJ 6.1+. I have rewritten a ton of code to allow my plugins to work on newer Macs. An invaluable resource is Chris Adamson's book, QuickTime for Java: A Developer's Notebook (O'Reilly). In addition to the book, Chris is a really cool guy and incredibly helpful to the QuickTime for Java developer community.

(b) Oct. 2007: The latest update to QuickTime (7.2) can result in non-functional QuickTime for Java when a Mac was updated first using the QuickTime 7.2 updater and then the OS X 10.4.10 combined updater. The latter overwrites some newer QTJ files that are installed as part of the QuickTime 7.2 update. Downloading the QuickTime 7.2 updater as a standalone application at http://www.apple.com/support/downloads/quicktime72formac.html and reinstalling the QuickTime 7.2 update seems to fix this problem on the occasional machine I have encountered that displays this behavior.

(c) Oct. 2007: The latest update to QuickTime (7.2) can result in non-functional QuickTime for Java when a Windows machine has more than one version of the Java Runtime Environment (JRE) or the Java Development Kit (JDK). Apple's automatic update software for QuickTime only updates the QTJava.zip file associated with the newest version of the Java Virtual Machine installed. This means that for QTJava calls to function after updating to QuickTime for Windows 7.2 or higher, you must manually replace the QTJava.zip file associated with each older JVM.

QuickTime and 4d plugins/macros
Note: Many of these plugins were commented, streamlined, and nicely formatted years ago by Jon Hardin (hardin@hardindd.com). He is my son, and President and CEO of his own company, Hardin Design and Development.

Other notes: Source code is freely available for all plugins.

Download all plugins as a JAR file: 4d_Plugins.jar
Directions:
Place the JAR file anywhere in the "Plugins" folder in your ImageJ installation. Restart ImageJ, and the plugins will appear under various submenus in ImageJ, with names that correspond to the toolset macros provided on this page.

QuickTime plugins available on the ImageJ web site
QuickTime Movie Player [removed]
Description: This plugin played a QuickTime movie in a window with a standard movie controller. Original code by Wayne Rasband; updated by Jeff Hardin for newer implementations of QTJ. Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+.
Note: Wayne Rasband has implemented similar changes to the built-in QuickTime movie player in ImageJ. Use "File->Import...->QuickTime Movie..." under most recent version of ImageJ

QuickTime Movie Opener [removed]
Description: This plugin opens a QuickTime movie as an ImageJ stack. Original code by Wayne Rasband; updated by Jeff Hardin for newer implementations of QTJ. Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+.
Note: Wayne Rasband has implemented similar changes to the built-in QuickTime movie player in ImageJ. Use "File->Import...->Using QuickTime..." under most recent version of ImageJ

QuickTime Video Capture [removed]
Description: Previews and captures video frames from a QuickTime compatible camera. Written by Wayne Rasband, with minor help for newer implementations of QTJ by Jeff Hardin. Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+.
Note: This is now built-in to ImageJ. Use "File->Import...->Video." under most recent version of ImageJ for Mac OS X.

QuickTime Stack Writer
Description: This plugin is an alternative to the QuickTime Movie Writer plugin that comes with ImageJ. It uses the QuickTime native Save As... dialog box, which means it cannot be as easily scripted using the Macro recorder in ImageJ. It is dramatically faster that the Movie Writer plugin. Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+. By Jon and Jeff Hardin.
You can also pick it up here: [source] [plugin]

JMF Movie Player
Description: This plugin displays uncompressed AVIs using Sun's Java Media Framework. This plugins works under Windows, Mac OS 9, Mac OS X, and Linux. jmf.jar must be installed in the appropriate location. Note that in theory this plugin could serve as the basis of Linux-friendly 4d player for uncompressed AVIs. We have tried to get this working, but we have a long way to go...

Other QuickTime and 4d Plugins
[To do:Eventually, clicking on the name of the plugin will take you to a page with a fuller description...]

Source code can be edited with any text editor or ImageJ itself. Plugins are packaged as .ZIP files. Unzip using your compression software of choice (e.g., WinZip or StuffIt Expander), and place in the Plugins directory (or subfolder) within the ImageJ directory.

Other QuickTime plugins

QuickTime Movie Player (revised) [source] [plugin]
Description: This plugin plays a QuickTime movie in a resizable window with a standard movie controller. Original code by Wayne Rasband; updated by Jeff Hardin for newer implementations of QTJ. Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+.

Concatenate Movies [source] [plugin]
Description: This plugin reads movies from a specified folder and concatenates them in alphabetical order into one large movie. After using the Rename Perkin-Elmer AVIs plugin to rename them, this plugin is useful for concatenating .AVIs generated using Perkin-Elmer's UltraView software into a single 4d movie that can then be read using the QT4D Player plugin.

4d plugins
Documentation

Download "Installation Tips" [PDF]

Download the "Getting Started" guide with screen shots (2.7 Mb) [PDF]

Individual plugins
QT4D Player [source] [plugin]
Description: This plugin displays 4d data saved as a QuickTime movie in a resizable ImageJ window. If present, this plugin can read information from a text file with the same root name as the 4d movie. The plugin allows export of images/stacks, and rudimentary processing of movies using standard QuickTIme filters (color, brightness/contrast, etc.). Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+. A Mac OS 9 version is available here: [source] [plugin]

QT4D Writer [source] [plugin]
Description: This plugin uses the same basic functionality as the QuickTime Stack Writer plugin to compile a 4d movie from a folder containing 4d data as single images. Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+. A Mac OS 9 version is available here: [source] [plugin]

Browse4D [source] [plugin]
Description: This plugin allows browsing of 4d datasets created as single images in a folder. Does not require reading the data into RAM or as a virtual stack, speeding initial access times compared to the Image5D plugin or the Virtual Stack opener plugin.
A Mac OS 9 version is available here: [source] [plugin]
Update Dec. 2008: A bug in the info file reader routines was fixed.
Update July 2009: Fixed focus problem; changed shortcut keys to correspond to changes in ImageJ code base. Shift + left arrow = down; shift + right arrow = up;

Acquisition plugins for ImageJ
Acquire4D

Description: This plugin has been used in the Hardin lab for acquiring 4d Nomarski data using a Ludl MAC2000 Z controller with Uniblitz shutter, or a Prior Optiscan Z controller with a DTR-controlled Uniblitz shutter. Images are acquired from a video source using a Scion AG5 frame grabber. The Scion libraries and ImageJ files should be installed as described here. Z controllers and shutters are controlled through the serial port (or using a USB-to-serial adapter, such as the Keyspan adapter) using the easy-to-use
SerialIO serial port libraries. Operating system-specific versions of this library can be purchased from SerialIO. Works under OS X and JVM 1.4+ and QuickTime for Java 6.1+. A Mac OS 9 version is available.

Two slightly different versions of this plugin are available:

(1) Ludl MAC2000 Z-motor/Uniblitz D122 controlled via the Ludl [source] [plugin]
A Mac OS 9 version [source] [plugin]

(2) Prior Optiscan Z-motor/Uniblitz D122 controlled via the data terminal ready (DTR) line of a custom serial cable. Mac OS 9 version, but should be adaptable for OS X/Windows [source] [plugin]

Perkin-Elmer file renaming plugins
Rename Perkin-Elmer AVIs
[source] [plugin]
Description: This plugin adds leading zeros to the names of Perkin-Elmer AVIs produced from Perkin-Elmer's UltraView temporal module software for the Perkin-Elmer LCI spinning disc confocal microscope. This allows them to be concatenated alphabetically into 4D movies using the Concatenator plugin.

Rename Perkin-Elmer TIFFs [source] [plugin]
Description: This plugin renames TIFF stacks for use with the Linux-based program Priism. This is a really unintelligent plugin, but could be modified for other naming conventions.

ImageJ macros
4d Tools toolset macro [source]
Description: This toolset macro installs a toolset for ImageJ that provides convenient button access to Jeff's QuickTime, 4d and rotation plugins. Place in the ->macros->toolsets folder in your ImageJ home directory to enable this functionality. Requires ImageJ 1.37t or higher.

XY project macro [source]
Description: Performs 3d projection, stereo pair, and anaglyph projection on a stack. Combines the functionality of the standard ImageJ 3d projection dialog with the stereo pair/anaglyph functions of Tony Collins' stereo pair plugin. Note: Requires that the Stack Combiner plugin is installed.

Batch project macro [source]
Description: Performs batch 3d projection on a folder of TIFF stacks, and outputs the results as single images to another directory. The resulting images can then be compiled into a 4d QuickTime movies using the QT4D Writer plugin. Note: Requires that the Stack Combiner plugin is installed.

Legacy software for Mac OS 9
NIH Image 1.62-QTS
Application and macros as a Stuffit .sit file for MAC2000 :
[application bundle]
[source code (in Pascal!) available on request]
Description: Modified version of NIH Image for Mac OS 9 or below. This version has added functionality for improved serial port control, data terminal ready line (DTR) control, and compilation of QuickTime movies from single-image 4d datasets.


Support for further development of some of these plugins was provided through a software development supplement to a grant from the National Institutes of Health and an equipment supplement to a grant from the National Science Foundation

NIGMS_badge nsf_badge