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