VLFeat开源库介绍及在VS2013中的编译
VLFeat是一個開源的計算機視覺算法庫,內容主要包括feature detectors、feature extractors、k-means clustering、randomized kd-tree matching、super-pixelization。它是跨平臺的,能夠應用在Linux、Mac、Windows平臺。它的License是BSD。
? 在VS2013中編譯VLFeat源碼操作步驟:
1.??????從http://www.vlfeat.org/ 下載源碼(或從https://github.com/vlfeat/vlfeat下載),最新版本為0.9.20;
2.??????打開VS2013 x64本機工具命令提示,在命令行中輸入:$ nmake version,如下圖:
3.??????在make/nmake_helper.mak文件中加入vs2013參數,如下圖:
4.??????將VS2013 x64本機工具命令提示定位到/vlfeat-0.9.20目錄下,輸入:
?
$ nmake /f Makefile.mak
?
5.??????運行完上面的語句后,將會在/vlfeat-0.9.20/bin目錄下,新增一個win64目錄,里面會有生成的vl.dll、vl.lib和一些test執行文件;
6.??????按照上面的步驟雖然生成了vlfeat動態庫,但是不便于調試,下面新建一個控制臺工程VLFeat_DLL,將/vlfeat-0.9.20/vl目錄中的文件加入到VLFeat_DLL工程中;
7.??????將VLFeat_DLL工程,配置屬性中的配置類型由應用程序(.exe)改為動態庫(.dll);字符集由使用Unicode字符集改為使用多字節字符集;
8.??????遇到的問題及處理方法:
(1)、error C2491,不允許dllimport函數的定義:將宏VL_BUILD_DLL加入到預處理器定義中;
(2)、error C4996:將宏_CRT_SECURE_NO_WARNINGS加入到預處理器定義中;
(3)、三個類似的錯誤,fatal error C1189: #error :?"Compiling with SSE2 enabled, …”:分別將三個宏 __SSE2__、_SSE2_、__AVX__加入到預處理器定義中;
(4)、六個類似的錯誤,error C4146 一元負運算符應用于無符號類型,結果仍為無符號類型:將C/C++--> 常規--> SDL檢查改為否(/sdl-)。
9.??????重新編譯整個工程即可生成VLFeat_DLL.dll;
10. ? ?驗證VLFeat_DLL.dll動態庫的正確性:新添加一個Test_VLFeat控制臺工程,測試代碼及結果圖如下:
?
#include <iostream>
#include <generic.h>int main()
{VL_PRINT("Hello world!\n");std::cout << "ok!" << std::endl;return 0;
}
?
GitHub:https://github.com/fengbingchun/VLFeat-VS2013
?
總結
以上是生活随笔為你收集整理的VLFeat开源库介绍及在VS2013中的编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tiny-cnn执行过程分析(MNIST
- 下一篇: 卷积神经网络(CNN)的简单实现(MNI