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

您好我想使用Fisher Vector作为我的SIFT描述符 . 我试图使用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

任何人帮助我如何解决这个问题?

回答(1)

2 years ago

我有几个建议让你 VLFeat 工作 . 我不确定你是否尝试了所有这些,但我会在我们去的时候建议它们:

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

你只下载了源文件吗?如果你这样做了,你先编译 VLFeat 吗?具体来说,当您下载源代码时,您首先运行了 vl_compile 吗?

vl_gmm 这样的函数需要先编译MEX包装才能使用该函数 . 如果查看 toolbox/gmm 目录,则有两个文件: vl_gmm.mvl_gmm.c . vl_gmm.m 只是一个MATLAB文件,其中包含有关如何使用该函数的文档 . 实际函数在 vl_gmm.c 中,它是一个MEX文件 . 如果你没有先编译 VLFeat ,那么你只会得到这个错误,因为它试图默认运行 .m 文件,它只包含文档 .

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

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

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