matlab - 为什么 SIFT 在 Matlab 中不可用?

标签 matlab image-processing computer-vision feature-detection sift

SIFT 是计算机视觉中一种重要且有用的算法,但它似乎不是 Matlab 或其任何工具箱的一部分。

为什么? Matlab 是否提供更好或等效的东西?

最佳答案

MATLAB 有 SURF 作为计算机视觉工具箱的一部分,但没有 SIFT:http://www.mathworks.com/help/vision/ref/surfpoints-class.html .然而,这两种算法几乎相同,但存在一些细微(但至关重要)的差异,例如使用积分图像和快速 Hessian 检测器。我不会进一步详细讨论这些差异,但您当然可以在这里阅读相关工作:http://www.vision.ee.ethz.ch/~surf/eccv06.pdf .至于 MathWorks 决定使用 SURF 而不是 SIFT 的原因......这可能是任何原因。 AFAIK,没有官方理由选择其中一个而不是另一个,因为它们都需要申请专利。

但是,如果您想在 MATLAB 中使用 SIFT,我的一个建议是使用 VLFeat工具箱,其中关键点、检测和匹配框架的 C 和 MATLAB 实现已经可用并且是开源的。它还实现了各种其他不错的计算机视觉算法,但 VLFeat 是我所知道的能够像原始专利算法一样准确地计算 SIFT 的库之一。

如果您坚决不使用 SIFT,请查看 VLFeat!具体来说,使用 MATLAB 包装器查看有关 SIFT 的官方 VLFeat 教程:http://www.vlfeat.org/overview/sift.html

关于matlab - 为什么 SIFT 在 Matlab 中不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28847951/

相关文章:

matlab - 小负数四舍五入后保持符号

c - 寻找与英特尔 IPP 进行 FFT 卷积的工作示例

matlab - 如何在 Matlab 或 Octave 中刷新 disp 的输出?

android - Android 中的 Sobel 边缘检测

visual-c++ - c中opencv中轮廓/对象的质心?

opencv - 检测着陆平台的位置/角度以引导无人机

c++ - 如何以编程方式禁用网络摄像头的自动对焦?

c++ - 对象检测 : Training Requried or No Training Required?

arrays - 交换行和列

matlab - 如何使用 MATLAB 在卡车中查找木材?