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:

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.