【发布时间】:2015-11-09 04:28:28
【问题描述】:
我有一个程序可以输出如下图所示的图像(位图),其中有一些“实心”圆圈(左),一些“未填充”的圆圈,它们将带有“翅膀”(右下),还有一些“不完整”的圆圈和未填充的“带有“翅膀”的圆圈(右上角)。
这些圆圈大小不一(尽管相似),并且可能有任意数量的翅膀。 我要做的是确定有多少个圆圈。因此,对于示例图像,我需要程序计算 11 个圆圈(翅膀的数量无关紧要)。我知道所有黑点的坐标(不要与黑圈混淆,因为一个圆圈包含许多黑点)。我不知道的是如何告诉计算机将“接近”的那些放在一起只是一个圆圈。
几个注意事项:如前所述,圆圈的大小非常相似,但不一样,所以我不能使用直径。此外,如您所见,某些圆圈可能不完整,因此这可能是一个问题。图像总是黑白的,最后,圆圈之间总是会有空白(我不确定这两个是否可以简化过程)
我已经看到了一些循环位图并比较点 (x,y) 的 5 个空间内有多少黑点的蛮力方法,但这需要的时间太长,而且并不总是正确输出.
有什么简单的方法可以做到这一点(在 C# 中)?
提前致谢!!!
【问题讨论】:
标签: c# image-processing bitmap