David Lowe的SIFT - 关于尺度空间和图像坐标的问题(奇怪的偏移问题)

Mus*_*afa 13 c++ image-processing computer-vision sift

我意识到这是一个非常专业化的问题..但是这里有.我正在使用SIFT的实现来查找两个图像上的匹配.根据我目前的实现,当我将图像与90度或180度版本匹配时,我得到的抖动大约是半个像素,但它在一个范围内变化.因此,例如,如果在im1中的像素坐标(x,y)处找到匹配,则其90度旋转图像im2中的对应匹配处于(x,y + 0.5).如果我使用180度图像,则偏移出现在x和y坐标中,如果我使用270度(-90)旋转图像,则仅出现在x中.

1)首先,我假设SIFT应该在旋转的图像中给我相同的匹配位置.隐含的假设是旋转不会改变我确认的图像的像素值.(我使用IRFAN View旋转并保存为.pgm,像素值保持不变).

2)我有其他实现不提供此偏移.

3)我假设这个偏移是编程相关的,可能与从尺度空间关键点坐标到图像空间关键点坐标的转换有关.

我希望有人遇到过这个问题,或者可以指出我如何从比例空间转换为图像空间的参考.

pea*_*kxu 4

与 Mikola 的主张相反,可以从 SIFT 中获得规模和方向。SIFT 尝试找到具有最大 DOG 极值 ( s ) 的尺度,并找到主导方向 ( r )。SIFT 特征的每个位置向量返回(x, y, s, r)

要了解尺度空间如何转换为像素,请尝试 VLFeat 的实现。特别是,使用 vl_plotsiftdescriptor 来绘制描述符。您可以看到s如何相对于此实现的像素进行缩放。要找出其他实现,请找到两种实现的相同功能,并查看比例因子s有何不同。