我有一张从中“提取”文字的图像-基本上在字母周围放了边框。 以下面类似的方式显示,不同之处在于,有字母代替硬币,而不是硬币。我需要根据它们所在的“行”对这些边界框进行聚类-因此,例如,我将必须对硬币或“字母”的上一行进行聚类(在我的情况下)。我似乎无法找出一种有效的方法来做到这一点?
我有一个非常粗略的方法,我计算每行中的边界框的数量并相应地对其进行聚类,但这根本没有效率。
答案 0 :(得分:1)
假设一个字母到其相邻字母的距离与其下一个字母的距离不同,则可以使用K-均值聚类。或者,您可以将DBSCAN与合适的epsilon一起使用。
考虑给定的示例,您应该评估集群是否确实必要。正如您提到的那样:假设您具有关于每个“行”的信息(例如,与上一个已知行的高度差),则可以检查边界框是否包含相同的x / y坐标(取决于您是在行/列还是列中) / rows格式)。
有效地实现这一目标可能比您将要进行的任何集群都快。