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!

ImageJ plugins
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
(1) QuickTime plugins require that QuickTime for Java (QTJ) is installed on your compu
ter. 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.

(2) 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.

(3) 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.

(4) 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 have been commented, streamlined, and nicely formatted by Jon Hardin (hardin@hardindd.com). Yes, he is my son, and he is graduating this spring in computer science and mathematics from UW-Madison. He has his own computer software engineering and consulting 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
Description: This plugin plays 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+.

QuickTime Movie Opener
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+.

QuickTime Video Capture
Description: Previews and captures video frames from a QuickTime compatable 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: These basic QuickTime plugins have been archived as a .jar file by Wayne Rasband, and are now bundled with current installs of ImageJ. The .jar file can also be found here. This can be placed anywhere in the "Plugins" directory in the main ImageJ directory.

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 borwing 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]

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 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_badgensf_badge