我想在opencv中编写一段代码来证明SIFT是否是旋转不变特征。 假设图像有一个关键点,即图像的中心。我想计算关键点描述符(幅度和方向)。我想问一下重点是什么?它是图像中的一个位置吗? 我搜索了简单的教程或代码来知道该怎么做,但没有找到简单的东西。
最佳答案
关键点是图像中有趣的点。当强度发生变化时,通常会发现这些点,例如,在图像中两个对象之间的边缘处。关键点对图像中点的位置等进行编码。然后,SIFT 将为您的关键点提取局部特征描述符,然后您可以将其用于图像匹配。
正如缩写词所示,尺度不变特征变换 (SIFT) 是尺度不变的。它不是旋转不变的。在这种情况下,您可以使用 SURF。但是,SURF 对于实时应用程序来说有点问题。
SIFT:http://en.wikipedia.org/wiki/Scale-invariant_feature_transform
冲浪: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 图像,在其宽度上具有三个等距的白色点。然后,将图像旋转小角度,测量角度,并检查特征匹配。当您这样做时,您会意识到,对于较大的旋转,特征匹配会被抛弃。
关于opencv - opencv SIFT是否是旋转不变特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730440/