Algorithm 计算绘制线之间的相似性

Algorithm 计算绘制线之间的相似性,algorithm,graph,filtering,line,similarity,Algorithm,Graph,Filtering,Line,Similarity,我需要一个算法来计算两条画线之间的相似度。线使用鼠标绘制,并存储为一组笛卡尔坐标,然后使用单独的算法进行过滤和平滑 例如,在下图中: A行和B行明显相似,但B行和C行不同。算法应该反映这一点。此外,起点和终点指示的线路“方向”也很重要。这种算法已经存在了吗?一种简单的方法是计算两条直线上对应点之间的距离之和。因此,让我们假设两条直线的长度几乎相同,直线上的点数近似相等。1.平移直线2,使其起点与直线相同第1行的起点。2。计算直线1和直线2之间对应点之间的距离总和。3。如果平均距离(即点的总和/

我需要一个算法来计算两条画线之间的相似度。线使用鼠标绘制,并存储为一组笛卡尔坐标,然后使用单独的算法进行过滤和平滑

例如,在下图中:


A行和B行明显相似,但B行和C行不同。算法应该反映这一点。此外,起点和终点指示的线路“方向”也很重要。这种算法已经存在了吗?

一种简单的方法是计算两条直线上对应点之间的距离之和。因此,让我们假设两条直线的长度几乎相同,直线上的点数近似相等。
1.平移直线2,使其起点与直线相同第1行的起点。
2。计算直线1和直线2之间对应点之间的距离总和。
3。如果平均距离(即点的总和/数量)小于阈值,则线是相似的,否则它们是不同的。
这可以扩展到支持不同大小的线。在这种情况下,只需放大较小的直线以匹配较长的直线,其余部分可以类似于上述方法。
除了计算距离外,您还可以计算直线斜率的差异,如果在任何点(或少数点,您需要为此进行一些实验)的斜率不同,则可以达到更高的程度(高于某个阈值)那么它们就不相似了。

这个答案非常延迟,但我会为了像我这样通过搜索偶然发现它的人而发布

我相信这可能是你正在寻找的措施,特别是因为方向很重要


你可以用很多方法来实现这一点,其中一种方法是以一定的采样率对绘制的点进行采样,然后计算每两个样本在时间戳上的欧氏距离,然后取最大值。

FWIW,我认为bhups意味着你想要对应点之间差值的绝对值之和。符号和“距离”未定义。请查看。这可能有些过分,也许其他人有更好的解决方案。a行和C行也不相似