Opencv 如何对单个数字或多个数字进行分类
我有一个包含数字的图像 有: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 因为Opencv 如何对单个数字或多个数字进行分类,opencv,image-processing,ocr,image-segmentation,digit,Opencv,Image Processing,Ocr,Image Segmentation,Digit,我有一个包含数字的图像 有: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太近了 我的问题是,有没有另一种方法来分类那些是
- 5和0的距离太远了
- 距离23和40太近了
**我使用opencv c++与此相比,模糊然后查找边界框的计算时间很长: 如果你能挑出这些数字中的每一个,那么你必须为每个数字至少有一个中心点。我将通过查找每个数字的宽度和高度以及旋转来进一步说明这一点。有了这些信息,我将应用一组规则,对应于如何读取数字 这些规则可以起作用:
希望这有帮助,我羡慕你的数字识别技能:)我建议你不要模糊图像。只需提取单个字符及其边界框。然后可以迭代地为它们的质心应用欧几里德距离阈值,一次合并一个边界框。然后,您可以将每个数字建模为一个链表,并通过简单的方向启发法不断添加到元素两侧的列表中。对于50的情况,您可以固定数字之间的距离,例如d。如果数字的距离大于d,则它们是不同的数字。就2340而言,我不认为这是23和40。我相信是2340。是的,固定距离可以在打印字符中实现。但对于用白纸写的手写字(没有行),我认为这相当困难,因为“太自由了”。我的意思是,对于手写,没有固定的距离像印刷文本。有时候,人类只是在写,不在乎数字的距离。这就是为什么我做了这些例子,50和2340,我想解决这些情况,“太远”和“太近”。这张图片只是一个例子。如果我错了,请纠正我。:)对我来说也是2340……你能先检测出所有的数字,然后使用与每个数字大小成比例的距离吗?@lulu你能快速解决这个问题吗?