我从麻省理工学院下载了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
答案 0 :(得分:0)
找到答案。关键是要明确地链接到文件夹' libcv.so.1'就在运行matlab之前。
所以在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';
*(该文件夹位于上一级。)