通过欧几里德距离matlab进行SIFT特征匹配有用

问题描述 投票:0回答:2

SIFT特征匹配通过基于欧几里德距离的最近邻居方法完成。有人可以解释一下吗?有计算吗?如果那么有人可以帮我计算我的SIFT特征向量的欧几里德距离吗?我想将计算的欧几里德距离保存到神经网络的馈送中,具有更多的特征,如圆度和图像颜色。

matlab sift euclidean-distance
2个回答
9
投票

通过欧几里德距离进行SIFT特征匹配并不困难。我将在这里解释一下:

  1. 你有两个图像的关键点描述符。
  2. 从一个图像中获取一个关键点描述符。 2.1现在,找到关键点描述符u和其他图像的关键点描述符之间的欧几里德距离。 2.2现在,您将image1中的一个关键点的欧几里德距离与image2中的所有关键点相关联。按升序排列它们(它表示image1中关键点到image2中关键点的最近距离) 2.3现在,设置一些阈值T(大多数在0.3到0.7范围内)。 2.4取第一个最近距离与第二个最近距离的比值并小于该阈值,然后只有它匹配并保存该索引。否则没有匹配。
  3. 对image1中的所有关键点描述重复此操作。
  4. 现在你有了比赛。
  5. 您可以通过附加两个图像然后基于关键点位置来绘制匹配图。

0
投票

我认为你的怀疑是欧几里德的距离。欧几里德距离是在欧几里得(或二维)平面中看到的两点之间的距离。它是一个二维平面非常直观,但由于SIFT描述符是128维的向量,它变得棘手。你只需坚持公式(https://en.wikipedia.org/wiki/Euclidean_distance

这是我计算欧氏距离的代码:

  for j = 1 : length(SIFT2)

        euclideanDist(j) = sqrt(sum((SIFT1{i} - SIFT2{j}).^2));

  end

代码将找到第一个图像上的点“i”到第二个图像中所有遇到点的距离,在这种情况下为“j”。我将这个距离存储在矢量欧氏区。

单元阵列SIFT1和SIFT2包含每个图像的描述符。

© www.soinside.com 2019 - 2024. All rights reserved.