首页 > 解决方案 > 如何使用 L2 范数(python)在描述符中查找匹配项?

问题描述

为了了解图像匹配的工作原理,我需要进行一些说明。基本上,我计算了img1和img2的关键点(keypoints1,keypoints2)。在我计算了描述符(desc1,desc2)之后。之后,我使用 scipy 库中的 cdist 函数来计算这些描述符的 L2 范数。现在我不明白如何使用计算的距离找到匹配项。我不明白如何找到匹配的适当索引。如果可能的话,你能在 python 向量示例中展示吗?(就像 desc1 = [[1,2],[3,4]] 和 desc2 = [[5,6],[0.9, 2.1]]。显然这里 desc1[0] 和 desc2[1] 具有最小距离。 )

标签: pythoncomputer-vision

解决方案


你的意思是这样的吗?

scores=scipy.spatial.distance.cdist(desc1,desc2)

matches=scores.argsort(1)

在上面的代码片段中,包含和scores[i,j]之间的匹配分数,和desc1[i]desc2[j]

matches[i]=[index_1, ..., index_k] 

desc2[index_1]最接近的匹配desc1[i]desc2[index_2]是次优匹配desc1[i],依此类推。


推荐阅读