【发布时间】:2025-12-22 21:20:13
【问题描述】:
我正在尝试从此处的 LSVM 代码设置车辆检测系统:https://github.com/rbgirshick/voc-dpm
我正在使用 Red Hat Linux 和 Matlab 2011a。
我已经解压了上述系统的文件并打开了 Matlab。我选择解压文件所在的整个目录以及其中的所有子目录,然后右键单击并执行“添加到路径”。
然后我在 Matlab 中右键单击 compile.m,然后点击运行。
但我收到以下错误:
mex: fv_cache/fv_cache.cc not a normal file or does not exist.
Warning: Maybe you need to call fv_cache('unlock') first?
有人知道如何解决这个问题吗?
我尝试在编译文件的不同位置调用fv_cache('unlock'),但无济于事。我对 Matlab 和整个 mex 的事情并没有真正的经验。
【问题讨论】:
-
好吧,
fv_ache/fv_cache.cc在我看来很可疑。不应该是fv_cache/fv_cache.cc吗?另外,请尝试确保您的工作目录位于compile.m所在的位置,然后在命令行中键入compile而不是右键单击。 (这也可能是您的特定编译器的一些问题,但似乎更有可能只是路径问题)。 -
对,这只是我的问题中的一个错字 - 我已经修复了它。我真的是 Matlab 的新手......“添加到路径”选项不是让它成为我的工作目录吗?目录结构从 voc-releast5 开始,这是我“添加到路径”的*文件夹,也是 compile.m 所在的位置。我曾尝试在 matlab 的命令行上输入“编译”,但得到了同样的错误。编译命令的定义是:
compile(opt, verb, mex_file)。所以我也尝试了compile('on','on')...但没有奏效。 -
我还在matlab命令行中使用
addpath()命令添加了fv_cache的绝对路径。但我遇到了同样的错误。我还使用 File>Set Path 添加了这个路径。有什么我想念的吗? -
您得到的错误与 MATLAB 搜索路径无关,因为正在找到并运行命令本身 (
compile)。compile正在寻找的 mex 源文件更像是一个数据文件,并且是从当前工作目录中引用的。这就是为什么@nkjt 建议您将工作目录设置为包含compile.m的目录(使用的命令是cd),而不是乱用MATLAB 搜索路径。 -
运气好,请更新一下?
标签: linux matlab computer-vision mex