2

我正在尝试在我的 Mac 上的 Matlab 中使用 David Lowe 的 SIFT 的 Matlab 演示。

但我不断收到错误:

[image, desc, locations] = sift('book.pgm')
/bin/bash: ./sift: cannot execute binary file
Error using sift (line 57)
Invalid keypoint file beginning.

我已经执行了makefile,但问题仍然存在。

注意:我使用的是 Matlab 8.4.0。

非常感谢任何帮助!谢谢你。

4

1 回答 1

0

这不是matlab问题。提供给您的 sift 版本不适用于 OSX。你可以确保通过运行 file sift

结果很可能是:

sift: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped

在解决同样的问题时偶然发现了你的问题——Matlab、Lowe's SIFT 和 OSX。

Lowe 的原始文件 ( http://www.cs.ubc.ca/~lowe/keypoints/siftDemoV4.zip ) 没有 OSX 版本。只有 Linux/Win。

目前我看到了两种可能的解决方案:

  • 为 OSX 编译 Lowe's sift(搜索一段时间显示源与 linux/win 紧密绑定)
  • 尝试更换。像vlfeatOpenSIFTsiftGPU以及重写​​ MATLAB 包装器代码。

请记住,使用外部 bin 生成密钥文件(通过 MATLAB 一直以这种方式使用)需要检查密钥文件格式的对应关系。( vlfeat to Lowe's SIFT )

于 2015-05-26T22:07:28.127 回答