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。
如有不当之处请指教,谢谢!