【发布时间】:2012-04-13 08:05:31
【问题描述】:
我有两个矩阵 A 和 B。每个矩阵都有 2 列,其坐标为点 ( x , y )。
我需要计算一个mapping of points from A to B,使得这些点之间的欧几里得距离最小。
本质上,我试图模仿 sift 对图像的作用,但不会执行 sift 为匹配点所做的步骤...
因此,对于 A 中的所有点,我计算 B 中所有点的欧几里得距离,然后删除距离最小的 2 个点的映射。然后我继续这样做,直到 A 和 B 都为空。
有人能告诉我什么是最有效的方法吗?
编辑
有人可以帮我吗...我面临的问题是,在选择它们中的最小值作为第一个映射之前,我需要计算所有 v/s 所有距离。然后我需要重新做一遍,使得计算真的很长......
有没有什么方法可以在 MATLAB 中有效地完成?
【问题讨论】:
-
我之前问过非常相似的问题。唯一的区别 - 我有向量,你有矩阵。无论如何,解决方案应该非常相似。看看:Mapping 2 vectors - help to vectorize
-
@yuk 这是我想要的……但是数据没有排序,当然它们是矩阵……所以有人可以建议是否有内置或更快的解决方案吗?