dlib is a powerful library that has a large focus on portability as well as application correctness.
dlib includes a platform abstraction layer for common tasks such as interfacing with network services, handling threads, or creating graphical user interfaces.
NOTE: dlib is licensed and distributed under the terms of the Boost Software License (BSL1.0).
Here are some key features of "dlib":
· Very portable
· All non ISO C++ code is located in the OS abstraction layers which are as small as possible (about 9% of the library). The rest of the objects in the library are either layered on top of the OS abstraction layer or are pure ISO C++.
· Big/little endian agnostic.
· No assumptions are made about structure byte packing.
· Many container classes. What makes these containers different from what can be found in the STL is how they move objects into and out of themselves. Rather than copying things around everything is moved around by swapping. This allows you to do things like have containers of containers of containers. They also have simpler interfaces.
· There are many versions of each container with different performance characteristics so you have great flexibility in choosing exactly what you want.
· Many of the containers perform all their allocations through the memory_manager object and unlike the STL there is no requirement that different instances of the memory manager/allocator be able to free objects allocated from each other. This allows for much more interesting memory manager implementations.
· All containers are serializable.
What's New in This Release: [ read full changelog ]
Object Detection Tools:
· Added another image scanning tool similar to scan_image_pyramid.This
· is the new scan_image_boxes object.It allows a user to easily specify
· an arbitrary set of object boxes which should be checked by an object
· detector rather than scanning a fixed sized window over the image as is
· done by the scan_image_pyramid tool.This allows more flexible scanning
· strategies.For example, it is now possible to use the selective search
· method implemented by the new find_candidate_object_locations() routine.
· Added the binned_vector_feature_image.
· Upgraded the object_detector so that you can use the adjust_threshold
· argument for all versions of the operator() method.
· Added remove_unobtainable_rectangles()
· Added a set of new locality sensitive hashing functions meant for use
· with larger vectors and higher bit sizes than the current LSH tools.
· These are the new hash_similar_angles_xxx objects.
· Added find_k_nearest_neighbors_lsh() and hash_samples()