Reusable Software Modules


Ullrich Köthe, Daniel Kondermann, Stefan Schmidt, Janis Fehr, Frank Lenzen (PostDocs); Jens Malte Gottfried (Master Student)


Sharing algorithms and their implementations is one of the main goals of the HCI. We are therefore putting considerable effort in the design and development of exchangeable C++ libraries and associated rapid prototyping tools. Functionality currently covers fundamental image analysis and segmentation methods, optimization and statistical inference, motion analysis and optical flow, and invariant feature detection. Future work will concentrate on further improvements of modularization and interoperability.


The Vigra library (Vision with Generic Algorithms) is becoming one of the central software platforms of the HCI. It provides a mature framework for a multitude of algorithms related to image analysis and machine learning. Algorithms are implemented in a generic way that makes them easily adaptable to various application contexts. The library currently provides a multitude of filter operations, if possible implemented for arbitrary high dimensions, feature detectors, segmentation algorithms, optimization methods, and classifiers for supervised learning. more


Charon is a framework of interoperable image analysis modules. The library defines a common module interface, manages data interchange, and controls the execution of the processing pipeline. There are many helper tools to simplify creation of modules, setup of processing pipelines and module configuration. We decided to implement each module as a shared library that is loaded dynamically during workflow execution. Many modules, currently mainly from the area of motion analysis and optical flow, are already available and usable out-of-the-box. more