最近对vlfeat进行了win下的编译,感觉还好,现记下以便查找!
1.下载vlfeat
地址;
2.修改vlfeat-0.9.18目录下的Makefile.mak
--custom
VER = 0.9.18
ARCH = win32
DEBUG = yes
MSVSVER = 120
MSVCROOT = D:\Program Files\Microsoft Visual Studio 12.0\VC
WINSDKROOT = C:\Program Files\Microsoft SDKs\Windows\v8.1
----32bit
MATLABROOT = D:\Program Files\MATLAB\R2013a
若仅在--custom下修改了$MATLABROOT,那么在--32bit下的MATLABROOT需要mark掉!
否则路径还是会被覆盖!
3.添加Matlab2013a与VS2013的支持文件
具体路径为:R2013a\bin\win32\mexopts
VS2013_Support_For_Matlab_2013_32bit.zip 下载地址
因系统为32位,所以选择32bit下载,解压后的文件copy至mexopts目录下;
ok,至此可以编译,修改!
刚开始纠结于如何在vlfeat.sln项目中测试,发现这是一个比较二的想法,其实vlfeat.sln编译生成bin\win32目录下的vl.dll; vl.lib;vl.pdb;
其中vl.pdb包含可供VS调试的符号文件包!使用这三个文件,再加上头文件,按vlfeat介绍的配置方式,就可以进行调试了!
4.测试
新建win32控制台应用,修改工程属性
1.lib路径
项目->属性->链接器->常规->附加库目录,添加vl.lib的路径
2.lib的名称
项目->属性->链接器->输入->附加依赖项,添加库名称vl.lib
3.添加头文件路径
项目->属性->c/c++->常规->附加包含目录,头文件都存放在vl目录
新建test.cpp
extern "C" {
#include "generic.h"
}
int main (int argc, const char * argv[]) {
VL_PRINT ("Hello world!\n") ;
return 0;
}
运行即可得到下述内容
5.vlfeat与opencv结合使用
【1】opencv 结合vlfeat进行特征提取代码
【2】cv::Mat 转换float*供vlfeat使用
【3】 OpenCV VLFeat Slic function call
over