1. 程式人生 > >dlib庫編譯與使用

dlib庫編譯與使用

dlib使用步驟:

  1. dlib下載
  2. cmake下載
  3. 利用cmake編譯dlib庫為vs工程
  4. 將編譯的dlib vs工程編譯生成dlib.lib
  5. 新建c++工程,配置,編譯exe

二、cmake下載:官網下載,https://cmake.org/download/,安裝的時候記得勾選新增環境路徑選項,這樣命令列可以在任意目錄執行cmake命令。

三、編譯dlib庫:

  1. 將下載的dlib解壓,
  2. 解壓後是這樣,在c盤建一個目錄dlib,請隨意,dlib-19.8下面的dlib資料夾就是dlib庫,下一步是要將此庫利用cmake生成vs工程
  3. 利用cmake編譯生成vs工程

在build下建兩個資料夾,x64和x86,分別存放64和32位版本工程檔案

build32位版本,命令列進入C:\dlib\build\x86>,執行:cmake ../../dlib-19.8/dlib

意思就是將當前目錄爺爺目錄下的dlib-19.8/dlib編譯到當前目錄

 cmake ../../dlib-19.8/dlib

build64位版本,命令列進入C:\dlib\build\x64>,執行:cmake -G "Visual Studio 14 2015 Win64" -T host=x64 ../../dlib-19.8/dlib

cmake -G "Visual Studio 14 2015 Win64" -T host=x64 ../../dlib-19.8/dlib

幾秒就完成了。

號外

如果是vs2017,請使用如下命令,dlib目錄根據實際情況輸入

cmake -G "Visual Studio 15 2017 Win64" -T host=x64 ../../dlib

四、利用vs將dlib的vs工程編譯,生成dlib.lib

       將x86的生成Debug和Release版本dlib.lib,完成後,dlib.lib將在x86/Debug或/Release下出現。

x64同上,不贅述。這樣就有了4個不同版本的dlib.lib

五、新建c++工程,配置,編譯exe:

       現在可以寫你自己的程式碼了,新建一個c++空工程,新建source.cpp,程式碼如下,網上找的改了下

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

using namespace dlib;

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("Number of faces detected : %d\n", dets.size());
}
int main(int argc, char** argv)
{
	const char *filename = "c:\\test.jpg";
	TestFaceDetect(filename);
	scanf_s("%d");
	//return 0;
}

程式碼這裡scanf_s("%d"),防止程式執行一閃而過,讓視窗暫停住。

這程式碼複製進入,一堆一堆的錯誤,接下來配置工程

  • 新增dlib原始檔目錄:

  • 新增dlib.lib庫檔案:咱不是有4個版本的嗎?這裡新增對應上你的工程,包括32還是64,Debug還是Release


  • 新增png和jpeg圖片支援

執行結果:

我的開發環境:win10 64 vs2015社群版

參考資料: