1. 程式人生 > >win10 + Dlib + vs2013編譯配置

win10 + Dlib + vs2013編譯配置

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。

如有不當之處請指教,謝謝!