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