Jordi Ignés-Mullol - ImageJ Plugin projects



FRAME GRABBER ACQUISITION PLUGINS

This is a family of plugins based on the project JNIAkiz by Adrian Daerr. In that project, Adrian developed a JNI native interface to be able to grab frames using a Scion Frame Grabber (in particular a Scion LG-3). The original code was developed under MacOS-X, although it could be ported to Windows with minor modifications. The structure of the interface allows to adapt it to different frame grabbers with small modifications suited to the capabilities and the libraries provided by the manufacturer.
The software you can find here is an extension of this project, showing how the same interface can be used to drive two very different frame grabbers. The basic plugin, called GrabVideo (GrabVideo_.java) is an extension of the original by A. Daerr. It opens a window inside ImageJ with live video feed from the frame grabber (although the refresh rate is less than realtime, although reasonable). It lets the user select a Region of Interest, adjust brightness and contrast for optimum digitization (including the possibility of enabling "highlight saturated pixels" to help in that process). The current frame may be frozen or grabbed to create a stack with grabbed frames (the relative time with respect to the first frame is kept). You can also lauch a video acquisition, in which you select the number of frames and the delay between frames (1 for full video rate, 2 to grab each other frame, etc.). Acquisition will start when a key is pressed. Again, each frame is labelled with its real time.
This software has been developed and tested under Windows. Provided the Frame Grabber is supported by the manufacturer under a different OS, porting should be possible. In particular, minor modifications to the original JNIAkiz project may allow to use the extended GrabVideo plugin in ImageJ under MacOS-X wien a Scion LG-3.

Acquisition plugin for Scion Frame Grabbers (developed for LG-3). All files, source and compiled, can be downloaded here. Read install.txt for technical details.
*Copy the *.class files to a plugins directory, and the dll to the root ImageJ directory. The file scionfg.dll should also be there or somewhere the system can find it. Sustained acquisition at video rate has been enhanced over the standard capability provided by the number of onboard memory buffers. On a LG-3 with 64MB of onboard memory this is about 200 full frames, but increases if smaller ROI's are selected.

Acquisition plugin for Coreco Bandit-IICV Frame Grabber. All files, source and compiled, can be downloaded here. Read install.txt for technical details.
*Copy the *.class files to a plugins directory, and the dll to the root ImageJ directory. You must install the software provided by Coreco so that the required *.dll files will be somewhere the system can find them.


INPUT/OUTPUT PLUGINS

Import extra movie types using JMF and FOBS. Although the Java Media Framework provides the tools to handle arbitrary media streams under Java, the number of available codecs is very limited (see Plugins JMF Movie Player, and JMF Movie Reader. The SourceForge project FOBS takes a step in the right direction, making the codecs from the project ffmpeg available to java trough a JNI implementation (currently available for Windows, MacOS, and Linux).
With FOBS, ImageJ can import MPEG1, MPEG2 (e.g. from DVD recorder), MPEG4 (DiVX!), DV, AVI (compressed!), Quicktime...
The Plugin: I have implemented the PlugIn JMF_Movie_Processor2(), which, by the way, would also work with the standard JMF. This plugin lets you open a video file of any of the supported formats on a "player window". There, you can specity the playrate, select a Region of Interest, and set markers for a range of frames to acquire. In acquisition mode, you can import selected frames into a ImageJ stack for furher processing.  
Installation:First, you need to download and install FOBS for your system. Go to the installation folder of FOBS and copy the jmf.jar and fobs4jmf.jar files in the classpath of ImageJ or in the extensions folder of your Java Runtime Environment. It also works if you put them inside the plugins directory of ImageJ. Copy the native part (fobs4jmf.dll) and the jmf.properties file (important!) where ImageJ can find it (for instance in the ImageJ root directory). For the ImageJ plugin, download JMF_Movie_Processor.zip and extract everything into one of your plugins folder. When you restart ImageJ you should find the new plugin.
Current limitations:FOBS is a project under development. For this reason some standard jmf functionality may not be implemented yed.