About DIPlib 3
Introduction
DIPlib is an extensive C++ library for quantitative image analysis. It:
- contains hundreds of image processing and analysis algorithms,
- is designed for precision foremost,
- tries to be fast, but is not meant for real-time video processing,
- is easy to use, providing a simple and intuitive interface to algorithms,
- allows for writing programs that don’t know at compile time what the data type or number of dimensions of the image to be processed are,
- reduces the edit-compile-run loop compared to other image processing libraries,
- makes it easy to express complex mathematical computations in code, see Why tensors?.
There are many other unique things about DIPlib, we encourage you to explore the documentation to learn more about it. Good places to start are the following documentation pages:
- The
dip::Image
class, everything else revolves around it. - All functionality is categorized into modules.
- The
examples/
directory in the repository, which contains simple C++ programs that demonstrate how to use various features of the library. - Using iterators to implement filters, in case existing algorithms are not sufficient.
- DIPlib 3 design decisions, might help understand the library architecture.
Modules, interfaces and bindings
Currently, DIPlib 3 has interfaces or bindings to the following packages:
-
MATLAB: DIPimage is a MATLAB toolbox that gives access to most functionality in DIPlib, but goes beyond that by providing a lot of additional functionality as M-file functions.
-
Python: PyDIP is a thin wrapper of most functionality in DIPlib.
-
Bio-Formats: DIPjavaio is an interface to Java-based image readers. It is designed to allow DIPlib to read hundreds of image file formats through OME Bio-Formats, but is generic enough to be used with other Java libraries as well.
-
OpenCV: the DIPlib-OpenCV interface provides copyless conversion to and from OpenCV images, for OpenCV version 2 and newer.
-
Vigra: the DIPlib-Vigra interface provides copyless conversion to and from Vigra images.
The DIPlib project further contains these additional modules:
- DIPviewer: an interactive image display utility.
Building the project
See Building the DIPlib project for a quick summary and links to detailed, step-by-step instructions.