1

我有一张像下面这样的照片。我想在图像中找到一组圆圈(它们的位置)。在下面的示例中,应该有三个组。背景是白色的或将是白色的。

(在源图像中不会有这样的矩形。我刚刚画了显示组应该是什么样的)

有可能找到吗?

圆圈确实检测到

这样的图片怎么样: 示例 2

没有矩形的圆: 示例 3

示例 4

4

3 回答 3

2

HoughCircles您必须使用然后使用聚类K-Means 算法)来识别圆圈。OpenCV 有 K-Means 实现:参见example1example2docs

于 2012-07-09T18:36:58.473 回答
1

HoughCircles 将可能的圆之间的距离作为其参数之一,然后再将它们视为单独的圆。只需不断调整此参数即可。只要您的圈子组比每组中的实际圈子相距更远,HoughCircles 就会将每个圈子视为同一“圈子”的一部分。

但是,如果您的圈子组重叠,那么这将不起作用。您必须以某种方式将每个组分开。也许如果一个组中的所有圆圈都在一条线上(就像你的图片中一样),那么基本的霍夫线检测会给你这些线 - 然后你可以检查靠近在一起的平行线,那些会指示每个组?

于 2012-12-13T04:23:13.260 回答
0

1 - 只需反转图像,

2 - 然后扩大图像,使所有圆圈连接在一起,

3 - 找到轮廓,

4 - 找到边界框。

例如:

在此处输入图像描述

于 2012-07-09T18:35:52.587 回答