0

我有这个图像。它由许多不规则的多边形组成。在此处输入图像描述

首先,我想计算两个多边形之间的最小距离。我认为可以实现的方法是首先提取每个多边形的边界像素的位置并将其存储在数组中,例如 B1 和 B2。然后计算B1中每个点到B2中每个点的距离,然后找到最小值。然后我想对图中的每个多边形重复这个。

所以,我想知道的是

  • 如何提取每个多边形的边界?
  • 如何将计算时间保持在最短?
  • 有没有更好的方法来解决这个问题?

此外,由于多边形非常不规则,我认为稍微平滑它们也可以节省大量时间。但我又不知道怎么做?

我发现这个函数是我想要的 FEX,只要我有多边形的边界点,但由于它的一般性质,我发现它非常复杂。我认为更简单的代码可以更快地完成这项工作。

4

2 回答 2

0

我几乎可以肯定(您必须检查)始终存在 X 和 Y 两点是距离实数(我的意思是, Dist(Polyg1,Polyg2)=Dist(X,Y) 并且 X 属于 P1 而 Y 属于 P2 ),其中之一是多边形的顶点。这样计算机效率就会提高。您不必仅检查 B1 与 B2 的 B1 顶点与 B2 以及 B2 的顶点与 B1。

于 2013-02-06T17:47:13.683 回答
0

可能值得研究四叉树或 b 树之类的结构。用四叉树表示你的图像可以帮助你实现你想要做的任何事情。至少您可以通过在更高级别修剪树来“平滑”。

尝试阅读: http ://www.cs.ubc.ca/~pcarbo/cs251/welcome.html

于 2013-02-07T09:38:37.263 回答