我已经从麻省理工学院下载了SUN基准代码:
版本2:
http://people.csail.mit.edu/jxiao/SUN/source_code/
下载15个图像数据集并运行函数后:
compute_features.m
我收到无效的MEX文件错误:
Invalid MEX-file
'/home/arturo/Documents/Virality/reddit_data/SUN_source_code_v2/code/OpenCVmexWrapper/cvlib_mex.mexa64':
libcv.so.1: cannot open shared object file: No such file or directory
文件/home/arturo/Documents/Virality/reddit_data/SUN_source_code_v2/code/OpenCVmexWrapper/cvlib_mex.mexa64实际上确实存在,因此我认为问题与libcv.so.1无关,或者.mexa64文件已损坏(这不太可能)
当我搜索错误时,我读到一些有关通过LD_LIBRARY_PATH添加路径的内容,但我不确定应该至少(暂时地)准确添加什么路径。我已经安装了opencv及其库,所以我不确定是什么问题。我当前的系统是Ubuntu 12.04 64bit。
这里有一个类似的问题,但是答案说,对于他们的特定情况,他们发布了MEX文件的源代码,这与我的财富不一样:running old mex file on new matlab releases
最佳答案
找到了答案。关键是在运行matlab之前,显式链接到文件'libcv.so.1'所在的文件夹。
因此在matlab文件夹中:
LD_LIBRARY_PATH=/home/arturDocuments/Virality/reddit_data/SUN_source_code_v2/code/scene_sun ./matlab
在matlab中:
matlab>> compute_feature
还需要在其他文件夹中编译源代码。(vlfeat,VOC,libsvm)。除了在函数im2superpixels @ GeometricContext_dhoiem中编辑路径之外,还包括:
segcmd = '../segment_pedro/segment 0.8 100 100';
至:
segcmd = '/YOUR_PATH/SUN_source_code_v2/code/segment_pedro/segment/ 0.8 100 100';
*(文件夹在上一级。)
关于matlab - SUN基准代码无效的.mex文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16614467/