Subject: Re: [boost] Review of Generic Image Library (GIL) begins today, Oct5, 2006
From: "Johan Oudinet" <[email-masked]>
Date: Sat, 7 Oct 2006 17:43:09 +0200

On 10/5/06, Tom Brinkman <[email-masked]> wrote:
> The review of Generic Image Library (GIL) begins today,
> October 5, 2006, and continues through October 15, 2006.
>
> Please download the library at: http://opensource.adobe.com/gil.
> Minor change are being made regularly (daily), so check the site
> often for
> updates.
>
> I highly recommend viewing the 55 minute Breeze
> presentation describing the library at:
> http://opensource.adobe.com/gil/presentation/index.htm
>
> A tutorial is available at:
> http://opensource.adobe.com/gil/gil_tutorial.pdf
>
> A design guide is availage at:
> http://opensource.adobe.com/gil/gil_design_guide.pdf
>
> Description:
>
> The Generic Image Library (GIL) is a C++ library that abstracts
> the image representation from operations on images. It allows
> for writing the image processing algorithm once and having it
> work for images in any color space, channel depth and pixel
> organization, or even synthetic images, without compromising
> the performance. GIL has an extension mechanism that allows
> for adding extra functionality. Two extensions are currently
> provided – one for image I/O and one for handling images
> whose properties are specified at run-time.
>

I think you might look at the Olena project:
http://olena.lrde.epita.fr

*** Overview of the Olena library ***

The Olena project aims at building a scientific computation platform
oriented towards image processing, image recognition, and artificial
vision. This environment is composed of a high performance generic
library, a set of tools for shell scripts, together with, in the more
distant future, an interpreter (a la Octave, MatLab etc.) and a visual
programming environment.

Each step includes its own difficulties and requires the invention of
new solutions. For instance, the library --the low level service set
on top of which is built the whole project-- shall be both fast and
generic. These objectives are quite antagonist in programming.
Fortunately, the scientific computation field recently realized that
genericity, as found in object oriented languages, is no longer a tool
useful to implement auxiliary classes, but constitutes a new
programming paradigm in its own right. Contrary to the usual oject
oriented modelizations with inheritance and dynamic polymorphism,
(static) genericity enables the generation of performant and reusable
code. The Olena library is written using this paradigm.

We have already found effective solutions to delicate problems, such
as the wide variety of data types and data structures expected to be
offered by such a library. In addition, we have generalized these
solutions as design patterns to be reused in similar conditions.

Olena is also effective for us to perform research on image processing.

*** Library features ***

The C++ library provides:

    * Generic basic image types (1-D, 2-D, 3-D images, etc.)
    * Mophers: generic, composable and lighweight objects built on one
or several images, that can be used as
          o mixins: a morpher can add extra data (e.g. a neighborhood)
or operations (e.g., an ordering on the values) to an image;
          o adaptors: e.g., a slice morpher can be used to view a
slice of a 3-D image (spacemap) as a 2-D image (bitmap);
          o modifiers: a morpher can add a mask to an image, to
restrict its (iterable) domain;
          o lazy function applications: a morpher can present a image
seen through a function, either bijective or not;
          o etc.
    * Generic image processing algorithms
    * Auxiliary tools, necessary to write generic algorithms:
          o topologies;
          o points, delta-points;
          o neighborhoods;
          o etc.

Regards,
-- 
Johan