给定一组带有顶点坐标的 N 边界框:
"vertices": [
{
"y": 486,
"x": 336
},
{
"y": 486,
"x": 2235
},
{
"y": 3393,
"x": 2235
},
{
"y": 3393,
"x": 336
}
]
我想将边界框分组为行。换句话说,给定此图像中边界框的图形表示:
我想要一个返回的算法:
[1,2,3]
[4,5,6]
[7,8]
[编辑:澄清]分组决策(例如[4,5,6]和[7,8])应该基于某种误差最小化,例如最小二乘法。
是否存在执行此操作的算法或库(最好是在python中)?
答案 0 :(得分:0)
我认为这是一个集群问题。事实上,因为你可以忽略x坐标,我认为这是一维聚类问题。一些标准的聚类算法(如k-means)可以最大限度地减少聚类中心的平方和,这相当于您所寻找的。不幸的是,他们无法保证找到全球最佳解决方案。一维聚类是一种特殊情况,其中有精确算法 - 请参阅Cluster one-dimensional data optimally?。