【发布时间】:2015-09-26 06:16:11
【问题描述】:
在我的任务中,我将凹多边形表示为 1 和 0 的矩阵,其中 1 表示给定点属于该多边形。例如,下面是一个简单的正方形和一个 u 形多边形:
0 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 1 1 0 0 1 1
0 1 1 0 0 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1
但是,有时我会得到不完整的表示,其中:(1) 包括所有边界点,以及 (2) 缺少一些内部点。例如,在下面的 u 形多边形的放大版本中,位置 (1,1), (1,6), (3,1), ..., (3,6)* 的元素是“未填充的”。目标是填充它们(即将它们的值更改为1)。
1 1 1 0 0 1 1 1
1 0 1 0 0 1 0 1
1 1 1 1 1 1 0 1
1 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1
您知道在 Python/NumPy 中是否有一种简单的方法可以做到这一点?
*(row, column),从左上角开始计数
【问题讨论】:
-
你如何确定这些不是位置(3, 0),(4, 0)不是应该被填充的位置?它是否与触及整个矩阵“边界”的零路径有关?
-
你的意思是第一行中间的两个零?
-
哦,是的,对不起,我的行和列不匹配。
-
我不确定我是否理解正确,但这两个零在最外层定义的 u 形多边形的边界之外。
标签: python numpy concave concave-hull