Go to file
pfeatherstone d4fe74b5a8
vectorstream updates: added seekoff and seekpos (#2179)
* [DLIB] added seekpos and seekoff functions. These are necessary for functions in iostream base class to work properly. e.g. seekg. Note that in seekoff, you do NOT want to check the validity of read_pos after it has been updated. dlib::vectorstream and std::iostream work together to set EOF and/or badbit. Doing something like seekg(10000) should not throw even if the underlying buffer has 2 bytes. You should check if EOF is set and possibly call clear(). We have removed seekg from dlib::vectorstream as this adds confusion. Now std::iostream::seekg is called which somewhere down the callstack will call seekpos and/or seekoff. So there should be no diverging functionality between calling seekg on dlib::vectorstream& or std::iostream& when there is a cast.

* [DLIB] vectorstream unit test is updated to run identical tests on dlib::vectorstream& and std::iostream&

* [DLIB] only support read pointers and delete copy and move semantics

* [DLIB] explicit tests for seekg() in different directions

* [DLIB]  - no need to delete the move constructor and move assign operator. This is implicitly done by deleting the copy constructor and copy assign operator.

* [DLIB]  - remove leftover comments. no need
		- use more idiomatic notation

Co-authored-by: pf <pf@pf-ubuntu-dev>
2020-09-16 20:37:36 -04:00
dlib vectorstream updates: added seekoff and seekpos (#2179) 2020-09-16 20:37:36 -04:00
docs Rename POSIX macro to DLIB_POSIX to avoid name clashes with some libraries. 2020-09-01 09:30:52 -04:00
examples Show how to use the new visitors with lambdas (#2162) 2020-09-06 09:27:50 -04:00
python_examples Add python api that generates desciptor(s) from the aligned image(s) (#1667) 2019-02-25 20:10:04 -05:00
tools fix some spelling and grammar errors 2020-08-07 15:41:42 -04:00
.gitignore fix python code index page. 2020-08-13 09:00:27 -04:00
.hgtags Added tag v19.16 for changeset be6f74b9751b 2018-09-29 09:03:21 -04:00
.travis.yml Remove unit tests for python 2.7 since that version of pyhton is dead, 2020-01-30 19:41:26 -05:00
CMakeLists.txt rename top level cmake project to avoid possible cmake issues 2019-11-13 22:46:33 -05:00
ISSUE_TEMPLATE.md updated issue template 2018-09-07 09:40:03 -04:00
MANIFEST.in Fix python setup warnings 2019-06-02 08:40:33 -04:00
README.md Added note about vcpk availability 2020-01-30 19:36:49 -05:00
setup.py Add an __init__.py file so we can add paths to CUDA libs on windows. 2020-06-07 16:42:44 -04:00

README.md

dlib C++ library Travis Status

Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems. See http://dlib.net for the main project documentation and API reference.

Compiling dlib C++ example programs

Go into the examples folder and type:

mkdir build; cd build; cmake .. ; cmake --build .

That will build all the examples. If you have a CPU that supports AVX instructions then turn them on like this:

mkdir build; cd build; cmake .. -DUSE_AVX_INSTRUCTIONS=1; cmake --build .

Doing so will make some things run faster.

Finally, Visual Studio users should usually do everything in 64bit mode. By default Visual Studio is 32bit, both in its outputs and its own execution, so you have to explicitly tell it to use 64bits. Since it's not the 1990s anymore you probably want to use 64bits. Do that with a cmake invocation like this:

cmake .. -G "Visual Studio 14 2015 Win64" -T host=x64 

Compiling your own C++ programs that use dlib

The examples folder has a CMake tutorial that tells you what to do. There are also additional instructions on the dlib web site.

Alternatively, if you are using the vcpkg dependency manager you can download and install dlib with CMake integration in a single command:

vcpkg install dlib

Compiling dlib Python API

Before you can run the Python example programs you must compile dlib. Type:

python setup.py install

Running the unit test suite

Type the following to compile and run the dlib unit test suite:

cd dlib/test
mkdir build
cd build
cmake ..
cmake --build . --config Release
./dtest --runall

Note that on windows your compiler might put the test executable in a subfolder called Release. If that's the case then you have to go to that folder before running the test.

This library is licensed under the Boost Software License, which can be found in dlib/LICENSE.txt. The long and short of the license is that you can use dlib however you like, even in closed source commercial software.

dlib sponsors

This research is based in part upon work supported by the Office of the Director of National Intelligence (ODNI), Intelligence Advanced Research Projects Activity (IARPA) under contract number 2014-14071600010. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of ODNI, IARPA, or the U.S. Government.