Status
ImLib3D is no longer maintained. Please contact us if you are interested by developing this library.
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.
Status
ImLib3D is fully operational.
It is currently developed and intensively used
for medical image processing.
Please contact the authors if you need help for installing, have any comments, or wish to contribute help.
The effort we put into distributing documentation and packaging depends on the feedback we get from you.
ImLib3D has been succesfully tested on several platforms,
including debian (sarge),
fedora (core 3), mandrake 10.1, Mac-OS X (tiger).
ImLib3D compiles with gcc versions 3.3 to 4.0.
ImLib3D will probably work on other unix-like platforms.
Please tell us about your experience on other platforms.
see also: road map
Library Features
see also:
[library overview]
- Templated: ImLib3D images are STL-like templated containers. This means you
can create images of arbitrary types (examples: float, int, complex, 3D vectors for deformation fields, ...)
- Iterators: ImLib3D provides STL-compliant iterators for moving around images. This
provides a much faster, more efficient and easier to use framework. This also provides a common simple syntax for moving around images in special ways, like in masked images or rectangular sub-zones in an image. STL algorithms (sort, find, for_each, mismatch...) also work.
- Speed: ImLib3D is fast. Iterators hide all the gory details of making it fast.
- Command line: All image processing operators can be called from the UNIX command line. This is, with the viewer, important for easy image processing experimentation.
- Image Processors:
Fast BSpline interpolation (Unser et al).
Very fast fft (fftw).
Other image processing (arithmetic,convolution,morphological operations...).
- Extensible: Library users can easily add their own image processing operators.
Viewer Features
see also:
[viewer overview]
- MultiPlanar: The viewer display is composed of a variable number of multiplanar views.
MultiPlanar views represent three planar cuts through the 3D image.
- Other views: MultiPlanar view can also be displayed and interactively manipulated in real 3D.
If you have several images (like in serial MRI) you can display them using animations.
Other features include annotations, 3D vector field views etc.
- Interactive Image Processing: All image processors can be called through the viewer.
- Image processor plugins: The user can add new image processors without having to recompile anything.
- Viewer extensions / plugins: The user can extend or modify the viewer in a very simple way by using dynamically loaded modules.
Publications
Miccai 2003
[pdf article including poster]
This paper gives a very short overview of ImLib3D.
Technical paper
[pdf in french]
This 20 page short paper in french discusses opensource in image processing research
and provides a technical introduction to ImLib3D.
Authors
ImLib3D was developped by
Marcel Bosc and
Torbjørn Vik.