计算2个矩阵的最近点的映射

时间:2012-04-09 21:31:41

标签: algorithm matlab sift

我有两个矩阵A和B.每个矩阵都有2列,坐标为( x , y )

我需要计算一个mapping of points from A to B,使得这些点之间的欧氏距离最小。

基本上我试图模仿sift在图像上做了什么,但是不会执行sift用于匹配点的步骤......

因此,对于A中的所有点,我计算B中所有点的欧氏距离,然后去除具有最小距离的2个点的映射。然后我继续这样做,直到A和B都是空的。

有人能告诉我这样做最有效的方法吗?

修改

有人可以帮助我...我面临的问题是我需要计算所有距离,然后再选择最小值作为第一个映射。然后我需要重新做这个,使计算真的很长......

有没有办法在MATLAB中有效地完成这项工作?

1 个答案:

答案 0 :(得分:0)

您是指两种不同配置点之间的Procrustes距离吗?如果是这样,Matlab有一个内置函数,可以计算最小范数转换,使点对齐(这是Procrustes距离)。

请参阅this documentation了解如何使用它。如果你没有统计工具箱,那么你应该先检查Matlab Central File Exchange,看看是否有人在寻找你自己的函数之前编写了procrustes()函数的非工具箱版本。