我想在opencv中编写代码,以证明SIFT是否为旋转不变特征。
假设图像具有一个关键点,该关键点是图像的中心。我想计算关键点描述符(幅度和方向)。我想问一下重点是什么?是图像中的位置吗?
我搜索了简单的教程或代码,以了解该怎么做,但没有找到简单的东西。

最佳答案

关键点是图像中的一个有趣点。这些点通常在强度发生变化时找到,例如,在图像中两个对象之间的边缘处。关键点除其他外,还对图像中该点的位置进行编码。然后,SIFT将为您的关键点提取局部特征描述符,然后将其用于图像匹配。

正如首字母缩略词所说,尺度不变特征变换(SIFT)是尺度不变的。它不是旋转不变的。在这种情况下,您可以使用SURF。但是,SURF对于实时应用程序来说有点问题。

SIFT:http://en.wikipedia.org/wiki/Scale-invariant_feature_transform

SURF:http://www.vision.ee.ethz.ch/~surf/papers.html

示例代码:Trying to match two images using sift in OpenCv, but too many matches

为了测试您的SIFT代码,您可以在Opencv中创建一个黑色512x512的图像,在其宽度上具有三个等间距的白色点。然后,以较小的旋转 Angular 旋转图像,测量 Angular ,然后检查特征匹配。在执行此操作时,您将意识到对于大的旋转,要素匹配将被抛出。

关于opencv - SIFT是旋转不变特征还是opencv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22730440/

10-12 22:22