Octave 八度音阶中的Vlfeat-“索引表达式中的脚本使用无效”

Octave 八度音阶中的Vlfeat-“索引表达式中的脚本使用无效”,octave,vlfeat,Octave,Vlfeat,我很难让Vlfeat计算机视觉库在倍频程工作。我按照vlfeat网站上的说明编译了它,但当我尝试运行vl_版本时,octave给了我以下错误: >> vl_version verbose error: invalid use of script /users/myu/downloads/vlfeat-0.9.18/toolbox/misc/vl_version.m in index expression 当我尝试运行一个基本的演示程序时,也会发生同样的情况: >> vl

我很难让Vlfeat计算机视觉库在倍频程工作。我按照vlfeat网站上的说明编译了它,但当我尝试运行vl_版本时,octave给了我以下错误:

>> vl_version verbose
error: invalid use of script /users/myu/downloads/vlfeat-0.9.18/toolbox/misc/vl_version.m in index expression
当我尝试运行一个基本的演示程序时,也会发生同样的情况:

>> vl_demo_sift_basic
error: invalid use of script /users/myu/downloads/vlfeat-0.9.18/toolbox/sift/vl_sift.m in index expression
error: called from:
error:   /Users/myu/Downloads/vlfeat-0.9.18/toolbox/demo/vl_demo_sift_basic.m at line 29, column 6
我正在研究MacOSX小牛。 我对octave和mac非常陌生,所以如果这是一个非常基本的问题,我很抱歉。提前感谢您的帮助!:

更新:这里是vl_demo_sift_基本代码的第29行:我是一个图像

[f,d] = vl_sift(I) ;

我做了更多的查找,我不确定MEX文件是否编译成功。vlfeat网站说,一旦MEX文件编译成功,我应该能够在toolbox/MEX/octave/中查找它们,但是我找不到这个目录。

这可能是因为octave的代码尚未正确编译。在构建过程之后,应该有一个文件夹/home/anne/setup/vlfeat-0.9.20/toolbox/mex/octave

首先,不要忘记MKOCTFILE变量:

MKOCTFILE=mkoctfile make info | grep -i octave
** Octave support
OCTAVE support enabled (MKOCTFILE found)
否则,您将得到:

make info | grep -i octave                    
** Octave support
OCTAVE support disabled (MKOCTFILE not found)
您需要安装:

sudo apt-get install liboctave-dev octave-image
导航到目录生成并从那里运行:

cd VLFEAT_ROOT/toolbox/mex/octave/mexa64
octave

octave:1> vl_version verbose
VLFeat version 0.9.20
Static config: X64, little_endian, GNU C 40901 LP64, POSIX_threads, SSE2, OpenMP
8 CPU(s): GenuineIntel MMX SSE SSE2 SSE3 SSE41 SSE42 AVX
OpenMP: max threads: 8 (library: 8)
Debug: no
SIMD enabled: yes

octave:2> addpath('../../..');
octave:3> vl_setup
然后像这样:

I=imread('place/some.jpg');
image(I)                                                                        
J = single(rgb2gray(I)) ;                                                       
[f,d] = vl_sift(J, 'edgethresh', 10, 'PeakThresh', 3) ;                         
perm = randperm(size(f,2)) ;                                                    
sel = perm(1:500) ;                                                             
h1 = vl_plotframe(f(:,sel)) ;                                                   
h2 = vl_plotframe(f(:,sel)) ;                                                   
set(h1,'color','k','linewidth',3) ;                                             
set(h2,'color','y','linewidth',2) ;  

虽然原来的问题是用Matlab解决的,但我可以想象有人想用倍频程。特别是因为如果您不坚持八度音阶,该功能不仅需要Matlab,还需要Matlab中的图像处理工具箱。

您确定该页面上的所有安装说明都显示了0条错误消息吗?请向我们展示vl_demo_sift_basic.m文件的第29行。您是否剪切了第一条错误消息?它还应该包含一个called from:部分。感谢您的回复!我刚刚添加了第29行,它称为vl_sift脚本。我没有剪切第一条错误消息,它没有指定行号。我只是再看一次,没有看到任何安装错误。唯一一个远程类似错误的地方是Clang还不支持OpenMP,因此禁用了。但我认为这不会影响我的问题。找到编译文件的目录,并检查vl_sift函数的内容,看看它是否被正确调用。谢谢您的帮助!我昨天刚切换到Matlab,vlfeat现在工作得很好。不幸的是,我仍然不知道为什么它在八度音阶中对我不起作用。非常感谢你的建议。