Arrays 从布尔网格中查找多边形

Arrays 从布尔网格中查找多边形,arrays,bitmap,polygon,concave-hull,Arrays,Bitmap,Polygon,Concave Hull,我有一个像这样的二维布尔数组 这个形状不会有任何洞——即使它有——我将忽略它们。现在我想找到包含我形状的多边形: 有什么算法可以用于这种情况吗?我找不到任何,但我不确定是否知道此任务的正确搜索词。您可以使用delaunay三角剖分,然后删除最长的边。我使用所有边的平均值乘以一个常数。仔细考虑后,我发现了一个O(n)-方法:按行搜索至少包含一个相邻字段集为真的第一个坐标。从那里你可以明确地迈出向右的第一步。从现在开始,只需绕场走一圈,根据四个相邻的场决定下一步走的方向。我觉得你好像找到了多边形

我有一个像这样的二维布尔数组

这个形状不会有任何洞——即使它有——我将忽略它们。现在我想找到包含我形状的多边形:


有什么算法可以用于这种情况吗?我找不到任何,但我不确定是否知道此任务的正确搜索词。

您可以使用delaunay三角剖分,然后删除最长的边。我使用所有边的平均值乘以一个常数。

仔细考虑后,我发现了一个O(n)-方法:按行搜索至少包含一个相邻字段集为真的第一个坐标。从那里你可以明确地迈出向右的第一步。从现在开始,只需绕场走一圈,根据四个相邻的场决定下一步走的方向。

我觉得你好像找到了多边形。但也许你可以再解释一下你拥有什么和你想要什么。您的数组是如何表示的?您想要为正在尝试查找的多边形使用什么表示法?我手动找到了该多边形,但我希望我的程序能够找到它。我想找到一个代表多边形的x-y坐标列表。因为你有包含的正方形的坐标,所以这个问题的答案-,会告诉你剩下的部分。delaunay三角剖分是O(n*log(n)),我认为这对我的任务来说太贵了。我打赌这是有办法的。