本文為原創,未經允許不得轉載。
1.去Dlib的官網下載dlib-19.6的源文件。然后解壓到Myprograms下的Res文件夾下
2.到CMake的官網下載Cmake,我下載以后解壓,然后進入到bin目錄,
運行cmake-gui.exe后出現
說明下:其中Dlibbuild文件夾,以及x64文件夾都是我自己建的。然后,點擊configure
這樣就是用你的vs2015編譯成64位的dlib.lib庫,點擊Finish按鈕后,會出現如下的結果
這時候你點擊Generate,會產生的工程文件。這樣的話我們就可以用vs2015打開這個工程了。
接下來是進行屬性頁的一些配置
①在C/C++ =》常規=》附加包含目錄下添加如下的文件夾的路徑
如下圖所示,
說明下,你要注意這樣的選擇,因為我是要編譯64位debug版的dlib.lib,
如果你是編譯64位Release版本的dlib.lib版本的,那么就應該選Release。
② 配置屬性→ C/C++ →預處理器 中的預處理器定義
DLIB_JPEG_SUPPORT
DLIB_PNG_SUPPORT
DLIB_JPEG_STATIC
如下圖所示,
完成上述操作后。重新編譯項目,生成dlib.lib文件,其為64位的debug版本。
3. 驗證dlib.lib是否正確
期待結果:寫個c++程序,調用剛剛生成的dlib.lib庫文件,實現檢測一張圖片里面有幾個人像的功能。
是需要修改的屬性。
一、建立一個普通的控制台程序,工程名我這里起名為DlibTest。打開工程,然后打開項目的屬性設置頁。
二、配置屬性 C/C++ → 常規中的附加包含目錄,
添加dlib源碼所在目錄和源碼目錄/dlib/external中zlib、libpng和libjpeg總計四個文件目錄,也把external文件夾目錄加進來。
三、在C/C++ →預處理器→ 預處理定義 中添加
DLIB_PNG_SUPPORT
DLIB_JPEG_SUPPORT
四、在鏈接器→常規→附加庫目錄,把我們之前編譯好的64位Debug版本的dlib.lib的路徑給他。
五、在鏈接器→常規→輸入的附加依賴性中,添加dlib.lib
4. 把D:\Myprograms\Res\dlib-19.6\dlib\all這個路徑下的source.cpp文件加入到工程中(以添加現有項的方式加入)。
5.以添加現有項的方式,
把,這個路徑下的libjpeg里面的文件都添加進工程,
如法炮制把libpng文件夾下的所有文件以及zlib文件夾下所有文件都加進工程。
6.編譯工程,工程長如下這樣,
編譯工程。就可以檢測出人臉個數是2個了。你需要注意的是,萬一你沒給程序test2,jpg這個圖片的話,
那么程序會拋出異常。異常如下,
說明下:如果不把如下三個文件夾下的所有文件以添加現有項的方式添加到工程中的話,
那么會報
這樣的錯誤,而這個錯誤困擾我一天時間了。終於解決,很開心。以下是附錄
附錄,關於安裝,編譯,執行過程中,所遇到的問題做個記錄
出現問題1.
解決問題1的方法:把D:\Myprograms\Res\dlib-19.6\dlib\all這個目錄下的source.cpp以加入現有項的方式加入工程。
出現問題2
解決方法:
出現問題3
解決問題3的方法:
出現問題4
問題4的解決方法:
感謝所參考文章的作者:
http://blog.csdn.net/Dawnfox/article/details/77282246
http://blog.csdn.net/wi162yyxq/article/details/54728376
http://blog.csdn.net/gxb0505/article/details/52825206
http://blog.csdn.net/yiyuehuan/article/details/70667318