【发布时间】:2021-09-12 16:44:23
【问题描述】:
我的图像中有一堆圆圈(相交和不相交的圆圈)。我必须将它们中的每一个(仅不相交)分组为三个圆圈,以使圆圈之间的距离必须最小并且它们之间的标准偏差最小,并且只返回这些圆圈之间距离和标准偏差最小的一组。
每个圆都有 x,y,r 等值,其中 x,y 是圆心,r 是半径。
我的主要目的是在给定的图像中找到交通灯信号(红色、黄色和绿色圆圈)。
【问题讨论】:
标签: python-3.x numpy opencv
我的图像中有一堆圆圈(相交和不相交的圆圈)。我必须将它们中的每一个(仅不相交)分组为三个圆圈,以使圆圈之间的距离必须最小并且它们之间的标准偏差最小,并且只返回这些圆圈之间距离和标准偏差最小的一组。
每个圆都有 x,y,r 等值,其中 x,y 是圆心,r 是半径。
我的主要目的是在给定的图像中找到交通灯信号(红色、黄色和绿色圆圈)。
【问题讨论】:
标签: python-3.x numpy opencv
我可以想到以下算法:
i) 选择一个随机圆 A 并找到它最近的邻居 B。如果有圆碰撞或半径偏差大于某个阈值标记 B 以供以后使用。重复直到找到可接受的邻居 B。如果没有找到标记 A 供以后使用。如果找到 B,则重做该过程以在 A 附近找到 C。如果没有找到 C,请尝试靠近 B。如果 A、B、C 都找到标记为交通灯信号。 (通过测量圆圈和排列的中心之间的距离来验证)
ii) 现在取消标记非交通灯圈并重复 i) 直到找不到更多 A、B、C。
整个算法类似于聚合聚类的一些变体,生成了 3 个聚类。
【讨论】: