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。
如有不當之處請指教,謝謝!