win10之dlib安装过程(c++调用库,非python版)

来源:互联网 发布:考公务员 知乎 编辑:程序博客网 时间:2024/06/16 11:16

2017/8/16 21:31:11

环境:win10 64位 1073 家庭中文版

cMake 3.9.1 https://cmake.org/

dlib 19.4  http://dlib.net/

visual studio2017

过程描述:

过程一:生成dlib.lib库文件

提前在安装机上安装好visual studio2017,微软官网有学生免费版,后面需要用到该工具。需要注意目前最新版dlib19.4需要支持c11的编译器,建议visual studio 与当前版本越接近越好。

在windows下安装dlib,需要下载cmake和dlib压缩包,将两者解压到指定的目录,我的安装目录如图1.


图1

进入cmake-3.9.1-win64-x64\bin选择cmake-gui.exe。出现图2。


图2

标注1为dlib源码文件中的dlib文件夹。如我在此处选择D:\tool\dlib-19.4\dlib。

标注2为选择将源码文件编译后的文件的位置。

完成标注1和2后,选中标注3。出现图3。


图3

图3中标注5可进行选择编译器,此处选择已安装好的visual studio2017 64位,默认不选择的话是visual studio32位。32位版本也是在此处选择,重复64位的安装步骤即可。下面配置选择默认,不更改。

等待配置结束出现图4红字。


图4

图4中的底部信息会有部分警告文字,不影响。不改动红色字体参数设置。

点击图4的Generate等待直至红色字变成黑白字体。出现图5。


点击图5的open project。调用visualstudio2017打开配置完成后的项目工程。

出现图6左侧小图。图6右侧小图为编译后的工程图。


图6

点击dlib属性页。需要注意的地方有两处。一是配置属性》c/c++》常规中的附加包含目录,需要添加dlib解压文件dlib目录中external中的libjpeg,libpng,zlib三个文件目录。如图7


图7

二是配置属性》c/c++》预处理器中的预处理器定义。需要注意是否存在DLIB_JPEG_SUPPORT

DLIB_PNG_SUPPORT

DLIB_JPEG_STATIC

这三个参数。如图8


图8

完成上述操作后。重新编译项目生成dlib.lib文件。如图9分别为debug和release版本的情况。

   

图9

过程二:验证dlib.lib是否正确

期待结果:写个c程序,调用dlib库文件,检测一张图片里面有几个人像。

在visual studio,新建win32控制台应用程序。在项目属性里进行设置。此处新建项目DlibTest,需要对项目属性四个参数进行设置。如图10


图10

标注2-5是需要修改的属性。点击标注1则弹出项目的属性设置页。

标注2为配置属性》c/c++》常规中的附加包含目录。

添加dlib源码所在目录和源码目录/dlib/e

xternal中zlib、libpng和libjpeg总计四个文件目录。如图11。


图11

标注3 为配置属性》c/c++》预处理器中的预处理器定义。如图12。

添加DLIB_PNG_SUPPORT

DLIB_JPEG_SUPPORT


图12

标注4为配置属性》链接器》常规中的附加库目录。添加dlib.lib所在文件目录。我将生成的lib文件添加到源码目录下新建的bin目录中。如图13.

图13

标注5为配置属性》链接器》输入的附加依赖项。添加dlib.lib。如图14


图14

完成上述设置后重新编译运行测试程序,即可。

测试程序:

#include<dlib\image_processing\frontal_face_detector.h>#include<dlib\gui_widgets.h>#include<dlib\image_io.h> usingnamespace dlib;voidTestFaceDetect(constchar *filename) {    frontal_face_detectordetector = get_frontal_face_detector();     array2d<unsignedchar> img;    load_image(img,filename);    std::vector<rectangle> dets = detector(img);    printf("Numbere of face detected:%d\n", dets.size());}int main(){    constchar *filename = "C://Users//lenovo//Pictures//test2.png";    TestFaceDetect(filename);    system("pause");    return 0;}


被测试图片:


测试结果:


上述现象表明dlib.lib库文件的确安装完毕。

原创粉丝点击