我看过 sift features 的论文,我明白为什么它是旋转不变的。 但我不明白为什么它对平面单应变换也不变,正如我的测试代码所示。 在两幅图像之间的单应变换中,变化不仅仅包括旋转和缩放。 例如,一个矩形可以转换为其他四边形,每个角都小于或大于 90 度。你可以想象物体的形状发生了变化,但为什么关键点的特征仍然匹配?
在算法细节上,当关键点周围的像素发生变化而旋转度数不相同时,关键点的128维特征减去关键点的梯度角后的值就会不同。
谁能解释一下为什么?
最佳答案
据我所知,SIFT 描述符对于投影变换(单应性)不是不变的。然而,当实际的单应性足够接近相似变换时,它就足够好用了。
这paper by Mikolajczyk and Schmid提出了一种兴趣点检测器,它是仿射不变的。他们还通过变换计算描述符的图像 block 使描述符具有仿射不变性。
关于opencv - 为什么sift特征对平面单应变换也是不变的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19514372/