我已经在opencv中实现了SIFT来比较图像......我还没有编写用于比较的程序。考虑使用FLANN来做同样的事情。但是,我的问题是,查看描述符的128个元素,并不能真正理解图像及其旋转版本的相似性。
通过阅读 Lowe 的论文,我确实明白描述符坐标都是根据关键点方向旋转的……但是,相似度究竟是如何获得的。我们可以通过查看 128 个值来理解相似度吗?
请帮助我...这是我的项目演示文稿。
我已经在opencv中实现了SIFT来比较图像......我还没有编写用于比较的程序。考虑使用FLANN来做同样的事情。但是,我的问题是,查看描述符的128个元素,并不能真正理解图像及其旋转版本的相似性。
通过阅读 Lowe 的论文,我确实明白描述符坐标都是根据关键点方向旋转的……但是,相似度究竟是如何获得的。我们可以通过查看 128 个值来理解相似度吗?
请帮助我...这是我的项目演示文稿。
您可以首先使用 Lowe 度量来计算两个图像之间的一些假定匹配。度量标准是对于图像 1 中的任何给定描述符 de,找到与图像 2 中所有描述符 de' 的距离。如果最近距离与第二最近距离的比率低于阈值,则接受它。
在此之后,您可以执行 RANSAC 或其他形式的稳健估计或 Hough 变换来检查您接受为假定匹配的关键点的位置、方向和比例的几何一致性。
如果我没记错的话,SIFT 会给你一组 128 个值的描述符来描述每个兴趣点。您还拥有每个图像中每个点的位置,以及它的“方向”(我忘记了论文中所谓的“方向”)和每个图像中的比例。
找到两个具有匹配描述符的点后,您可以通过比较坐标和方向来计算从一幅图像中的兴趣点到另一幅图像中相同点的变换。
如果您有足够的匹配项,您会查看所有(或大部分)兴趣点是否具有相同的转换。如果他们这样做,图像是相似的,如果他们不这样做,图像是不同的。
希望这可以帮助...
你要找的基本上是 ASIFT