我正在尝试制作自己的计算机视觉项目。在我进入现实世界之前,我决定从匹配计算机生成的对象开始。第一次测试很顺利,它能够匹配一个物体并且能够正确识别颜色。搜索绿色方块时,这是我的结果:
我在搜索功能
然而,一旦环境更加模糊,就会有更多可能匹配的位置。甚至可能有更理想的目标。这是计算机游戏的截图:
搜索到的对象位于红框中。我的搜索基于相似的颜色,尤其是平均颜色之间的距离。如果我突出显示测试程序中的所有搜索结果,这就是我得到的结果:
显然,在我的物体所在的位置上有很多矩形。我需要对它们进行分组,然后只选择其中一个。
因此问题是:如何对重叠的矩形进行分组并将数组中的每个组分开?
答案 0 :(得分:-1)
在您的图片中,您有一组用红色绘制的N
矩形,您需要一种算法,为您提供k
代表性矩形和此特定图像{{1将等于2.
您需要的算法类似于http://en.wikipedia.org/wiki/Cluster_analysis,其中您需要聚类的数据集是矩形中心的集合,这意味着聚类由2D点表示,该点是代表的中心矩形。
群集算法可以是http://en.wikipedia.org/wiki/K-means_clustering,您可以在此选择k
,如此处所述http://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set
获得k
后,算法将为您提供k
代表中心;然后对于每个矩形,算法将告诉您矩形属于哪个簇。然后可以用这种方式计算代表性矩形:它的中心是簇,宽度是属于簇的所有矩形的平均宽度,高度是属于簇的所有矩形的平均高度。 / p>