vs2013配置dlib库
背景: 经过了几天,终于在win7系统下,把dlib库加载到vs2013。之前在ubuntu14.04系统下配置,使用了Python接口的dlib,但由于之前的项目都在windows下,不得不又回来。在配置期间,游荡在csdn中,在成功配置dlib库的相关文章下留言。在此,我非常感谢各位大神给我的回复。(第一次写博客,也不知道可不可以提及,有不妥之处还各位请见谅)
简介:
此次配置过程使用源码进行直接编译(原因是使用cmake进行编译后,在vs项目中总是出现各种LINK错误) vs2013 dlib19.1;win7 64位贴心便利贴:
1.dlib官网http://dlib.net/compile.html里,提到dlib19.2以及以后的版本只能是vs2015,如果想用dlib19.2的话请下载vs2015。 2.配置dlib而建的工程需要提前配置好opencv 3.请注意生成的应同为release版本,我的是X64-release配置器详细过程: 一、准备 1.OpenCV配置
opencv是我之前就配置好的,使用的是2.4.9在配置过程中参考了@浅墨_毛星云的配置过程,超级详细,这里我提供链接,自己去看吧。 http://blog.csdn.net/poem_qianmo/article/details/19809337 下载地址和可能出现的错误都有涉及。
2.dlib
dlib官网上只有最新的版本,所以这里给出一个链接[dlib](https://sourceforge.net/projects/dclib/files/dlib/),之前的版本都有。 二、过程 1.生成dlib静态库 通过创建一个空的控制台工程,来生成Dlib静态库。
1、新建一个空的控制台工程Dlib; 2、dlib工程属性,修改主要包括: (1)、配置属性-常规-配置类型:静态库 (.lib); (2)、C/C++ - 常规- 附加包含目录:添加zlib/libpng/libjpeg头文件; (3)、C/C++ - 预处理器 - 预处理器定义:DLIB_PNG_SUPPORT、DLIB_JPEG_SUPPORT; (4)、解决方案平台:x64 3、 修改源码: (1)、dlib/ matrix/matrix_utilities.h : error C2057,lines: 2665,将 { COMPILE_TIME_ASSERT(pixel_traits<P>::num > 0); matrix<T,pixel_traits<P>::num,1> m; pixel_to_vector_helper<P>::assign(m,pixel); return m; } 改为 { COMPILE_TIME_ASSERT(static_cast<int>(pixel_traits<P>::num) > 0); matrix<T,pixel_traits<P>::num,1> m; pixel_to_vector_helper<P>::assign(m,pixel); return m; } (2)、dlib/external/libpng/pngread.c: error C4703, lines: 1029, 将 { png_color_8p sig_bit; png_get_sBIT(png_ptr, info_ptr, &sig_bit); png_set_shift(png_ptr, sig_bit); } 改为 { png_color_8p sig_bit = NULL; png_get_sBIT(png_ptr, info_ptr, &sig_bit); png_set_shift(png_ptr, sig_bit); } 4、选中工程Dlib,在x64下即可生成Dlib静态库2、配置dlib库,像opencv一样添加目录。这里提供一个dlib配置的链接http://blog.csdn.net/u010069101/article/details/50456655。只需要参考第三以及以后的部分,添加包含目录和库目录,链接依赖库等。
3、将dlib中自带的example的文件里的face_detection_ex.cpp导入到工程的源文件中,记得把dlib\all文件夹下的source.cpp也导入进去哦。 我在完成此步骤以后,出现了一个错误,提示没有找到png.h文件,所以我把png.c这个文件又添加到源文件中。再次运行后,就可以完成检测人脸了啦。记得修改一下测试图片的路径哦。
三、总结 第一次发博客,记录下来配置dlib的所有过程,希望其他的小伙伴在配置过程中减少不必要的时间,以后使用dlib仍然会继续记录。
