Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 05/11/10
  • Minor correction: 28/10/11

Olena : image processing

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 2.0 - 16/09/2011
  • License(s): GPL - File headers of the Olena project have the following clause:
    As a special exception, you may use this file as part of a free software project without restriction. Specifically, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other files to produce an executable, this file does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License.
  • Status: stable release, under development
  • Support: maintained, ongoing development
  • Designer(s): Current contributors: Thierry G├ęraud, Roland Levillain, Guillaume Lazzara. See also the complet list of contributors.
  • Contact designer(s): olena@lrde.epita.fr
  • Laboratory, service:


General software features

Olena is a Free Software platform dedicated to efficient and generic image processing. Its main component is a generic C++ library called Milena, providing many data structures for image processing as well as algorithms, in particular in the field of mathematical morphology.

Images and structures

Milena can be used on:

  • images based on regular grids (1D, 2D, 3D, ...),
  • images based on (undirected) graphs,
  • images based on complexes (http://en.wikipedia.org/wiki/Simplicial_complex),
  • any subset of the previous image types,
  • any of the previous images modified by a geometrical/topological transformation.

Core concepts of morphology and topology like adjacency and (resp.) structuring elements are represented by neighborhood and window (resp.) objects. Milena provides classical neighborhoods and windows (e.g., for 4- and 8-connexity on regular 2D grids, adjacent vertices on graphs, etc.), but users can define their own objects, and use them seamlessly with existing or new algorithms.


Milena supports many different value types and may therefore be used with virtually any real-world image inputs and outputs, as well as new and original image types.

Currently handled values types are:

  • Boolean (binary) values,
  • n-bit integers (with fixed n),
  • n-bit floating-point values (with fixed n),
  • n-bit gray-level values (with fixed n),
  • RGB, HSI, HSL color values,
  • labels (with no arithmetic),
  • fixed-size tuples and vectors of the previous value types.

These value types can be freely used with any image type and any algorithm, provided the combination is valid. Users can provide missing definitions when they want to handle non-covered cases. For instance, they can write a definition of the supremum on the set of RGB values to compute the morphological dilation of an RGB color image.

Swilena & Python

Olena provides a set of Python bindings thanks to the Swilena module. These bindings give access to Milena's features from Python scripts or directly from a Python interpreter (via the Swilena's Python Shell). This module is to be extended in the future releases.

Context in which the software is used

The Olena project aims are:

  • To be used for research purpose in software development for image processing and scientific use in general.
  • To provide a platform for research and experimentation in image processing and algorithmic.
  • To enable the development of prototypes or image processing applications and/or being used as a base for such projects. For instance, Olena is used in the Scribo project to perform document image analysis in numerical documents.
Publications related to the software

A list of Olena related publications is available: http://olena.lrde.epita.fr/Publications