2014-03-29 51 views
2

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

回答

2

一个关键点是您图像中的一个有趣点。这些点通常在强度发生变化时找到,例如,在图像中两个物体之间的边缘处。除此之外,关键点还编码图像中点的位置。然后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的图像有三个等距白色点其宽度。然后,通过小旋转角度旋转图像,测量角度,并检查特征匹配。当你这样做时,你会意识到对于大旋转,特征匹配被抛弃。