【问题标题】:Calculating the boundary of irregular shape in Cartesian Coordinate 2D在笛卡尔坐标 2D 中计算不规则形状的边界
【发布时间】:2016-01-14 08:27:58
【问题描述】:

我正在寻找一种计算不规则形状边界的解决方案。

Lats 看一下 Square 的例子:

如果我有 Minimum xyMaximum xy 喜欢:

MaxX = 5
MinX = 1
MaxY = 5
MinY = 1

在python语言中:

#Python Code
X = {"Min":1, "Max":5} # is Dictionary of x Axis
Y = {"Min":1, "Max":5} # is Dictionary of y Axis

我可以检查任何坐标是否在正方形边界内,只需将轴与正方形边界的最小值和最大值进行比较。

现在让我们看看这两个不规则的例子:

现在如何计算形状的边界和坐标?我确实有点坐标,但我没有形状内部的坐标和连接形状每个点的线坐标。

注意:您可能会建议使用 Point-in-Polygon,但这就像每次都针对特定坐标进行计算,如果形状很大,则需要时间。

注意:即使您在任何书籍、演讲、视频、网站中听说过解决方案,甚至您在猜测,也请在评论中告诉我,这可以帮助我。

【问题讨论】:

  • 您尝试过检测角点吗?如果它是关于图像的,那么我建议您使用专门用于此的圆顶类库(如 OpenCV)。分两部分进行:检测和解释尺度,然后检测形状中的角并解释它们的点
  • 您要确定的是形状的“凹壳”……而不是凸壳。您的第一个图显示了最小面积边界矩形,第二个是凸包,最后一个图是凹包(也请参见 alpha 形状)
  • @sop OpenCV,没听说过,我研究一下,非常感谢。
  • @DanPatterson 我明白了...我不熟悉这些术语,感谢您指出。

标签: python math algebra calculus


【解决方案1】:

如果您想获得形状内整数坐标的完整列表,请考虑使用floodfill algorithm

【讨论】:

  • 你怎么知道从哪里开始?
  • @sop 当我创建一个形状时,它的每个点都有一个数字,只需找到顺时针和逆时针/逆时针,这很简单,但是如果线条像AutoCAD/Rhino 如何处理线条然后找到点是另一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多