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

matlab 解决 错误使用 mex 未找到支持的编译器或 SDK

python中提示invalid syntax 总结