我有一张如下图片。 我想在图像中找到一组圆圈(它们的位置)。 在以下示例中,应该有三个组。背景为白色或呈白色。
(在源图像中不会有这样的矩形。我刚刚画过以显示群组应该是什么样的)
有可能找到它吗?
这样的图片怎么样:
没有矩形的圆圈:
答案 0 :(得分:2)
您必须使用HoughCircles
标识圈子,然后使用clusterisation(K-Means algorithm)。 OpenCV具有K-Means实现:请参阅example1,example2和docs。
答案 1 :(得分:1)
HoughCircles在它们被视为单独的圆之前,其可能的圆之间的距离作为其参数之一。只需不断调整此参数即可。只要您的圆圈组比每组中的实际圆圈更远,HoughCircles会将每个圆圈计为同一“圆圈”的一部分。
但是,如果您的圆圈组重叠,那么这将无效。你必须以某种方式将每个小组分开。也许如果一个组中的所有圆都在一条线上(就像你的图片中那样),那么基本的Hough线检测会给你一条线 - 然后你可以检查一起靠近的平行线,那些会指示每个组? / p>
答案 2 :(得分:0)
1 - 只需反转图像,
2 - 然后扩大图像,使所有圆圈连接在一起,
3 - 找到轮廓,
4 - 找到边界框。
例如: