如何对单个数字或多个数字进行分类
我有一个包含数字的图像。
有:1,153,25,50,23和40
对于每一位数字,我都没有数字识别问题。 我可以看出有1,1,5,3,5,0,2,5,2,3,4,0。
现在,我想让他们成为1,153,25,50,23和40。
我的方法是,使图像变得高度模糊,因此数字的边界框与另一个数字的边界框相遇。 然后提取多边界框的巨大边界框内的数字。
我的期望是这样的
但是,现实就是这样
1,153,25,5,0和2340
因为,
5和0的距离太远
距离23和40太近了
我的问题是,是否有另一种方法来分类那些是单个或多个数字? 如果是,如何? :) 非常感谢你 :)
*对不起,我的英语不好
**我使用opencv c ++
与此相比,模糊然后找到边界框的计算时间很大:
如果你可以挑出每个数字,那么你必须至少有一个中心点的每个数字。 我会通过查找每个数字的宽度和高度以及旋转进一步得出结论。 有了这些信息,我会应用一套与人们如何阅读数字相对应的规则。
这些规则可能起作用:
考虑到这样的问题,我宁愿使用概率来订购一组可能的解决方案,那么你的程序可能会问一个操作员,或者如果它被卡住了,假设它可以返回并选择下一个“最好”的一个。
希望这有助于我羡慕你的数字识别技能:)
我建议你不要模糊图像。 只需提取单个字符及其边界框即可。 然后,您可以迭代地为它们的质心应用欧几里得距离阈值,以将边界框合并在一起,一次一个。 然后,您可以将每个数字建模为一个链表,并通过简单的方向启发式将其添加到元素任一侧的列表中。
链接地址: http://www.djcxy.com/p/79645.html上一篇: how to classifying that is a single digit or multiple digit