Essex logo VASE logo

EVE, the Easy Vision Environment

EVE and its test script are available from here.

EVE provides easy-to-use functionality for performing common image processing and computer vision tasks. The intention is for them to be used during interactive sessions, from the Python interpreter's command prompt or from an enhanced interpreter such as ipython as well as in scripts.

EVE is built principally on top of the popular numpy ('numerical python') extension to Python. Images are represented as numpy arrays, usually 32-bit floating-point ones, indexed by line, pixel and channel, in that order: image[line,pixel,channel]. The choice of a floating-point representation is deliberate: it permits images that have been captured from sensors with more than 8 bits dynamic range to be processed (e.g., astronomical images and digital radiographs); it supports Fourier-space processing; and it avoids having to worry about rounding values except at output. Images in EVE may also contain any number of channels, so EVE can be used with e.g. remote sensing or hyperspectral imagery.

Other Python extensions are loaded by those routines that need them. In particular, PIL (the 'Python Imaging Extension') is used for the input and output of common image file formats, though not for any processing. scipy ('scientific python') is used by several routines, and so are a few other extensions here and there.

On the other hand, EVE is slow. If you're thinking of using EVE instead of openCV for real-time video processing, forget it! This is partly because of the interpreted nature of Python and partly because EVE attempts to provide algorithms that are understandable rather than fast: it is intended as a prototyping environment rather than a real-time delivery one. (This also makes it useful for teaching how vision algorithms work, of course.) In the fullness of time, it is intended to hook either OpenCV or dedicated C code backends for common functions that could usefully be speeded up, and also to investigate the use of GPUs — but not yet.