Dorian Gálvez López
DLib: C++ library with several utilities


DLib-1.0.2.tar.gz (2013-02-07, 68 KB)


Version 1.0.2: new util classes in all the packages.


DLib is a collection of C++ classes to solve common tasks in C++ programs, as well as to offer additional functionality to use OpenCV data and to solve computer vision problems.

I have found myself using these functions very often, so I hope they may be useful to other researchers and developers too.


DLib (DUtils, DUtilsCV, DVision) is published under a LGPL license.


DLib is divided into 3 libraries for different purposes:

  • DUtils (documentation): utilities for several common C++ program requirements. It includes these classes:

    • BinaryFile: reads/writes binary files
    • LineFile: reads/writes text files by lines
    • ConfigFile: reads/writes text files with the format key = value
    • FileFunctions: mkdir, rmdir, dir... functionality
    • Math: math functions
    • Random: pseudo-random number functions
    • STL: functions for STL containers
    • StringFunctions: functions to manipulae strings
    • Timestamp: operates with timestamps
    • TimeManager: manages collections of timestamps
    • Profiler: measures execution time of portions of code
    • DebugFunctions: functions to measure memory consumption

  • DUtilsCV (documentation): utility functions for OpenCV data types. Classes included:

    • Drawing: functions to draw keypoints, data, axes...
    • GUI: shows images in windows and allows some user input
    • IO: I/O functions for storage and printing
    • Mat: functions to remove rows from matrices
    • Transformations: functions to deal with spatial transformations
    • Types: functions to convert between OpenCV data types

  • DVision (documentation): functions to solve computer vision tasks. Classes included:

    • BRIEF: implementation of the BRIEF descriptor ([1]), with the modification described in [2]
    • FSolver: implementation of the RANSAC + 8-point algorithm to compute fundamental matrices between images
    • HSolver: implementation of the RANSAC + DLT algorithm to compute homographies between images
    • ImageFunctions: functions to get patches from images
    • SurfSet: manages SURF keypoints (keeping the laplacian sign) and descriptors
    • BundleCamera: reads/writes camera files created by the Bundle software
    • PMVSCamera, PatchFile, PLYFile: read/write data created by the PMVS software
    • PixelPointFile, Matches: read/write multi-purpose pixel and 3D data files

Related publications

[1] Calonder M., Lepetit V., Strecha C. and Fua P.
BRIEF: Binary Robust Independent Elementary Features
11th European Conference on Computer Vision (ECCV)

[2] Dorian Gálvez-López, Juan D. Tardós
Real-Time Loop Detection with Bags of Binary Words
International Conference on Intelligent Robots and Systems, September 2011
[Bibtex] [PDF]

    author={Galvez-Lopez, Dorian and Tardos, Juan D.},
    booktitle={Intelligent Robots and Systems (IROS), 2011 IEEE/RSJ International Conference on},
    title={Real-time loop detection with bags of binary words},
    pages={51 -58},

Dorian Gálvez López - Robotics, Perception and Real Time Group - Universidad de Zaragoza. Last update: 2013-02-07 19:55 CET