2012-11-07 37 views
6

在上面的图像中有一些几何图案。型号a距离已知。点严格不在模型距离内。几何图案质量和填充

我想:

  • 计算每个点的质量(点之间的实际距离并不a)好点适合于模式更优质的系数应该有(我试图采取距离和45度角)
  • 排除错误的点(我用红色标记) - 它与图案质量计算

我试过到目前为止:

  1. 以每个点与它们之间的相互
  2. 计算距离和角度
  3. 只取分的邻居当前点(这距离之间a - deltaa + delta
  4. 质量是realDistance/modelDistance * realAngle/modelAngle

失败的原因:

  • 好点的质量是紧密联系在一起坏点附近
  • 如果坏点只有一个邻居的距离和角度是确定它的质量是确定的下降。

所以,问题是:什么是计算在这种情况下,点质量,填充图案最好的算法。模式应该通过考虑邻居位置的元素平均位置来填充。最好的答案将是伪代码或代码或引用某些已知的算法,在这种情况下可能会有所帮助。

问题与我以前的问题Filling rectangle with points pattern有点相关,但填写不能用错误的质量点完成。

回答

1

如果从左到右或从上到下(即相邻点之间的平均距离a已知足够准确),点的误差/失真不会变大,则可以尝试以下操作:

  • 使每个点P 成方形[0,a[ x [0,a[通过取x的其余部分,并通过一个(产生Q )除以时y坐标。因此,优点将或多或少地映射到一个点上。
  • 在这些生成的点Q i选择一个点与最近的邻居(例如,总计1/distance所有到其他点的距离Q j,j ≠ i,并选择最大总和)。
  • 现在你可以P 通过在距离Q looing我到R.分好坏区分(点P ,其对应的Q 接近R将是好点。)

如果点R(与最近的邻居)的坐标接近0或一个(即R是接近正方形[0,a[ x [0,a[的边界),你最好从头开始,并添加a/2到相应的坐标(的每个P i)befo重新计算余数,以便将点R更多地移到正方形的中心。 (或者你可以设法计算离开方块[0,a[ x [0,a[一侧的不同可能性的最小距离,并在另一侧回到它的最小距离。)

+0

但是这个解决方案依赖于一些基础选择。也许我所附的图片太具体了。如果第一点不好,该怎么办? – krzych

+0

你的意思是什么“基础选择”?在这种方法中,所有的观点都是平等对待的,没有什么像“第一点”。所有的点被映射到正方形[0,a [x [0,a [。在这个广场上靠近的人是“好”的人。问题只会在好点之间的平均距离“a”不完全知道的情况下出现。 – coproc

+0

你能否澄清你的答案的最后一段(来自“如果点R ...”)。填充模式的第二部分是什么? – krzych

1

好点似乎沿网格对齐。网格线可以使用RANSAC使用线拟合算法找到。 RANSAC线拟合是一种概率算法。你将不得不重复它直到你找到一条几乎是水平或垂直的线。将这条线上/附近的点取出并进入下一个网格线。根据您的问题特征,如果剩余的点数太少或在一条线附近点数太少,您将停止寻找新的网格线。其余的点是不好的。当您找到找到的网格线的交点并且在交点附近没有点(来自所有原点的点)时,您可以在这里填入一个点。