为什么Matlab中没有SIFT算法?

3

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

为什么?Matlab 提供了更好或同等的替代品吗?

1个回答

6
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……可能是任何原因。据我所知,官方没有选择其中一个而不是另一个的正式原因,因为它们都可能被专利保护。
然而,如果您想在MATLAB中使用SIFT,我建议使用VLFeat工具箱,其中提供了基于C和MATLAB实现的关键点、检测和匹配框架,并且是开源的。它还实现了许多其他不错的计算机视觉算法,但VLFeat是我所知道的能够像原始专利算法一样准确计算SIFT的库之一。
如果您坚决要使用SIFT,请查看VLFeat!特别是,请查看官方VLFeat SIFT教程,使用MATLAB包装程序:http://www.vlfeat.org/overview/sift.html

非常感谢!回答非常出色! - jhegedus
1
SURF在被专利保护之前就已经在OpenCV中实现了。“该专利于2009年2月25日发布,而SURF的实现是在此之前完成的。” - Josiah Yoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接