fview - Extensible realtime image viewing, saving, and analysis app

Overview and Usage Guide

fview is an application to view and record data from uncompressed digital video cameras. The name ‘’fview’’ derives from “fly viewer” – the software was developed within the Dickinson Lab at Caltech to record movies of flies.

See the Gallery for some screenshots.


  • Plugins for realtime image analysis – Plugins to perform realimage image analysis are straightforward to write, with templates included to get you started quickly. Plugins have been written, for example, to perform background subtraction very quickly by making use of Intel’s Integrated Performance Primatives (IPP) library. See writing FView plugins.
  • camera trigger device with precise timing and analog input – see this page
  • Many supported cameras – fview uses libcamiface - camera interface C API to interact with cameras. This means that if you use fview, your code is independent from the particular camera hardware you’re using.
  • Written in PythonPython is used as the “glue” that hold the application together – the underlying image processing and saving is performed by high performance C code. Flexible memory allocation is possible for easy integration with other languages and libraries.

Running fview

Fview has options which can be set via environment variables. These are:


Set to non-zero to direct all output to the console (linux) or to a pop-up window (Windows, Mac OS X). Otherwise, the default behavior of saving to fview.log.


If this is non-zero, it will cause FView to raise an exception and thus close noisily, if any of its plugins raise exceptions. Otherwise, the default behavior of warning about the exception and continuing without the plugin will be used.


Set to non-zero to disable use of OpenGL for image display. This will be slower and take more CPU time, but will avoid any potential bugs with the OpenGL side of things.


Set to the directory name in which to record movies. (This can also be set with the Menu option “File->set record Directory...”.)

Current limitations

fview currently only supports a single camera. Although the plugin structure and the camera interface are inherently multi-camera ready, fview itself has not been written to support capturing from multiple cameras simultaneously. Flydra, for example, makes use of multiple cameras using motmot.