2

我有两组线,集 A 和 B。这两组中所有线的起点和终点都是已知的,我想找到最适合集 B 到集 A 的旋转和平移。没有缩放:

在此处输入图像描述

  • 没有一对一的映射。我相信这排除了 Kabsch 算法,尽管我可以设想一个使用它的蛮力算法。
  • 集合 B 可能包含 A 中的部分行段。它可能包含相当稀疏的行数。
  • B 中的线条将是错误的 - 可能观察到 A 中不存在的线条。
  • 当然,可能有不止一种可能的“匹配”

对于某些背景,这是基于原始图像的机器人定位系统的一部分。

  • 集合 A 是一个“地图”——数据是从导入的 dxf 文件中导入的。
  • Set B 是一组观察到的线。

我环顾四周,例如这里:

如何将形状对齐在一起?(几何最佳拟合算法)

这是一个聪明的方法吗?浏览图像处理文献中的形状匹配似乎更像是光栅图像的模式匹配——对于这个问题来说可能是矫枉过正。

目前我能感知到的最好方法是使用类似于 Hough 变换的方法,将 B 中的每条线沿 A 中的每条线取走,并为这些代表的旋转/变换设置 bin。我还没有对此进行编码并尝试过 - 有点想避免重新发明轮子。

非常感谢任何想法和输入。

4

1 回答 1

0

一个通用的解决方案是从集合 A 中提取“特征”,并将这些特征与集合 B 进行比较。

一个例子:考虑集合 A 中的所有唯一角度并计算不同的唯一角度对。在您的集合 A 示例中,只有三种可能的情况:(0,0)、(0,90)、(90,0)。对集合 B 中所有线的角度进行排序,并与集合 A 中的对进行匹配。示例:如果角度为 0,5,50,93,129,则角度为 (0,5)、(0,93)、( 5,93), (50, 129) 是匹配的候选者。获得候选人后,您可以进一步过滤它们。

根据您在集合 A 中的线类型,您可以提取相关特征。示例:如果您的所有线都是垂直或平行的,则您可以具有线之间的距离等特征。

于 2013-05-09T23:53:27.947 回答