1、下载dlib,由于最近的dlib不支持vs2013,所以需要更低版本的dlib库,这里选用的是v18.16(下载链接:点击打开链接),根据自己需要也可以下载其他的版本。下载完v18.16压缩包后,直接解压,我这里是解压到E:\software目录下

2、dlib准备好了,下面就是对dlib库进行编译,这里采用的是cmake3.10.3,网络有些博客提到cmake的版本有可能导致编译的不完整情形,我在x64的环境下整整搞了一个下去一直链接不到库文件,但cmake库文件没有报任何错误,可能这应该是版本问题吧,具体还是需要大家自己摸索。我这里讲解的是基于vs2013-win32的配置,因为我这里只在win32下成功配置,x64的没成功所以就不误导大家了。cmake首先添加源码和编译生成存储路径。

单击configure,选择vs版本信息

单击finish,等待完成如下

然后单击Generate

再次Configure,然后再次Generate,最终如下:

3、vs2013编译
打开cmake生成的工程如下:

在对工程进行编译之前需要注意编译的环境,这里是Debug win32,如果这里选择不对的话,后面生成的lib文件将不匹配。选择好编译环境直接单击绿色三角形进行编译。

等待编译完成后

如果看到上图中红色方框的信息,那么恭喜你离成功已经很接近了。打开工程路径可以看到lib文件已经生成,如下所示

4、对编译结果进行测试,建立测试工程,添加代码如下:
#include <iostream>
#include <vector>
#include <fstream>
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <dlib/image_loader/load_image.h>
#include <dlib/image_loader/png_loader.h>
#include <dlib/image_loader/load_image_abstract.h>
#include <opencv2\opencv.hpp>
using namespace std;
using namespace dlib;
//using namespace cv;
void TestFaceDetect(const char *filename) {
frontal_face_detector detector = get_frontal_face_detector();
array2d<unsigned char> img;
load_image(img, filename);
std::vector<rectangle> dets = detector(img);
printf("Numbere of face detected:%d\n", dets.size());
}
int main()
{
const char *filename = "1.jpg";
TestFaceDetect(filename);
system("pause");
return 0;
}
这里也是copy的代码啦,
,在编译前,先添加下依赖项,主要添加如下:

上图是包含目录的添加,下面是库目录的添加:

然后依次添加以下几项:




最后就可以直接运行了,运行结果如下:

注意:本文的前提是你已经配置好了opencv。
如有不当之处请指教,谢谢!

本文介绍如何在VS2013环境下配置dlib库并实现面部检测功能,包括下载合适版本的dlib库、使用cmake进行编译、在VS2013中设置编译环境以及通过示例代码进行面部检测。
2673

被折叠的 条评论
为什么被折叠?



