用小形状(圆形)填充多边形

4
我将尝试解释我的图片问题:
该程序接收一个输入(图像):

enter image description here

有一个基础多边形,但在所有情况下都可以简化为圆形:

enter image description here

输出应该类似于:

enter image description here

没有正确的结果,只有好的和坏的。

为了使事情更容易,可以根据多边形的表面积和范围提供一个圆的数量估计。

我正在寻找一种算法,它可以执行上述描述的操作-尽可能用给定的形状覆盖,同时最小化黑色像素的面积和重叠区域的面积。

1个回答

1
我使用k-means聚类算法来查找圆心。计算聚类数目如下:numberOfClusters = round(polygonArea / basePolygonArea)
k-means算法的输入数据是白色像素点。

嗨@Jaka Konda - 你能提供一些更详细的解决方案吗?我有类似的问题 - 我需要在地图上选择的多边形上均匀地放置圆。 - hbk
@hbk,探究幽灵。我会尝试在今天晚些时候找到代码,但它已经过时了。但是我记得我只是迭代遍历了所有像素,如果是白色的就将其存储在向量/cv::Array2d中,然后将其转发到使用我的答案中的公式计算出的期望聚类数的k-means中。输出是中心点。在我的情况下,圆的直径是固定的,因此k-means是适当的。 - Jaka Konda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接