gpt4 book ai didi

python - 匹配两个图像关键点

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:02 24 4
gpt4 key购买 nike

如何在不使用 opencv 匹配器的情况下匹配两个图像的特征?我已经检测到它们的关键点和描述符。

kp1, des1 = sift.detectAndCompute(gray1,None)
kp2, des2 = sift.detectAndCompute(gray2,None)

如果我理解正确,我应该将 des1 中的每个描述符与 des2 中的每个描述符进行比较,并找到最好的。但是我怎么比较它们呢?

最佳答案

一个点的SIFT描述符只是128维的向量,所以你可以简单地计算每两个点之间的欧几里德距离并匹配最近的对。

从 opencv SIFT 中,您可以获得数组 des1des2,它们是每个点的 SIFT 向量数组。您可以像这样通过 numpy 广播计算每对之间的距离:

distance = np.sqrt(np.sum((des1[:, np.newaxis, :] - des2[np.newaxis, :, :]) ** 2, axis=-1))

现在,在 distance 的每一行中,kp1 的特定关键点与 kp2 的每个关键点之间都有欧氏距离。

这种方法很简单,但通常不是很有效。如果你想自己实现一些更复杂的匹配器,你应该为此阅读一些 SIFT 论文。

我发现了这样两个:

paper 1 - simpler

paper 2 - more complicated

关于python - 匹配两个图像关键点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50472180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com