【问题标题】:Find a similarity of two vector shapes查找两个矢量形状的相似性
【发布时间】:2009-09-24 01:17:48
【问题描述】:

寻找与比较矢量图形相关的任何信息/算法。例如。假设有两个点集合或具有两个几乎相同图形的矢量文件。我想确定第一个数字与第二个数字的相似度约为 90%。

【问题讨论】:

  • 这是一般情况。想想这是否适用于 2D,制作 3D 并不难。
  • 四次方程是小菜一碟,所以我想五次方程应该不是问题......实际上我不知道 2D 与 3D 模糊向量比较,但我认为这可能是一个错误确保它同样困难。
  • 相似是什么意思?有没有你知道的逐点对决,你想看看这些点有多少变化;或者它们是相似的点,但有一些缺失;还是您的意思是相似的形状,但可能是缩放和旋转的?我假设您只是指几何形状,对吧,而不是类似的颜色?
  • 仅从几何角度来看类似。没有颜色、其他属性或点数很重要。形状可以缩放或旋转,但重要的是形状几何本身。你的答案看起来是正确的。

标签: algorithm vector similarity


【解决方案1】:

测试相似性的常用方法是使用image moments。矩本质上是平移不变的,如果您比较的对象可能被缩放或旋转,您可以使用对这些变换保持不变的矩,例如Hu moments

我知道的大多数程序都需要矢量对象的光栅化版本;但矩可以使用格林定理方法直接从矢量图形计算,或者更简单的方法仅识别唯一(无序)顶点配置,将 Hu 矩积分转换为顶点上的总和 - 在物理类比中在每个顶点处用相等的点质量替换连续对象。

有一篇论文介绍了一种名为 VISTO 的工具,它可以对矢量图形图像进行排序(我认为是使用矩),这对于更多细节肯定有用。

【讨论】:

  • Here's another link 到 VISTO 方法。 (顺便说一句,它不是免费的,鉴于它是 Elsevier,我认为它永远不会免费。)
【解决方案2】:

您可以搜索指纹匹配算法。指纹通常会转换为一组点,它们之间的相对位置,这使得它与您的问题基本相同。

【讨论】:

    【解决方案3】:

    您可以将其转换为非矢量图形,然后应用标准图像分析技术,如 SIFT 点等。

    【讨论】:

    • 谢谢,我知道,但我专门问了这个关于矢量图形的问题,希望有现有的方法可以解决此类问题,而无需“返回”光栅算法。这是一个理论问题,我没有具体的问题要解决,所以我现在找不到光栅算法缺点的例子,但我确信它们的矢量类比应该更高质量和更通用。
    猜你喜欢
    • 2019-08-27
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多