图像中的点数

Number of dots in an image

我有一张图片,上面散布着普通的点。这些点的大小相同并且是实心的(我可以读取颜色来确定一个点是否在里面)。找到确切点数的最有效算法是什么? 我想到了 Monte Carlo,但我不知道我应该使用足够多的随机点。有什么建议吗? 编辑:这是一张仅包含点的白色图像。

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

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

使用颜色反转(cvThreshold THRESH_BINARY_INV)使图像二值化(纯黑白)以在黑色背景上制作白点

查找连通分量 (findContours) - 之后 contours.size 给出点数

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

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

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

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

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

最后一个K值就是点数