SUN 基准代码 Invalid .mex 文件错误
Posted
技术标签:
【中文标题】SUN 基准代码 Invalid .mex 文件错误【英文标题】:SUN benchmark code Invalid .mex file error 【发布时间】:2013-05-17 17:05:24 【问题描述】:我已经从 MIT 下载了 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
【问题讨论】:
【参考方案1】:找到了答案。关键是在运行 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';
*(文件夹在上一层。)
【讨论】:
以上是关于SUN 基准代码 Invalid .mex 文件错误的主要内容,如果未能解决你的问题,请参考以下文章
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte
Invalid MEX-file 'E:\vlfeat-0.9.18\toolbox\mex\mexw64\vl_kmeans.mexw64':
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte
sun.security.pkcs11.wrapper.PKCS11Exception:CKR_ATTRIBUTE_TYPE_INVALID