【发布时间】:2011-09-19 01:40:22
【问题描述】:
我有两个长度为 n 和 m 的序列。每个点都是 (x,y) 形式的点序列,表示图像中的曲线。我需要找出这些序列有多么不同(或相似),因为
- 一个序列可能比另一个长(即,一个序列可能是另一个序列的一半或四分之一,但如果它们追踪大致相同的曲线,它们是相同的)
-
这些序列可能是相反的方向(即序列 1 从左到右,而序列 2 从右到左)
我研究了一些差异估计,例如 Levenshtein 以及蛋白质折叠的结构相似性匹配中的编辑距离,但它们似乎都没有奏效。我可以编写自己的蛮力方法,但我想知道是否有更好的方法。
谢谢。
【问题讨论】:
-
您能否更具体地说明您想要从编辑距离中得到什么?您是否试图在序列上提出某种度量空间?你只是想对比赛进行排名吗?或者您只是在寻找相似度的主观衡量标准?
-
@templatetypedef - 我真正想做的是将序列(路线)分类。我希望通过计算相似性或差异值并使用预定义的阈值将该序列分配给一个组来做到这一点。
-
当你说一个序列比另一个序列短时,你的意思是它只遵循另一条曲线的一部分,还是它遵循同一条曲线但点更少?
-
@Beta - 有可能两者兼而有之。这些序列是穿越空间的对象的位置,并且传入的数据容易出错 - 它可能从中间开始(仅曲线的一部分),也可能缺少信息(点较少)。
-
还有更多关于曲线的信息吗?例如,它们可以自相交吗? Catmull-Rom 能在多大程度上逼近曲线?等等...
标签: math numerical-methods edit-distance