具体实施方式
本发明实施例提供一种重叠文字的处理方法和装置,通过对所获取的版面上的文字块进行排序,再将重叠的文字块删除,仅保留重叠文字块中的一个,从而便于对重叠文字提取的文字进行辨识和阅读。
下面结合附图具体进行说明:
如图2所示,本发明实施例提供的重叠文字的处理方法,包括:
步骤S201、根据版面上的文字内容,获取集合S,集合S中包括版面上相应文字块的字符、字号、表征文字块输出顺序的序号以及文字块在版面中的坐标;
步骤S202、根据文字块的字符、字号、序号以及文字块在版面中的坐标,两两比较文字块的前后位置关系,将集合S中的文字块按照排版位置进行排序;
步骤S203、遍历排序后的集合S中的文字块,选出重叠的文字块,并仅保留互相重叠的文字块中的一个。
由于删除了重叠文字块,只保留了互相重叠的文字块中的一个。所以不会由于提取出多个相同的文字块而影响阅读和理解,从而便于对重叠文字提取的文字进行辨识和阅读。
在步骤S202中,根据文字块的字符、字号、序号以及文字块在版面中的坐标,两两比较文字块的先后位置关系,本发明实施例提供如下几种排序方式:
可以根据两个文字块的水平重叠程度和垂直重叠程度来选择根据左边界和右边界确定这两个文字块的顺序还是根据上边界和下边界确定这两个文字块的顺序。具体的,如图3所示,包括:
步骤S301、根据文字块的字体和坐标信息分别确定第一文字块和第二文字块的下边界、上边界、左边界和右边界;
步骤S302、比较第一文字块和第二文字块在水平方向的重叠程度和在垂直方向的重叠程度,当第一文字块和第二文字块在水平方向的重叠程度大于在垂直方向的重叠程度时,执行步骤S303,当第一文字块和第二文字块在水平方向的重叠程度小于在垂直方向的重叠程度时,执行步骤S304,当第一文字块和第二文字块在水平方向的重叠程度等于在垂直方向的重叠程度时,执行步骤S305;
步骤S303、确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;
步骤S304、确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后;
步骤S305、确定序号小的文字块在前,序号大的文字块在后。
在确定水平重叠程度和垂直重叠程度时,可以根据水平重叠度和垂直重叠度来确定,其中,水平重叠度为第一文字块和第二文字块的最小左边界与最大右边界之差与最大左边界与最小右边界之差的比例,垂直重叠度为第一文字块和第二文字块的最小下边界与最大上边界之差与最大下边界与最小上边界之差的比例。
为了进一步实现比较准确的排序,在进行排序时还可以引入水平重叠度和垂直重叠度的概念,并根据两个文字块水平重叠情况和垂直重叠情况来选择合适的排序方法进行排序,具体的,如图4所示,包括:
步骤S401、根据文字块的字体和坐标信息分别确定第一文字块和第二文字块的下边界、上边界、左边界和右边界;
步骤S402、确定第一文字块和第二文字块的水平重叠度和垂直重叠度,其中,水平重叠度为第一文字块和第二文字块的最小左边界与最大右边界之差与最大左边界与最小右边界之差的比例,垂直重叠度为第一文字块和第二文字块的最小下边界与最大上边界之差与最大下边界与最小上边界之差的比例;
步骤S403、判断第一文字块和第二文字块的水平重叠度是否小于预先设定的水平重叠阈值,如果是,则执行步骤S404,如果否,则执行步骤S405;
步骤S404、确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后;
步骤S405、判断第一文字块和第二文字块的垂直重叠度是否小于预先设定的垂直重叠阈值,如果是,则执行步骤S406,如果否,则执行步骤S407;
步骤S406、确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;
步骤S407、比较第一文字块和第二文字块的水平重叠度和垂直重叠度,当第一文字块和第二文字块的水平重叠度大于垂直重叠度时,执行步骤S408,当第一文字块和第二文字块的水平重叠度小于垂直重叠度时,执行步骤S409,当第一文字块和第二文字块的水平重叠度等于垂直重叠度时,执行步骤S410;
步骤S408、确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;
步骤S409、确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后;
步骤S410、确定序号小的文字块在前,序号大的文字块在后。
当水平重叠度和垂直重叠度都比较大时,也可以根据序号进行排序,从而获得较佳的排序结果,此时,如图5所示,根据文字块的字符、字号、序号以及文字块在版面中的坐标,两两比较文字块的先后位置关系,具体包括:
步骤S501、根据文字块的字体和坐标信息分别确定第一文字块和第二文字块的下边界、上边界、左边界和右边界;
步骤S502、确定所述第一文字块和所述第二文字块的水平重叠度和垂直重叠度,其中,水平重叠度为第一文字块和第二文字块的最小左边界与最大右边界之差与最大左边界与最小右边界之差的比例,垂直重叠度为第一文字块和第二文字块的最小下边界与最大上边界之差与最大下边界与最小上边界之差的比例;
步骤S503、判断第一文字块和第二文字块的水平重叠度是否小于预先设定的水平重叠阈值,如果是,则执行步骤S504,如果否,则执行步骤S505;
步骤S504、确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后;
步骤S505、判断第一文字块和第二文字块的垂直重叠度是否小于预先设定的垂直重叠阈值,如果是,则执行步骤S506,如果否,则执行步骤S507;
步骤S506、确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;
步骤S507、判断第一文字块和第二文字块的水平重叠度和垂直重叠度是否都大于预先设定的重叠值,如果是,则执行步骤S508,如果否,则执行步骤S509;
步骤S508、确定序号小的文字块在前,序号大的文字块在后;
步骤S509、比较第一文字块和第二文字块的水平重叠度和垂直重叠度,当第一文字块和第二文字块的水平重叠度大于垂直重叠度时,执行步骤S510,当第一文字块和第二文字块的水平重叠度小于垂直重叠度时,执行步骤S511,当第一文字块和第二文字块的水平重叠度等于垂直重叠度时,执行步骤S508;
步骤S510、确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;
步骤S511、确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后。
当然,本发明实施例并不限于上述三种排序的方式,本领域技术人员还可以在本发明实施例提供的排序方式的基础上进行改动和变形,从而实现对文字块的排序。
在上述三种排序方法中,所涉及到的水平重叠阈值、垂直重叠阈值和重叠值都可以由本领域技术人员根据实际情况进行确定,本发明实施例给出一组参考值,为:水平重叠阈值在第一文字块与第二文字块同行时,设定为-0.08,否则,设定为-0.05;垂直重叠阈值可直接设定为0,重叠值可以设定为0.5。此时,集合S中还包括相应文字块的水平基线,当第一文字块和第二文字块的水平基线之差小于或等于行间距时,确定第一文字块与第二文字块同行,当第一文字块的水平基线大于第二文字块的水平基线时,行间距为第一文字块的字号的0.95倍,否则行间距为第二文字块的字号的0.95倍。
上述参考值本领域技术人员可以根据实际情况进行调整,通常情况下,上述数值±0.2以内,都能够实现较好的排序效果。
在本发明实施例中,上边界、下边界、左边界和右边界都是指版面中各文字块在以排版顺序规定正方向的同一坐标系中,该文字块的上边界、下边界、左边界和右边界对应的坐标值。例如,如图9所示,惯常排版顺序为由左至右,由上至下,那么x轴正方向为右,y轴正方向为下,一个文字块的左边界为该文字块左侧线条对应的x值x1,右边界则为该文字块右侧线条对应的x值x2,同理一个文字块的上边界为该文字块上侧线条对应的y值y1,下边界则为该文字块下侧线条对应的y值y2。
在步骤S203中,遍历排序后的集合S中的文字块,选出重叠的文字块,并仅保留互相重叠的文字块中的一个,具体可以采用如下方式进行,如图6所示,包括:
步骤S601、在确定当前遍历文字块与下一遍历文字块同行,且确定当前遍历文字块与下一遍历文字块重叠时,将当前遍历文字块与下一遍历文字块从集合S移入重叠文字块集合D中,记录当前遍历文字块的位置为当前位置;
步骤S602、在确定后续遍历的文字块与重叠文字块集合D中的任一文字块重叠时,将后续遍历的文字块移入集合D;
步骤S603、遍历结束后,判断集合D是否为空,如果是,执行步骤S605,如果否,执行步骤S604;
步骤S604、取出集合D中任一文字块插入集合S中的当前位置,清空集合D,并执行步骤S601;
步骤S605、结束处理。
同样的,在需要确定当前遍历文字块和下一遍历文字块是否同行时,集合S中还包括相应文字块的水平基线,确定当前遍历文字块与下一遍历文字块同行,具体包括:
在当前遍历文字块和下一遍历文字块的水平基线之差小于或等于行间距时,确定当前遍历文字块和下一遍历文字块同行,其中,当前遍历文字块的水平基线大于下一遍历文字块的水平基线时,行间距为当前遍历文字块的字号的0.95倍,否则,行间距为下一遍历文字块的字号的0.95倍,其中,行间距的系数不仅限于0.95,也可以根据实际情况进行调整,例如,设定在0.7-1.0之间均可。
确定当前遍历文字块与下一遍历文字块重叠,具体包括:
在当前遍历文字块与下一遍历文字块的左边界之差的绝对值、右边界之差的绝对值、上边界之差的绝对值以及下边界之差的绝对值均小于预先设定的重叠文字块阈值时,确定当前遍历文字块与下一遍历文字块重叠。
在本发明实施例中,重叠文字块阈值可以由本领域技术人员根据经验设定,也可以参照如下规则设置:
在当前遍历文字块与下一遍历文字块同行,且当前遍历文字块和下一遍历文字块的最小右边界与最大左边界之差大于当前遍历文字块和下一遍历文字块的平均字号的0.64倍,小于当前遍历文字块和下一遍历文字块的平均字号的1.05倍,以及当前遍历文字块与下一遍历文字块的字符、字体、字号均相同时,确定重叠文字块阈值为0.2;否则,确定重叠文字块阈值为0.1。
确定当前遍历文字块与下一遍历文字块是否同行的方式可以采用与前述实施例中相同的方式,同时,在确定重叠文字块阈值时,具体实施时并不限于上述数值,在实际操作中,使用上述数值±0.2以内的数值,都能够实现较好的判断效果。
本发明实施例还相应提供一种重叠文字的处理装置,如图7所示,包括:
获取单元701,用于获取根据版面上的文字内容,获取集合S,集合S中包括版面上相应文字块的字符、字号、表征文字块输出顺序的序号以及文字块在版面中的坐标;
排序单元702,用于根据文字块的字符、字号、序号以及文字块在版面中的坐标,两两比较文字块的前后位置关系,将集合S中的文字块按照排版位置进行排序;
处理单元703,用于遍历排序后的集合S中的文字块,选出重叠的文字块,并仅保留互相重叠的文字块中的一个。
其中,根据所采用的排序方法,排序单元702具体用于:
根据文字块的字体和坐标信息分别确定第一文字块和第二文字块的下边界、上边界、左边界和右边界;
两两比较文字块的前后位置关系,当第一文字块和第二文字块在水平方向的重叠程度小于在垂直方向的重叠程度时,则确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后;当第一文字块和第二文字块在水平方向的重叠程度大于在垂直方向的重叠程度时,则确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;当第一文字块和第二文字块在水平方向的重叠程度等于在垂直方向的重叠程度时,则确定序号小的文字块在前,序号大的文字块在后;
将集合S中的文字块按照排版位置进行排序。
或者,排序单元702具体用于:
根据文字块的字体和坐标信息分别确定第一文字块和第二文字块的下边界、上边界、左边界和右边界;
两两比较文字块的前后位置关系,当第一文字块和第二文字块的水平重叠度小于预先设定的水平重叠阈值时,则确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后,其中,水平重叠度为第一文字块和第二文字块的最小左边界与最大右边界之差与最大左边界与最小右边界之差的比例;当第一文字块和第二文字块的垂直重叠度小于预先设定的垂直重叠阈值时,则确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后,其中,垂直重叠度为第一文字块和第二文字块的最小下边界与最大上边界之差与最大下边界与最小上边界之差的比例;当第一文字块和第二文字块的水平重叠度大于或等于预先设定的水平重叠阈值,且第一文字块和第二文字块的垂直重叠度大于或等于预先设定的垂直重叠阈值时,则:当第一文字块和第二文字块的水平重叠度小于垂直重叠度时,确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后;当第一文字块和第二文字块的水平重叠度大于垂直重叠度时,则确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;
当第一文字块和第二文字块的水平重叠度等于垂直重叠度时,则确定序号小的文字块在前,序号大的文字块在后;
将集合S中的文字块按照排版位置进行排序。
或者,排序单元702具体用于:
根据文字块的字体和坐标信息分别确定第一文字块和第二文字块的下边界、上边界、左边界和右边界;
两两比较文字块的前后位置关系,当第一文字块和第二文字块的水平重叠度小于预先设定的水平重叠阈值时,则确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后,其中,水平重叠度为第一文字块和第二文字块的最小左边界与最大右边界之差与最大左边界与最小右边界之差的比例;当第一文字块和第二文字块的垂直重叠度小于预先设定的垂直重叠阈值时,则确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后,其中,垂直重叠度为第一文字块和第二文字块的最小下边界与最大上边界之差与最大下边界与最小上边界之差的比例;当第一文字块和第二文字块的水平重叠度大于或等于预先设定的水平重叠阈值,且第一文字块和第二文字块的垂直重叠度大于或等于预先设定的垂直重叠阈值时,则:当第一文字块和第二文字块的水平重叠度和垂直重叠度都大于预先设定的重叠值时,确定序号小的文字块在前,序号大的文字块在后;否则:当第一文字块和第二文字块的水平重叠度小于垂直重叠度时,确定上边界和下边界之和小的文字块在前,上边界和下边界之和大的文字块在后;当第一文字块和第二文字块的水平重叠度大于垂直重叠度时,则确定左边界和右边界之和小的文字块在前,左边界和右边界之和大的文字块在后;当第一文字块和第二文字块的水平重叠度等于垂直重叠度时,则确定序号小的文字块在前,序号大的文字块在后;
将集合S中的文字块按照排版位置进行排序。
处理单元703具体用于:
在确定当前遍历文字块与下一遍历文字块同行,且确定当前遍历文字块与下一遍历文字块是重叠文字块时,将当前遍历文字块与下一遍历文字块从集合S移入重叠文字块集合D中,记录当前遍历文字块的位置为当前位置;并
在确定后续遍历的文字块与重叠文字块集合D中的任一文字块重叠时,将后续遍历的文字块移入集合D;
遍历结束后,在集合D不为空时,取出集合D中任一文字块插入集合S中的当前位置,清空集合D;
重新进行遍历直至遍历结束后集合D为空集合。
本发明实施例提供一种重叠文字的处理方法和装置,通过对所获取的版面上的文字块进行排序,再将重叠的文字块删除,仅保留重叠文字块中的一个,从而便于对重叠文字提取的文字进行辨识和阅读,如图8所示,处理完毕后的文字内容为:天气Weather,便于辨识和阅读。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。