文本图像处理方法和装置与流程

文档序号:12819349阅读:234来源:国知局
文本图像处理方法和装置与流程

本发明涉及字符识别技术领域,特别涉及一种文本图像处理方法和装置。



背景技术:

文本图像处理中,字符分割在字符识别领域有着极其重要的作用,其主要是在获取到图像文字区域的基础上对字符所在位置进行字符的切分。

现有的字符分割包括投影分割法、聚类法和模板匹配法。其中,投影分割法将是利用对图像预处理后的二值化图像,通过投影来确定出字符所在区域;聚类法所使用的是字符的连通区域,在通过整体页面的字符分布特性对连通区域的字符块进行合并;而模板匹配法则主要是应用于固定字体或者的字符,因此未得到广泛使用。

现有的字符分割方法可以在一定程度上分割出字符,但是在现实的应用中往往受到限制,一方面的,投影分割法在字符本身有倾斜的情况下会出现多个字符被分割到一块问题,而模板匹配则使用性更低,因为是在特定的文字场合方能够使用。

另一方面的,对于利用连通区域来实现字符分割的聚类法而言,如若获取到的字符中有笔画断裂或者粘连时将无法完成字符的分割。

因此,现有的字符分割存在诸多问题,特别是在现实的应用上限制,通用性和准确性不高。



技术实现要素:

基于此,有必要提供一种文本图像处理方法,所述方法能够提高字符分割的通用性和准确性。

另外,还有必要提供一种文本图像处理装置,所述装置能够提高字符分割的通用性和准确性。

一种文本图像处理方法,所述方法包括如下步骤:

预处理文本图像得到二值化图像和所述二值化图像包含的多个连通域;

通过凸包算法得到所述多个连通域分别对应的凸包以及外接于所述凸包的字符区域;

对得到的所述字符区域进行水平方向的字符切分得到所述二值化图像中分布的多个字符块;

根据二值化图像中字符块高度进行字符块的合并处理,得到所述文本图像包含的字块。

一种文本图像处理装置,所述装置包括:

预处理模块,用于预处理文本图像得到二值化图像和所述二值化图像包含的多个连通域;

凸包获取模块,用于通过凸包算法得到所述多个连通域分别对应的凸包以及外接于所述凸包的字符区域;

切分模块,用于对得到的字符区域进行水平方向的字符切分得到所述二值化图像中分布的多个字符块;

合并处理模块,用于根据二值化图像中字符块高度进行字符块的合并处理,得到所述文本图像包含的字块。

由上述技术方案可知,文本图像处理中首先进行预处理得到二值化图像和二值化图像中包含的多个连通域,通过凸包算法得到多个连通域分别对应的凸包以及外接于凸包的字符区域,在此字符区域中进行水平方向的字符切分得到二值化图像中分布的多个字符块,根据字符块高度进行字符块的合并处理得到文本图像所包含的字块,此文本图像处理中进行了水平方向上的字符切分以及根据字符块高度所完成的合并,在将一些粘连的字符拆分开来的 基础上又避免了字符行中具有上下结构的字符被分割,进而提高了字符分割的准确性,另外,由于此处理过程中并不存在任何限制,均是基于文本中的水平分布和自身的高度来实现的,因此也提高了字符分割的通用性。

附图说明

图1是本发明实施例提供的一种电子设备的结构示意图;

图2是一个实施例中文本图像处理方法的流程图;

图3是图2中对得到的字符区域进行水平方向的字符切分得到二值化图像中分布的多个字符块的方法流程图;

图4是图3中字符区域中在垂直方向上定位字符的连接部分的方法流程图;

图5是一个实施例中两个字符形成的字符区域示意图;

图6是图5中连接部分的示意图;

图7是图5切分得到的字符块示意图;

图8是图2中根据二值化图像中字符块高度进行字符块的合并处理,得到文本图像包含的字块的方法流程图;

图9是一个实施例中文本图像处理装置的结构示意图;

图10是图9中切分模块的结构示意图;

图11是图10中连接定位单元的结构示意图;

图12是图9中合并处理单元的结构示意图。

具体实施方式

体现本发明特征与优点的典型实施方式将在以下的说明中详细叙述。应理解的是本发明能够在不同的实施方式上具有各种的变化,其皆不脱离本发明的范围,且其中的说明及图示在本质上是当作说明之用,而非用以限制本发明。

如前所述,各种文本识别应用所采用的文本图像处理方法中,字符分割的实现通常只在特定的场景下具备准确性,而其它场景下的字符分割准确性较低,进而影响了文本识别应用中内容识别的准确性。

因此,为确信通用性和准确性,特提出了一种文本图像处理方法。该方法由计算机程序实现,与之相对应的,所构建的文本图像处理方法由计算机程序实现,与之相对应的,所构建的文本图像处理装置则被存储于具备运算能力的电子设备中,以在该电子设备中运行,进而实现文本图像中字符的分割。

图1示出了本发明实施例提供的一种电子设备的结构。该电子设备100只是一个适用本发明的示例,而不能认为是提供了对本发明的使用范围的任何限制。该电子设备100也不能解释为需要依赖于或具有图示的示例性的电子设备100中的一个或者多个部件的组合。

如图1所示,电子设备100包括处理器110、存储器120和系统总线130。包括存储器120和处理器110在内的各种组件将连接到系统总线130上。处理器110是一个用于通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器120是一个用于临时或永久性存储计算机程序或数据的物理设备。

其中,存储器120中存储了程序指令和若干个文本图像;处理器110将执行存储器120中的程序指令,以对文本图像进行处理。

电子设备100还包括各种输入接口170、输入装置140,以实现各种操作的输入。其中,该输入装置140可以是触摸屏幕、按键、键盘和鼠标等至少一种。

电子设备100还包括存储设备180,存储设备180可以从多种计算机可读存储介质中选择,计算机可读存储介质是指可以进行访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质,包括但不限于闪速存储器(微型sd卡)、cd-rom、数字通用光盘(dvd)或其它光盘、磁带盒、磁带存储或其它存储设备、或者可用于存储所需信息并可访问的任何其它介质。

如上面所详细描述的,适用本发明的电子设备100将执行文本图像处理的各种操作,即通过处理器110运行存储器120中的程序指令的形式执行该指定操作,以实现电子设备100中多个条目之间内容显示的切换。

此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明,因此,实现本发明并不限于任何特定硬件电路、软件以及两者的组合。

在一个实施例中,具体的,该文本图像处理方法如图2所示,包括:

步骤210,预处理文本图像得到二值化图像和二值化图像包含的多个连通域。

文本图像是任意包含了文本内容的图像,其包括了组成文本的字符、字符行间和字符间的空白和标点符号等。对文本图像进行预处理以得到最能够体现图像信息的二值化图像以及二值化图像中包含的多个连通域。

其中,此预处理过程包括:首先对文本图像进行平滑滤波后检测边缘得到文本图像中的边缘,并在此基础上利用形态学得到字符的分布区域,从而得到字符的连通域。

也就是说,二值化图像中包含的多个连通域中,每一连通域中存在着一个或者多个字符。

步骤230,通过凸包算法得到多个连通域分别对应的凸包以及外接于凸包的字符区域。

通过凸包算法将在每一连通域中得到此连通域所对应的凸包,并依据凸包进行框选,以得到外接于凸包的字符区域。在优选的实施例中,连通区域所对应的凸包将通过凸包算法得到的最大凸包,以避免与字符相关的信息被去除,保证了字符相关的信息的完整性。

另外,在优选的实施例中,外接于凸包的字符区域为矩形区域,即凸包所对应的最小矩形框选得到的,以与字符的外形相适应,进一步保证文本图像处理的准确性。

对应于连通域的多个凸包中,每一凸包均有对应的字符区域,由此将得到二值化图像中的多个字符区域。

步骤250,对得到的字符区域进行水平方向的字符切分得到二值化图像中分布的多个字符块。

二值化图像中的多个字符区域将基于文本中字符的分布特性进行水平方向的字符切分,以将字符区域中连接在一起的字符切分开来,例如,对于相互之间在某笔画上相连的字符,将通过水平方向的字符切分来进行分离,以得到相应的字符块。

在完成二值化图像中多个字符区域的水平方向的字符切分之后,将得到二值化图像中分布的多个字符块。通过字符区域中水平方向的字符切分,以 尽可能得到单个字符所对应的字符块。

步骤270,根据二值化图像中字符块高度进行字符块的合并处理,得到文本图像包含的字块。

在得到二值化图像中的字符块之后,将根据二值化图像中所有字符块对应的字符块高度进行字符块的合并处理,由此将使得字符行中相互之间形成上下结构的字符块将被合并。

通过字符块的合并处理,在通过水平方向的切分最大程度地使得字符区域被切分得足够细的基础上,通过根据字符块高度实现的合并处理来使得被切分为两部分的字符得以合并在一起,进而同样也提高了后续的识别率。

通过如上所述的过程,将在水平方向的字符切分和字符块的合并处理的配合下,文本图像中字符行得到足够细的切分,以尽可能得到切分出单个字符,在此基础上所进行的合并,将使得此字符行中在上下结构上构成一个整体的字符块被合并在一起,进而有利于后续的字符识别。

通过如上所述的过程,所利用的是字符本身的特性,而不依赖于其它的一些因素,因此,将极大地提高了此字符分割过程的通用性,由此,也将极大地提高了执行上述文本图像处理方法的文字识别应用的通用性和准确性。

在一个实施例中,该步骤250如图3所示,包括:

步骤251,字符区域中在垂直方向上定位字符的连接部分。

由连通域中的凸包所得到的字符区域实质为字符的初步框选,字符区域中往往存在着相互连接的字符,为将字符区域中的字符拆分,将需要定位字符之间的连接部分。

如若在字符区域中字符定位得到连接部分,则说明字符区域中存在相互连接的字符,需要以连接部分为依据完成字符区域中水平方向的切分。

步骤253,按照连接部分切分字符区域得到二值化图像中分布的多个字符块。

具体的,将此连接部分所对应的像素值置为0即可完成字符区域按照连接部分所进行的切分。

字符块是字符区域经过水平切分所输出,并且是尽可能细分的字符所对应的,一方面的,字符区域中在水平方向根据连接部分进行切分,以得到此字符连接区域拆分出的至少两个字符块;另一方面的,对于并未存在连接部 分的字符区域,此字符区域即为字符块。

因此,通过上述过程完成字符行中的切分,得到二值化图像中分布的多个字符块,进而使得字符的切分足够精细,由此保证了每一字符行中各字符块都是一个单独的字符,极大地提高了字符分割的精准性。

进一步的,在本实施例中,如图4所示,该步骤251包括:

步骤2511,字符区域的整列像素中按照预设方向对相邻像素进行像素值比对,得到整列像素中属性前景部分且连续的像素。

二值化图像中的多个字符区域中,每一字符区域都是由多个像素所组成的。因此,二值化图像的多个字符区域中均以列为单位进行字符中连接部分的定位。

在此定位中,对于字符区域的每一列像素,通过相邻像素之间的两两比对来得到此列像素中属于前景部分且连续的像素。其中,前景部分是像素中像素值为1的部分,在每一列像素中属于前景部分且连续的像素指的是此列像素中像素值为1且连续的像素。

步骤2513,判断属于前景部分且连续的像素所对应的数量是否小于预设数量,若为是,则进入步骤2515,若为否,则结束。

在以列为单位所进行的连接部分定位中,预设数量用以进行连接部分的识别,即高度方向上小于此预设数量所对应数值的连接部分将为字符之间相互连接的部分。

如果一列像素中属于前景部分且连续的像素所对应的数量小于或者等于预设数量,例如,该预设数量可为3,则说明这一属于前景部分且连续的像素则必为字符相互之间的连接部分。

步骤2515,定位连续的像素为字符的连接部分。

在上述定位连接部分的具体实现中,对于二值化图像中的多个字符区域,将首先统计字符区域中的高度和宽度,在优选的实施例中,所统计的将是矩形区域的高度和宽度。其中,以下将以rect_width为宽度,rect_hight为高度进行说明,并定义1≤i≤rect_width,1≤j≤rect_hight。

任意字符区域中,初始化j=1,取出第i列像素,以得到第i列像素中的像素值image(i,1≤j≤rect_hight)。

在第i列像素中比较像素image(i,j)和像素image(i,j+1)中的值, 如若其像素是由0跳变到1或者从1到1,则对记录列像素中1的个数的line_num_1所对应的数值进行自增运算,即line_num_1=line_num_1+1;

由此将得到第i列像素中的line_num_1所对应的数值,此数值即为第i列像素中属于前景部分且连续的像素。

若此line_num_1所对应的数值小于或者等于预设数量m,则此连续的像素将为字符之间的连接部分,其中,预设数量m为所设定垂直方向上连续像素为1的个数。此时,把当前列像素置为0,即可实现切分。

在完成第i列像素中的定位之后将在第i列像素中进行定位,以此类推,直至i=rect_width时完成整个字符区域中水平方向上连接部分的定位。

例如,如图5所示,对于sa两个字符所形成的一字符区域310而言,其通过上述所进行的连接部分的定位,将得到图6所示的字符区域310中连接部分330,即垂直方向上的三个连续的像素,该像素所对应的像素值也均为1。

在此定位得到的连接部分的作用下,将切分得到如图7所示的两个字符块,即字符s所在的字符块410和字符a所在的字符块430。

在一个实施例中,如图8所示,该步骤270包括:

步骤271,统计二值化图像中字符块的高度以得到二值化图像中字符块的高度分布。

如前所述的,二值化图像中包含了多个字符块,对于任意字符块,都将统计其高度,以得到二值化图像中每一字符块所对应的高度。二值化图像中字符块的高度分布的统计为统计二值化图像中具备的各种不同数值的字符块的高度和相同数值的字符块的高度所对应的字符块数量。

具体的,分别统计二值化图像中所有字符块的高度,把具有相同高度的字符块归为一类,并统计每一类高度下所对应的字符块数量。

例如,二值化图像中各字符块的高度用数组static_height[n]表示,而每一高度所对应的字符块数量则对应存储于数组num_rect[n]中,其中,1≤n。

步骤273,根据统计的二值化图像中字符块的高度分布寻找字符块高度和相对二值化图像中字符块的总体高度超出预设值的字符块,字符块高度和是寻找得到的字符块的高度之和。

也就是说,将根据将寻找若干个类别的字符块,这些字符块所对应的字符块高度和占据了二值化图像中所有字符块的总体高度的绝大部分,即该预 设值所对应的数值是超出50%的数值,例如,80%。

具体实现中,可首先对数组static_height[n]按照数组num_rect[n]进行从大到小或者从小到大的排序,以得到按照num_rect[n]降序排序或者升序排序的static_height[n]。

通过对二值化图像中字符块的高度和字符块数量进行运算得到高度的总合sum_height;

按照大小顺序,取出前k个字符块数量,例如,此时所取出的字符块的高度分别为static_height[1],……,static_height[k],使得下式第一次成立,即:

(num_rect_h[1]*static_height[1]+num_rect_h[2]*static_height[2]+......+num_rect_h[k]*static_height[k])/sum_height≥0.8;

步骤275,根据寻找得到的字符块以及字符块高度和进行高度平均值的运算。

对此寻找得到的static_height[1],……,static_height[k]进行高度平均值的运算,以得到高度平均值height_avg,即:

(num_rect_h[1]*static_height[1]+num_rect_h[2]*static_height[2]+......+num_rect_h[k]*static_height[k])/k=height_avg。

步骤277,根据高度平均值在二值化图像中合并处于同字符行且在水平方向上有交叠的字符块,得到文本图像包含的字块。

在运算得到高度平均值之后,二值化图像中,任意字符行都将对水平方向上有交叠的字符块进行合并。

也就是说,二值化图像中字符块的合并将满足如下两条件,即:

条件1:|middle_rect_x(i)-middle_rect_x(k)|-(middle_rect_width(i)+middle_rect_width(k))/2<0;

条件2:rect_height(i)+rect_height(k)<=height_avg。

其中,1<=i<=m,m为字符块的个数,middle_rect_x(i)为第i个字符块中心的x轴坐标值,middle_rect_width(i)为第i个字符块的宽度值,rect_height(i)为第i个字符块的高度。

第i个字符块将与其余的字符块进行对比,若某个字符块k与当前第i个字符块在水平方向上有交叠,则满足上述两个条件。

在此基础上,将认为当前的两个字符块应当合并。

通过上述所述的过程,能够很好地把具有上下结构的且符合字符平均高度的字符块合并,保证了水平方向上字符块的分布,使得后续识别的过程中能够很好对水平方向的字符块进行组合和识别。

在一个实施例中,如上所述的方法还包括:

识别包含字块的文本图像,并在文本图像的识别中根据字块的顺序进行字块的组合,以得到文本图像中的文本内容。

在此过程中,将根据需要设定策略对字块在识别算法中进行处理,例如,对字块进行选择性的合并,这里所说的选择性的合并指的是根据字符行中平均字块的宽度和高度对某些过窄的相邻字符进行合并,或者某些过宽的字符进行更细的切分。

需要说明的是,所采用的识别算法可以是基于字符特征提取所对应的识别算法,例如,灰度图像梯度特征和字符的hog特征等。

在一个实施例中,还相应地提供了一种文本图像处理装置。如图9所示,该装置包括预处理模块510、凸包获取模块530、切分模块550和合并处理模块570,其中:

预处理模块510,用于预处理文本图像得到二值化图像和二值化图像包含的多个连通域;

凸包获取模块530,用于通过凸包算法得到所述多个连通坩埚一分别对应的凸包以及外接于凸包的字符区域;

切分模块550,用于对得到的字符区域进行水平方向的字符切分得到二值化图像中分布的多个字符块;

合并处理模块570,用于根据二值化图像中字符块高度进行字符块的合并处理,得到文本图像包含的字块。

在一个实施例中,如图10所示,该切分模块550包括连接定位单元551和切分执行单元553,其中:

连接定位单元551,用于字符区域中在垂直方向上定位字符的连接部分。

切分执行单元553,用于按照连接部分切分字符区域得到二值化图像分布的多个字符块。

在一个实施例中,如图11所示,该连接定位单元551包括像素比对子单元5511和判断子单元5513,其中:

像素比对子单元5511,用于字符区域的整列像素中按照预设方向对相邻像素进行像素值比对,得到整列像素中属于前景部分且连续的像素。

判断子单元5513,用于判断属于前景部分且连续的像素所对应的数量是否小于预设数量,若为是,则定位连续的像素为字符的连接部分。

在一个实施例中,如图12所示,该合并处理单元570包括分布统计单元571、像素寻找单元573、平均运算单元575和合并执行单元577,其中:

分布统计单元571,用于统计二值化图像中字符块的高度以得到二值化图像中字符块高度的分布。

像素寻找单元573,用于根据统计的二值化图像中字符块的高度分布寻找字符块高度和相对二值化图像中字符块的总体高度超出预设值的字符块,字符块高度和是寻找得到的字符块的高度之和。

平均运算单元575,用于根据寻找得到的字符块以及字符块高度和进行高度平均值的运算。

合并执行单元577,用于根据高度平均值在二值化图像中合并处于同字符行且水平方向上有交叠的字符块,得到文本图像包含的字块。

在一个实施例中,如上所述的装置还包括识别模块,该识别模块用于识别包含字块的文本图像,并在该文本图像的识别中根据字块的顺序进行字块的组合,以得到文本图像中的文本内容。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

虽然已参照几个典型实施方式描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施方式不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1