【发布时间】:2013-03-26 14:55:34
【问题描述】:
我有一组无序的二维点,是图像分割的结果。在位图中绘制在一起的点是一个连续区域。
我想知道它的(区域)边界中有哪些点。该区域可能是凹的,所以这已经排除了Convex Hull 对我的影响。它也可能有“洞”(即内部和外部边界)。
有很多(> 10k)点。我坚持使用类似搜索的(非递归)填充填充,将边界点添加到向量。如果存在内部边界,这也会给我带来“分离”内部和外部边界点的问题。有没有更好的算法?
【问题讨论】:
-
要回答您的问题,您必须知道边界是如何定义的。如果你有,例如,一个正方形的角有 4 个点,中心有一个点,根据边界点的定义,这个中心点可能属于或不属于边界。
-
@Reinhard Männer 因为这对我来说只是一个可视化问题,我对不同的定义持开放态度(这里或那里的像素在大图像中没有实际的视觉差异)。但是对于一个答案,在点集之外有邻居的每个点都可以说是一个边界点。
-
@VitorBraga,“邻居”也没有很好的定义。我认为对于您可以生成的任何一组点,都会有一个包含每个点的边界。您的问题需要得到更好的定义。
-
@Mark Ransom 也许我应该说“像素”而不是点。所有点都在离散网格中。邻居是在任何 X 或/和 Y 坐标上相差 1 个单位的任何点。
-
你看过 alpha hull 算法吗?类似于凸包,但可以容纳凹面。你能发布一个示例图片吗?
标签: algorithm image-processing graphics