绘制线条之间的相似度计算

5
我需要一个算法来数值计算两条手绘线的相似度。这些线是使用鼠标绘制的,并且在使用不同的算法进行过滤和平滑处理之前,它们被存储为一组笛卡尔坐标。
例如,在下图中: diagram 线A和B明显相似,但B和C则不是。该算法应反映这一点。此外,线的“方向”,由起点和终点表示,也很重要。是否已经存在这样的算法?

看一下Hough变换。这可能有些过度,也许有人有更好的解决方案。 - Ivo
A和C行也不相似。 - W4t3randWind
2个回答

2
这个答案极其延迟,但出于像我这样通过搜索偶然发现它的人的利益,我将发布它。我认为 Fréchet距离 可能是你正在寻找的度量方式,特别是因为方向很重要。您可以用许多方法来解决此问题,其中一种是以某些采样率对绘制的点进行采样,并在时间戳上计算每两个样本之间的欧几里得距离,然后取最大值。

2
一种简单的方法是对两条线上相应点之间的距离进行求和。假设两条线的长度几乎相同,线上的点数量大致相同且等距分布。
1. 将线2平移,使其起始点与线1的起始点相同。
2. 计算线1和线2之间相应点之间的距离总和。
3. 如果平均距离(即SUM/NUMBER_OF_POINTS)小于THRESHOLD,则表示这两条线相似,否则它们不同。可以扩展此方法以支持具有不同大小的线。在这种情况下,只需将较小的线放大以与较长的线匹配,然后其余部分可以类似于上述方法。
除了计算距离外,还可以计算线条斜率之间的差异。如果在任何点处(或者一些点处,需要进行一些实验)斜率的差异过大(高于某个阈值),则它们不相似。

就我个人而言,我认为bhups的意思是您想要对应点之间差值的绝对值之和。符号很重要,而“距离”未定义。 - W4t3randWind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接