VS2015或2013下两种Dlib库配置方法

VS2015或2013下两种Dlib库配置方法       

      首先,Dlib是一个包含机器学习算法的C++开源工具包。最出名的就是它的人脸检测和特征点定位的功能。人脸检测侧脸效果比opencv好太多,特征点定位比什么ASM准确多了。但是如果仅仅只是需要完成人脸检测和特征点定位这两个功能,可以试试使用于仕其老师的库https://github.com/ShiqiYu/libfacedetection,速度更快且配置起来比dlib方便。

       言归正传,在vs中配置过opencv的同学都知道,我们第一是需要配好环境变量;第二是配好包含目录和库目录;第三是要在附加依赖项中把.lib文件写好。这种opencv的配置方式可以理解为是静态加载的动态库。为什么这么说,在目录opencv\build\x86\vc12下中有bin、lib和staticlib三个文件夹(lib和staticlib中的同名的.lib文件大小并不同)。Bin文件夹中.dll称之为动态链接库;lib文件夹中的.lib称之为引入库文件;而staticlib中的.lib称之为静态库。我们只用到前两个文件夹中的.dll和.lib文件便完成了opencv库的动态链接,这种方式opencv在编译过程中是没有被加入目标代码的,只是在运行时被链接。

       而dlib的配置方法不同,我们在下载好、解压好的文件夹dlib19.2中找不到任何.dll文件,也就是说我们需要以静态加载静态库的方法完成配置。而我们需要的正是如staticlib文件夹中的.lib文件一样的静态库。因此我们的目标就是得到一个包含了所有dlib函数方法的静态库dlib.lib。

      打开dlib的网站http://dlib.net/中的How to compile,我们可以看到其实官方已经给出了两种dlib配置方法。但是内容极其不友好,太不详细,以至于当初的我即便用google翻译完仍然看不懂该怎么做(这些写说明的糟老头子实在坏得很)。

我们详细介绍两种完成dlib的配置的方法。

一、用Cmake编译工具生成dlib.lib文件

1进入dlib官网,下载dlib库(注意:19.2及以上版本需用vs2015或更高版本),解压。我的目录是D:\dlib-19.1

2、下载cmake工具https://cmake.org/download/,按步骤安装即可。如果你下载的版本是用压缩文件解压的,记得把到bin文件夹的目录添加到环境变量。比如我的是D:\cmake-3.10.1-win64-x64\bin

3、现在我们使用cmake工具生成dlib.lib文件,以下两种选择:

(1) 你只需要在命令提示符窗口运行以下代码就可以了,快而且很帅。

          具体操作:首先在dlib-19.1目录下,按下shirt键+点击鼠标右键,选择“在此处打开命令窗口”。

cd examples

mkdir build

cd build

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

cmake --build . --config Release

 然后,在D:\dlib-19.1\examples\build\dlib\Release下就可以找到你的dlib.lib了。

  注意:

          1)首先建议一行一行输入

           2)第4行第一句是用vs2015,第二句则是有什么用什么(比如我的是vs2013)

           3) -T host=x64是使用64位编译器,这样不仅可用内存大而且速度还快,用release版本也是为了加速(debug版的dlib库你不会想用的,不用去尝试)

           4)如果你的编译器不支持c11比如vs2013,可能会提示你部分cuda功能不能用

           5)如果提示你找不到opencv所以没编译某某,而你明明装了opencv,那就去新建环境变量,变量名:OpenCV_DIR,变 量值:opencv下build目录(我的是D:\opencv\build),重启电脑。

   (2)如果用代码不开心,好,那我们用gui来操作。

     打开cmake-gui.exe,并指定源码路径与编译后的项目路径,如下图:

点击Configure按钮,配置编译器,如下图:

 

      选好64位编译器,点击Generate。完成后,点击open project,然后就会用你的vs2013或15打开一个叫examples的项目,选择平台x64和release,点击生成解决方案。

      然后在目录D:\dlib-19.1\examples\build\dlib_build\Release下就可以找到dlib.lib了。

4、剩下就是像配置opencv一样了

     1)包含目录新建D:\dlib-19.1,

     2)库目录为dlib.lib所在的路径,你放在哪都行

     3) 附加依赖项加上dlib.lib,

     4)还有一点必须在你的 项目属性页>C\C++>预处理器>预处理器定义 加入下两项(在全局属性页上加好像不行不知道为什么)

     DLIB_PNG_SUPPORT

     DLIB_JPEG_SUPPORT

     这就完成了。

二、用Dlib源码直接生成dlib.lib文件

1、新建win32控制台程序

2、选择解决方案平台x64和release;

3、打开属性页,修改箭头所指的两项

4、在附加包含目录中添加libjpeg,libpng和zlib三个目录

5、添加DLIB_PNG_SUPPORT、DLIB_JPEG_SUPPORT到预处理定义

6、在新建的项目中

源文件 >添加现有文件,将dlib/all/source.cpp导入

资源文件 >添加现有项,将dlib/external/中zlib,libpng,libjpeg三个目录下的文件都加入到工程中

7、生成解决方案即可得到dlib.lib文件。

8、按照 方法一 中第4步配置即可。

 用以下代码测试一下配置是否成功吧!

#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <iostream>

using namespace dlib;
using namespace std;

// ----------------------------------------------------------------------------------------

int main()
{  
        frontal_face_detector detector = get_frontal_face_detector();
        image_window win;
        array2d<unsigned char> img;
        load_image(img, "lena.jpg");
        std::vector<rectangle> dets = detector(img);
        cout << "Number of faces detected: " << dets.size() << endl; 
        win.clear_overlay();
        win.set_image(img);
        win.add_overlay(dets, rgb_pixel(255,0,0));
        system("pause");
        return 0;
 }

参考文献

https://blog.csdn.net/wugou2014/article/details/53895327
https://blog.csdn.net/qq_15715657/article/details/81302283
https://blog.csdn.net/what_lei/article/details/78289906
https://blog.csdn.net/xingchenbingbuyu/article/details/53236541

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值