Similar Third-Party Projects


Revision as of 14:04, 12 November 2014 by Bot (talk | contribs) (Don't include the menu if the page is used included in another page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page contains references to projects sharing features or goals with Olena. This list is not intended to be comprehensive, nor perfectly delineated (regarding traits such as genericity, object-orientation, etc.).


"What is it ?

  • The CImg Library is an open source C++ toolkit for image processing : It provides simple classes and functions to load, save, process and display images in your own C++ code.
  • It is intended to be highly portable and fully works on different operating systems (Unix/X11, Windows, Mac OS X, FreeBSD) with different C++ compilers. It should compile on other systems as well (eventually without display capabilities).
  • It consists only of a single header file CImg.h that must be included in your C++ program source.
  • It contains useful image processing algorithms for image loading/saving, displaying, resizing/rotating, filtering, object drawing (text, lines, faces, curves, ellipses, 3D objects, ..), etc...
  • The main image class can represent images up to 4-dimension wide (x,y,z,v) (from 1-D scalar signals to 3-D multi-channel volumes), with template pixel types.
  • It depends on a minimal number of libraries : you can compile it only with standard C++ libraries. No need for exotic libraries and complex dependencies.
  • Additional features appear with the use of ImageMagick, libpng, libjpeg or XMedCon. Install the ImageMagick package or link your code with libpng and libjpeg to be able to load and save standard compressed image formats (GIF,BMP,TIF,JPG,PNG,...). Install the XMedCon package to be able to read DICOM medical image files. All these extra-tools are available for any platforms.

CImg stands for "Cool Image" : It is easy to use and efficient. It's like a STL for image processing !

In the CImg package, a lot of examples are provided to help the developper in its first steps."

GIL -- Adobe Generic Image Library

Images are a fundamental construct in Digital Imaging/Digital Video projects and yet the variability in pixel data representations (color space, bit depth, channel ordering, planar/interleaved, alignment policy) makes it hard to write imaging-related code that is both generic and efficient. This library allows for writing generic imaging algorithms with performance comparable to hand-writing for a particular image type. The library is designed with the following five goals in mind:

  • Generality: Abstracts image representations from algorithms on images. It allows for writing code once and have it work for any image type.
  • Performance: Speed has been instrumental to the design of the library. The generic algorithms provided in the library are comparable in speed to hand-coding the algorithm for a specific image type.
  • Flexibility: Compile-type parameter resolution results in faster code, but severely limits code flexibility. The library allows for any image parameter to be specified at run time (for a minor performance cost comparable to a virtual call overhead).
  • Extensibility: GIL is concept-based and allows virtually every component - channels, color spaces, pixels, pixel iterators, locators, views, images and algorithms - to be replaced.
  • Compatibility: The library is designed as an STL and Boost complement. Generic STL algorithms can be used for pixel manipulation, and they are especially optimized. The library works natively on existing raw pixel data.


"What is ImLib3D? ImLib3D is an open source C++ library for 3D (volumetric) image processing. Focus has been put on simplicity for the developer. It contains most basic image processing algorithms, and some more sophisticated ones. It comes with an optional viewer that features multiplanar views, animations, vector field views and 3D (OpenGL) multiplanar. All image processing operators can be interactively called from the viewer as well as from the UNIX command-line. ImLib3D's goal is to provide a standard and easy to use platform for volumetric image processing research. ImLib3D has been carefully designed, using modern, standards conforming C++. It intensively uses the Standard C++ Library, including strings, containers, and iterators."

ITK -- The National Library of Medicine Insight Segmentation and Registration Toolkit

"ITK is an open-source software system to support the Visible Human Project. Currently under active development, ITK employs leading-edge segmentation and registration algorithms in two, three, and more dimensions.

The Insight Toolkit was developed by six principal organizations, three commercial (Kitware, GE Corporate R&D, and Insightful) and three academic (UNC Chapel Hill, University of Utah, and University of Pennsylvania). Additional team members include Harvard Brigham & Women's Hospital, University of Pittsburgh, and Columbia University. The funding for the project is from the National Library of Medicine at the National Institutes of Health. NLM in turn was supported by member institutions of NIH (see sponsors).

The goals for the project include the following:

  • Support the Visible Human Project.
  • Establish a foundation for future research.
  • Create a repository of fundamental algorithms.
  • Develop a platform for advanced product development.
  • Support commercial application of the technology.
  • Create conventions for future work.
  • Grow a self-sustaining community of software users and developers."

Sourcery VSIPL++

"Sourcery VSPL++ is a toolkit for developing high-performance signal- and image-processing applications. Sourcery VSIPL++ is an implementation of the open standard VSIPL++ API, providing routines for FFTs, FIR filters, QR decomposition, and linear algebra.

Sourcery VSIPL++ Features

Sourcery VSIPL++ is a complete implementation of the open standard VSIPL++ API specification.

  • Productivity: With Sourcery VSIPL++'s compact syntax and intuitive API, you can express your algorithms with much less code than you would need in C. Automatic communication and memory management in Sourcery VSIPL++ save you time and eliminate defects. See how you can use Sourcery VSIPL++ to write less code than you would with VSIPL.
  • Performance: Sourcery VSIPL++ utilizes sophisticated C++ techniques and takes advantage of optimized libraries so that your application runs as fast as if it were hand-coded. Sourcery VSIPL++'s profiling features also help you optimize your application.
  • Portability: Sourcery VSIPL++ is a pure C++ implementation of the open standard VSIPL++ API. Deploy your application on workstations, embedded systems or supercomputers.
  • Parallelism: Specify data distribution and let Sourcery VSIPL++ handle communication. You don't have to write a single line of message-passing code. Developing parallel applications is so easy that you can experiment with different data distributions until you find the optimal choice.


CodeSourcery's development of Sourcery VSIPL++, the VSIPL++ specification, and the VSIPL++ reference implementation has been supported by contracts from the United States Air Force Research Laboratory and the office of the Deputy Undersecretary for Defense Science and Technology."


"The Qgar@ software system is aimed at the design of document analysis applications and is currently developed inside the QGAR Project at LORIA (France).

The system includes three parts:

  • QgarLib: is a library including a set of C++ components implementing basic graphics analysis and recognition methods.
  • QgarApps: is an applicative layer, including graphics recognition applications. All such applications are independent programs: They can be run using a command line (outside of the system) and be easily replaced when a more efficient algorithm is implemented.
  • QgarGui: is a graphical user interface, developed using Qt. It provides an interactive access to all applications as well as means to display and manipulate (intermediate) results of graphics processings."

XIP -- eXtensible Imaging Platform

"NCI's Open Source Workstation

An open platform platform for cancer research.

The eXtensible Imaging Platform (XIP) is an open source environment for rapidly developing medical imaging applications from an extensible set of modular elements.

Researchers will be able to easily develop and evaluate new approaches to medical imaging problems, and use them in a translational research setting.

caGrid makes it possible to develop an XIP architecture that allows users to choose between remotely hosted grid based components and data sources as well as locally available sources.

  • Components may include analytic services, e.g.
    • CAD algorithms,
    • algorithms for quantifying changes in consecutive imaging studies
    • algorithms associated with a 3-D visualization pipeline etc
  • Available data sources include NCIA

See the XIP poster from MCIM 2007 on the posters page for more information.

The main information source is the wiki.

XIP is a development project sponsored by the In Vivo Imaging (IMAG) Workspace, part of the National Cancer Institute's initiative to link members of the cancer community, know as caBIG."