python - 如何使用 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] 具有最小距离。 )
解决方案
你的意思是这样的吗?
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]
,依此类推。
推荐阅读
- c# - Highcharts 实心仪表板
- javascript - 表单上的 eventListener 未触发
- javascript - 从一个对象中“删除”多个属性而不发生突变
- c++ - 专门用于可变参数的类模板
- c# - 将数据附加到统一类 c#
- android - 在 Android 上的 Ionic 应用程序中禁用自动填充弹出窗口
- node.js - GitHub API 在尝试生成访问令牌时返回 401
- powershell - 使用 Get-Disk 列出磁盘号并检查它们是否在线
- webrtc - 连接到同一台机器时看似随机的 WebRTC ICE 连接失败
- ruby-on-rails - 在暂存环境中测试子域