我无法让Octave的Vlfeat计算机视觉库工作。我按照vlfeat网站上的说明编译了它http://www.vlfeat.org/install-octave.html但是当我尝试运行vl_version时,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
我正在研究mac os x mavericks。 我对octave和mac很新,所以如果这是一个非常基本的问题我会道歉。预先感谢您的帮助! :)
更新:这是vl_demo_sift_basic代码的第29行:(我是图片)
[f,d] = vl_sift(I) ;
我做了更多看,我不确定MEX文件是否编译成功 - vlfeat网站说,一旦MEX文件成功编译,我应该能够在工具箱/ mex / octave /中查找它们,但是我找不到这个目录。
答案 0 :(得分:0)
这可能是因为八度音程的代码还没有正确编译。在构建过程之后应该有一个文件夹/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中的图像处理工具箱(如果你不坚持八度)。