Olena
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.
Values
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.