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 is divided into 3 libraries for different purposes:
-
DUtils
: utilities for several common C++ program requirements. It includes these classes:BinaryFile
: reads/writes binary filesLineFile
: reads/writes text files by linesConfigFile
: reads/writes text files with the formatkey = value
FileFunctions
: mkdir, rmdir, dir... functionalityMath
: math functionsRandom
: pseudo-random number functionsSTL
: functions for STL containersStringFunctions
: functions to manipulae stringsTimestamp
: operates with timestampsTimeManager
: manages collections of timestampsProfiler
: measures execution time of portions of codeDebugFunctions
: functions to measure memory consumption
-
DUtilsCV
: utility functions for OpenCV data types. Classes included:Drawing
: functions to draw keypoints, data, axes...GUI
: shows images in windows and allows some user inputIO
: I/O functions for storage and printingMat
: functions to remove rows from matricesTransformations
: functions to deal with spatial transformationsTypes
: functions to convert between OpenCV data types
-
DVision
: functions to solve computer vision tasks. Classes included:BRIEF
: implementation of the BRIEF descriptorFSolver
: implementation of the RANSAC + 8-point algorithm to compute fundamental matrices between imagesHSolver
: implementation of the RANSAC + DLT algorithm to compute homographies between imagesImageFunctions
: functions to get patches from imagesSurfSet
: manages SURF keypoints (keeping the laplacian sign) and descriptorsBundleCamera
: reads/writes camera files created by the Bundle softwarePMVSCamera
,PatchFile
,PLYFile
: read/write data created by the PMVS softwarePixelPointFile
,Matches
: read/write multi-purpose pixel and 3D data files