[boost] Review of Generic Image Library (GIL) begins today, Oct5, 2006
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. Review questions: Please always explicitly state in your review, whether you think the library should be accepted into Boost. You might want to comment on the following questions: - What is your evaluation of the design? - What is your evaluation of the implementation? - What is your evaluation of the documentation? - What is your evaluation of the potential usefulness of the library? - Did you try to use the library? With what compiler? Did you have any problems? - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? - Are you knowledgeable about the problem domain? Tom Brinkman _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/ listinfo.cgi/boost
On 10/5/06, Tom Brinkman
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
Johan Oudinet
On 10/5/06, Tom Brinkman
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.
[snip]
I think you might look at the Olena project: http://olena.lrde.epita.fr
Right. And maybe also Vigra's (http://kogs-www.informatik.uni-hamburg.de/koethe/vigra) accessor concept and type promotion traits might deserve a second glance. Pixel accessors make explicit what's worked-around by GIL's PixelDereferenceAdaptor, namely that getting to the place where the pixel is stored and operating on the content of that in-memory representation are orthogonal concepts. Vigra algorithms take a pair of pixel iterators and accessors for source and destination. Thus, to be able to work on a 565 packed RGB pixel type, one can reuse the int16 pixel iterator, and provide a 565 pixel accessor. Very easy, very clean. When it comes to image processing algorithms (I know that this is currently kind of a weak spot for GIL - but ultimately, of how much use is this lib without at least some basic processing functionality), I'd love to see promotion traits used. Otherwise, supporting mixed types (float and int, etc) for color channels generically would become rather hard... Cheers, -- Thorsten
"Johan Oudinet"
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
FYI, reviews are not conducted on the boost-users mailing list. If you want anyone to see your remark in the context of the review, please post to the Boost developers' mailing list. Thanks, -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (4)
-
David Abrahams
-
Johan Oudinet
-
Thorsten Behrens
-
Tom Brinkman