使用 vl_gmm 时出错 - 尝试将脚本作为函数执行

Error using vl_gmm - Attempt to execute script as function

你好,我想为我的 SIFT 描述符使用 Fisher Vector。我尝试使用 VL_FEAT 中的函数。我在 MATLAB 中添加了目录并运行 vl_startup。它运行成功,但是当我尝试这个例子时

它给我这个错误:

Attempt to execute SCRIPT vl_gmm as a function:
C:\vlfeat-0.9.19.tar\vlfeat-0.9.19\vlfeat-0.9.19\toolbox\gmm\vl_gmm.m 

有人帮我解决这个问题吗?

我有一些建议供您使用 VLFeat。我不确定你是否已经尝试过所有这些,但我会在我们进行时推荐它们:

建议 #1 - 编译 VLFeat 如果您只下载了源代码

你只下载了源文件吗?如果你这样做了,你是否先编译了VLFeat?具体来说,你下载源码的时候运行 vl_compile先了吗?

vl_gmm 等函数需要先编译 MEX 包装器,然后才能使用该函数。如果查看 toolbox/gmm 目录,有两个文件:vl_gmm.mvl_gmm.cvl_gmm.m 只是一个 MATLAB 文件,其中包含有关如何使用该函数的文档。实际函数在 vl_gmm.c 中,它是一个 MEX 文件。如果您没有先编译 VLFeat,您只会收到此错误,因为它默认尝试 运行 .m 文件,该文件只包含文档。

因此,请确保在尝试 运行 您的示例之前通过 运行 编译 vl_compile.m 脚本来编译 VLFeat

建议 #2 - 下载预编译的二进制文件

或者,您可以通过下载二进制文件 http://www.vlfeat.org/download/vlfeat-0.9.19-bin.tar.gz 来预编译 VLFeat。如果您在编译库时遇到问题,请通过我给您的 link 下载实际的预编译二进制文件,然后从那里尝试 运行ning vl_setup.m