图像中的点数

时间:2016-06-06 03:13:18

标签: computational-geometry montecarlo

我的图像中散布着普通的点。点的大小相同,并且它们是实心的(我可以读取颜色来决定点是否在内部)。找到精确点数的最有效算法是什么? 我想到了蒙特卡罗,但我不知道应该使用足够数量的随机点。有什么建议? 编辑:它是一个仅包含点的白色图像。

1 个答案:

答案 0 :(得分:2)

这是图像处理算法的好例子。 例如,使用OpenCV库,您可以利用下一种方法:

如果图像格式为彩色,请将其转换为灰度(cvtColor)

使用颜色反转(带有THRESH_BINARY_INV的cvThreshold)制作图像二进制(纯黑色和白色),以在黑色背景上产生白点

查找连接的组件(findContours) - 在此之后,contours.size为您提供点数

如果您不想使用任何库,关键点为connected components labeling

使用Floodfill算法制作小点CCL的最简单方法。

对背景像素进行泛光填充,用0标记。

扫描所有像素。当您遇到未标记的(在X,Y处)时,使用下一个标记值K(1,2等)开始新的洪水填充。

每次填充后返回下一个坐标(X + 1,Y)并继续扫描。

最后一个K值是斑点数。