计算不规则形状多边形之间的最小距离

时间:2013-02-06 14:44:15

标签: image matlab distance

我有这个形象。它由许多不规则多边形组成。 enter image description here

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

所以,我想知道的是

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

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

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

2 个答案:

答案 0 :(得分:0)

我几乎肯定(你必须检查)总是存在X和Y两个点是距离的真实(我的意思是,Dist(Polyg1,Polyg2)= Dist(X,Y),X属于P1和Y属于P2),其中一个是多边形的顶点。 有了那台电脑,效率就会提高。您不必检查B1对B2仅针对B2的顶点B1和B2针对B1的顶点。

答案 1 :(得分:0)

可能值得研究四叉树或b树等结构。通过四叉树表示您的图像可以帮助您实现您想要做的任何事情。至少你可以通过在更高层次撬开树来“平滑”。

试试看: http://www.cs.ubc.ca/~pcarbo/cs251/welcome.html