字符粘连切分方法

  1. 目的
    本方法目的在于解决英文字母OCR中存在的字符粘连问题,使得算法的运算结果更为准确。化学式中存在的粘连问题主要有以下几个特点:一是字符种类较少,大都由常见化学元素的组合和基本的数字构成;二是字符的宽度基本一致,一般不存在一大一小的情况,这方便了我们使用字符宽度这一定界条件而又不影响切分的准确性;最后一个是字符的走向大都是水平方向,因此我们在切割时只需要考虑竖直向的切割即可。

  2. 解决对象
    需要去除粘连的几种情况大致总结如下:
    2.1. 粘连区域窄。粘连的粘连线较窄,这意味着两个有效字符之间的距离很近,因此在切割时在它们中间设置一个切分点即可。按照粘连线的数量,大致又能分为以下两种。
     2.1.1.粘连线单一。两个字符之间只存在一个单一的粘连线,如下图1所示。
     2.1.2. 多条粘连线。两个字符之间不止一条粘连线,如下图2所示。
    2.2. 粘连区域宽。粘连的粘连线较宽,在切分的时候需要考虑两个字符之间大致的间隔距离,将不需要的部分剔除掉。如下图3所示。

  3. 粘连区域窄的情况
    3.1. 单一粘连线的情况,以图1 为例。在Matlab里描绘其上、下轮廓如下图4,图5所示,上下相减得到整体的轮廓图如图6所示。
    在这里插入图片描述
    在这里插入图片描述
    算法从左到右遍历整体轮廓图,发现上升沿就做标记。在所有上升沿中按照如图7所示的条件取有效上升沿。根据所有有效上升沿切分整张图。效果如图8所示。
    在这里插入图片描述
    在这里插入图片描述
    3.2. 多条粘连线的情况,以图2为例。若仍然采用上下轮廓相减的方法,会出现如图9的情况。
    在这里插入图片描述
    整体轮廓图没有实效性,不能用之进行切分分析。因此考虑采用纵向像素点累积的方法,得到如图10的真实像素分布。
    在这里插入图片描述
    针对这个像素分布图做前面的切分处理,便可得到较准确的结果,如下图11所示
    在这里插入图片描述

  4. 粘连区域宽的情况
    以图3为例。沿用之前的方法得到上、下和整体轮廓图,如图12、13、14。问题在于相邻两个有效的上升之间的距离很远,导致切分时第一个字母后面带有很长的粘连线,如图15所示。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述因此考虑引入下降沿的方法来确定一个字符的边界。按照寻找有效上升沿的方法得到一系列有效下降沿(默认最左为一个上升沿,最右为一个下降沿)。从左至右遍历整张图片,切下所有相邻上升沿和下降沿之间的部分,算法如图16所示,作为最后结果,切分效果如图17所示。
    在这里插入图片描述在这里插入图片描述

  5. 综合
    由于我们在做切分工作时,并不能事先了解目标粘连属于上述哪一种类型,因此需要一个差别处理的工作使得算法具备普适性。针对单线粘连还是多线粘连的问题,统一的解决办法是将两种方法(轮廓法和像素累积法)得到的有效上升沿都列出来,并对它们一一进行评价。由于像素点累积的方法出现的上升沿较多,因此准确性较之轮廓线法更低,所以给像素累积法得到的上升沿赋较低的初始分。然后再对每一个上升沿做考量,如果它的周围出现了比它分数更高的上升沿,就把它舍去;如果没有,就把它令为一个切分点。针对粘连线长短不一的问题,解决的办法是如果检测到一个切分点之后的1.5*字符宽度内都没有新的有效上升沿出现,则直接在此切分点后一个字符宽度距离处取一切分点再继续检测,直到图片末尾。运用以上的办法,可以比较方便地将三种不同粘连情况综合处理。

  6. 需改进的部分
    6.1. 利用打分的机制对上升沿作评价的方法很科学,可以考虑引入一个更全面的打分机制,比如上升沿的深度、上升跨度等参数都可以作为打分指标列入,最后根据分数高低来确定具体的切分点位置。
    6.2. 文章只考虑了竖直向切分的情况,如果出现上下方向的粘连,应该寻找相应的解决办法。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值