CN110321887A - 文档图像处理方法、文档图像处理装置及存储介质 - Google Patents
文档图像处理方法、文档图像处理装置及存储介质 Download PDFInfo
- Publication number
- CN110321887A CN110321887A CN201810294456.1A CN201810294456A CN110321887A CN 110321887 A CN110321887 A CN 110321887A CN 201810294456 A CN201810294456 A CN 201810294456A CN 110321887 A CN110321887 A CN 110321887A
- Authority
- CN
- China
- Prior art keywords
- line
- text
- subregion
- pixel
- character
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/242—Aligning, centring, orientation detection or correction of the image by image rotation, e.g. by 90 degrees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/273—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion removing elements interfering with the pattern to be recognised
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Character Input (AREA)
Abstract
本发明提供一种文档图像处理方法、文档图像处理装置及存储介质。所述文档图像中包括与线接触的文本行,所述文档图像处理方法包括:将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与字符接触的线;根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
Description
技术领域
本发明涉及一种文档图像处理技术,尤其涉及一种将文档图像中的文本行和与之相接触的线分离的技术。
背景技术
针对电子文档的处理获得了日益广泛的关注并在多个领域广泛应用,在电子文档处理技术中,诸如OCR(光学字符识别)等的文档图像识别技术在不同类型的设备中得到了大量的应用。例如,在包括扫描仪的MFP(多功能外围设备)中应用文档图像识别技术,或是在照相机、智能手机等设备中应用文档图像识别技术。
通常,将印刷有文字的书本、纸张等通过扫描仪的扫描或照相机的拍摄后生成的电子文档称为文档图像(Document Image),在文档图像中,可能存在文本行与线相接触(像素点的重叠、叠加)的情况。图1(a)示出了文档图像中的文本行和下划线相接触的示意图。除了图1(a)所示的下划线以外,还可能存在文本行与表格线、删除线等其他线相接触的情况。
为了将文档图像中的文本行和与之相接触的线分离开,提出了一种从文档图像中去除与文本行相接触的线的技术。首先,对图1(a)所示的文档图像进行诸如倾斜校正、去噪等预处理,得到图1(b)所示的预处理后的文档图像。接着,利用霍夫变换等方式检测出图1(b)中的水平线,即要被去除的下划线。最后,基于检测出的水平线的宽度(图1(b)中所示的水平线在Y轴方向上的像素点的数量),去除检测出的水平线,同时利用形态学的闭合操作,将去除水平线时可能断开的文本行中的各字符的笔画连接起来,得到图1(c)中所示的去除了下划线但保持了字符笔画的结果。
图1(a)所示的文档图像中的内容虽然存在诸如倾斜等线性变形,但通过倾斜校正等预处理手段可对线性变形进行校正,使得校正后的字符和线都处于水平或垂直方向,因而可通过去除直线状态的下划线来达到去除线的目的。但是,在利用扫描仪或照相机获得文档图像时,被扫描或被拍摄的书本/纸张可能是有一定厚度且不平的,因此,得到的文档图像中的内容可能存在图2所示的非线性变形。在此情况下,如果仍使用上述针对线性变形的线去除方式来去除非线性变形的线的话,是无法得到较好的线去除结果的。
发明内容
本发明旨在提供一种能够针对非线性变形的文档图像,去除其中与文本行相接触的线的方案,以实现在非线性状态下去除与文本行接触的线的目的。
根据本发明的一个方面,提供了一种文档图像处理方法,所述文档图像中包括与线接触的文本行,所述文档图像处理方法包括:将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与字符接触的线;根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
根据本发明的另一个方面,提供了一种文档图像处理装置,该装置所处理的文档图像中包括与线接触的文本行,所述文档图像处理装置包括:子区域划分单元,其被构造为:将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与字符接触的线;文本方向确定单元,其被构造为:根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;线确定单元,其被构造为:利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
根据本发明的另一个方面,提供了一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行文档图像处理方法,所述文档图像中包括与线接触的文本行,所述方法包括:将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与字符接触的线;根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
从以下参照附图对示例性实施例的描述,本发明的其它特征将变得清楚。
附图说明
并入说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与实施例的描述一起用于解释本发明的原理。
图1(a)例示了文档图像中的文本行和下划线相接触的示意图。
图1(b)例示了预处理后的文档图像的示意图。
图1(c)例示了去除下划线后的文档图像的示意图。
图2例示了非线性变形的文档图像的示意图。
图3例示了包括多个文本行的文档图像的示意图。
图4例示了本发明第一实施例的文档图像处理方法步骤流程图。
图5例示了待处理文本行的示意图。
图6(a)例示了基于顶/底轮廓的子区域划分方法的步骤流程图。
图6(b)例示了在基于顶/底轮廓的子区域划分处理中的、X-Y坐标轴中的待处理文本行的示意图。
图6(c)例示了在基于顶/底轮廓的子区域划分处理中的划分出子区域的待处理文本行的示意图。
图7(a)例示了基于垂直投影的子区域划分方法的步骤流程图。
图7(b)例示了基于垂直投影的子区域划分处理中的、X-Y坐标轴中的待处理文本行的示意图。
图7(c)例示了在基于垂直投影的子区域划分处理中的划分出子区域的待处理文本行的示意图。
图8例示了在基于垂直投影的子区域划分处理中的每一列前景像素的数量分布直方图。
图9(a)例示了基于线段的主方向来确定子区域的文本方向的方法步骤流程图。
图9(b)例示了一个子区域的示意图。
图9(c)例示了提取出图9(b)所示的子区域中的全部线段后的示意图。
图10(a)例示了基于长线检测来确定子区域的文本方向的方法步骤流程图。
图10(b)例示了两个相邻子区域中线段的位置关系。
图11(a)例示了确定待处理文本行中与文本行接触的线的方法步骤流程图。
图11(b)例示了子区域中的像素列沿着子区域的文本方向进行投影的示意图。
图11(c)例示了位于相邻两个字符间隔的线。
图12例示了前景像素数量分布的波形图。
图13例示了符间线的示意图。
图14(a)例示了下划线去除前字符与其连接的线的示意图。
图14(b)例示了字符与线接触的结点的示意图。
图14(c)例示了去除线且保留字符笔划的示意图。
图15例示了执行本发明第一实施例后去除了线的文本行的示意图。
图16例示了本发明第二实施例中的文档图像处理装置的硬件结构示意图。
图17例示了本发明第二实施例中的文档图像处理装置的软件结构示意图。
具体实施方式
以下将结合附图来详细描述本发明的各种示例性实施方式。应当理解,本发明并不局限于下文所述的各种示例性实施方式。另外,作为解决本发明的问题的方案,并不需要包括所有的示例性实施方式中描述的特征的组合。
在现有技术中,线性变形的文本行经过预处理后可成为水平或垂直的文本行,此时,通过将文本行中的前景像素(或背景像素)相对于X轴或Y轴进行投影,可识别出与文本行接触的线(如下划线),进而可以执行去除与文本行接触的线的处理。但是,对于非线性变形的文本行而言,由于文本行的方向是非线性变化的(没有规律的),因此,如果针对非线性变形后的文本行中的前景像素(或背景像素)仍相对于某一直线(如X轴、Y轴)进行投影的话,则很难准确地确定出与文本行接触的线。
有鉴于此,本发明实施例不像传统技术那样以X轴或Y轴为基准对文本行中的前景像素进行投影来检测出要去除的线,而是先将文本行划分为多个子区域,确定出子区域中文本的方向,对子区域中的前景像素以该子区域的文本方向为基准进行投影,进而确定出子区域中位于相邻字符空白间隔处的线,最终利用这些字符间隔处的线,构造出与文本行接触的完整的线并去除。
本发明各实施例中的文本图像可以是从扫描仪或照相机输出的图像,文本图像可以是纯文字的图像,也可以是包含文字和图画等的图像。文本图像可以是单色图像,也可以是彩色图像。文本图像可以是包括较多像素点的高分辨率图像,也可以是包括较少像素点的低分辨率图像。本发明实施例并不对文本图像本身的特性做限定,目前业界常用的文本图像都可应用在本发明实施例的方案中。
本发明各实施例中的文本图像可以是线性变形和/或非线性变形的文本图像,并且,文本图像中存在文本行和线(下划线、表格线、删除线等)相接触的情况。可能存在文本图像中的所有文本行都与线相接触的情况,也可能存在部分文本行与线相接触的情况。
以图3所示的文本图像为例,文本图像中可以包括多个大致横向的文本行和多个大致纵向的文本行。为了方便描述,在本发明实施例中,将这样的文本行作为要采用本发明实施例的方案执行线去除处理的待处理文本行:待处理文本行中包括一行或一列文本行、文本行中存在与线接触的字符并且文本行以及线受到非线性变形。如果文本图像中有满足上述要求的多个待处理文本行,则可根据处理器的处理能力,采用串行或并行的方式分别对各个待处理文本行执行本发明实施例的线去除处理。另外,本发明实施例并不对待处理文本行中的字符形式作限定,中文字符、日文字符、英文字符、拉丁字符、标点符号字符等都可应用在本发明实施例的方案中。
需要说明的是,本发明实施例的方案虽然是针对非线性变形的文本图像提出的,但本发明实施例的方案也可以去除线性变形的文本图像或没有变形的文本图像中的与文本行接触的线。
<第一实施例>
下面结合说明书附图来描述本发明第一实施例的步骤。以图2所示的非线性变形的文本图像中的、与下划线接触的文本行为例,参照图4所示的流程图,对本发明第一实施例的处理描述如下。
步骤S100,对文本图像执行预处理,并从中确定出待处理文本行。
本步骤S100是实现本实施例的可选步骤而非必要步骤。对于从扫描仪或照相机输入的文本图像,可首先将接收到的文本图像进行二值化处理,然后执行诸如倾斜校正、去噪等的预处理。针对预处理后的文本图像,利用连通体分析(CCA,Connected ComponentAnalysi)等方式从二值化文本图像中确定出待处理文本行。如图5所示,为本实施例中的待处理文本行的示例。如果在本步骤S100中输入的是如图2所示的包括不与线接触的连接号“-”的文本行,则通过对图2所示的文本行执行连通体分析的处理,也可得到图5所示的待处理文本行。
步骤S200,将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与该部分字符接触的线。
本步骤S200的目的是将待处理文本行划分为多个尺寸较小的子区域,以便于针对每个尺寸较小的子区域来识别子区域的文本方向而不必直接确定出整个文本行的文本方向。本步骤S200的子区域划分方式可以有多种,后续将对其进行详细描述。
步骤S300,根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向。
仍以图2所示的待处理文本行为例,由于存在非线性变形,因此待处理文本行的方向走向是变化的(或没有规律的)。在经过步骤S200的子区域划分处理后,在本步骤S300中估计各个子区域的文本方向,以便于后续的步骤可根据各个子区域的文本方向来确定子区域中与文本行接触的线。这里的文本方向是指子区域中的字符的方向。本步骤S300的确定子区域的文本方向的方式将在后续进行详细描述。
步骤S400,利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
一般情况下,待处理文本行中包括多个字符,相邻两个字符之间存在间隔,因此,针对每个子区域,以该子区域的文本方向为参照线,将子区域中的字符进行投影可识别出子区域中包括的、在两个相邻字符之间的线,,并基于该线确定待处理文本行中的与文本接触的线。本步骤S400的基于子区域的文本方向来确定待处理文本行中的与文本行接触的线的方式可以有多种,后续将对其进行详细描述。
步骤S500,去除步骤S400中确定的线。
本步骤S500的线去除处理将会在后续进行详细描述。
利用本发明第一实施例的方法,可较好地去除非线性变形后的文本图像中的、与文本行接触的线。下面以具体的示例对上述步骤S100至步骤S500的具体实现方式进行详细描述。需要说明的是,以下的详细描述的示例是实现第一实施例中步骤S100至步骤S500的可选示例,而不是必要示例,并且并不需要以下示例的全部组合来实现步骤S100至步骤S500的方案。
步骤S100
在执行步骤S100的预处理操作之前,可预先接收由扫描仪扫描并输入的文本图像、由照相机拍摄并输入的文本图像、用户手动输入的文本图像或通过其他方式输入的文本图像,并对接收到的文本图像执行本发明第一实施例的线去除处理。当然,接收到的文本图像也可以不立即进行处理,而是存储在本地存储器中,或存储在独立的外部存储器中,在接收到对文本图像执行线去除处理的指示(如用户输入的指示)时,从存储器中读出存储的文本图像后,执行本发明第一实施例的线去除处理。确定要进行线去除处理的文本图像后,首先对其进行二值化处理,得到二值化的文本图像。本实施例不对二值化处理所采用的算法进行限定,目前业界的任意二值化处理的算法都可应用在步骤S100中,如最大类间方差法(Otsu)或诸如Niblack等的局部阈值算法。针对二值化的文本图像,可执行诸如倾斜校正、去噪等的预处理,从而使得后续的图像处理效果更好。
针对预处理后的文本图像,可通过执行CC提取处理,提取出图像中的所有组件(包括字符组件,图像组件,字符与线粘连的组件,噪声组件等),进而再通过执行连通体分析(CCA)等处理,从已提取出的组件中确定出与线接触的单行作为待处理文本行。从已提取的所有组件中确定待处理文本行的一种可选的做法是:考虑到与线接触的候选文本行组件可能具这样的特征:尺寸较大、宽高比过大或过小、密度较小等,因此,可将满足上述至少一个特征的候选文本行确定为待处理文本行。所述宽高比是指候选文本行的最小外接矩形框的宽高比。
需要注意的是,本实施例中所述的待处理文本行是非线性变形的文本行,其文本方向是无规律的。但是,根据待处理文本行的最小外接矩形框的宽高比,还是可以在一定程度上反映出待处理文本行的方向。例如,在待处理文本行的最小外接矩形框的宽高比大于1的情况下,可确定待处理文本行的方向更接近于水平方向而不是垂直方向,反之,宽高比小于1,可确定待处理文本行的方向更接近于垂直方向。以图2所示的待处理文本行为例,其最小外接矩形框宽高比大于1,因此图2所示的待处理文本行的方向更接近于水平方向。这里,根据最小外接矩形框的宽高比确定的待处理文本行的方向虽然不能准确地反映出文本行的文本的实际方向,但对于确定文本行的方向仍是有意义的。
步骤S200
步骤S200是将待处理文本行划分为多个子区域的步骤,以下将给出两种子区域的划分方法,分别为基于顶/底轮廓的子区域划分方法和基于垂直投影的子区域划分方法。注意,虽然给出了两种子区域划分方法,但是本步骤S200的实现方式不限于此。
1.基于顶/底轮廓的子区域划分方法
图6(a)为基于顶/底轮廓的子区域划分方法的步骤流程示意图,该方法的具体过程描述如下。
步骤S200-1:确定待处理文本行中各像素列的顶部像素和底部像素。
待处理文本行是二值化的文本行,如图6(b)所示,在X-Y平面上,待处理文本行中的每个像素点的坐标可记为(Xm,Yn),其中,m为待处理文本行中像素点的所在的列,n为行。为方便描述,图6(b)是以待处理文本行的最小外接矩形框的左纵线为Y轴、底横线为X轴为例进行描述的,但本发明实施例不限于其他坐标设定方式。假设这里的待处理文本行是经过了二值化处理的文本行,因此,其中的每个像素点对应0或1的像素值,或者对应0或255的像素值,由于在步骤S100中已进行了预处理,因此,在以最小外接矩形框划定的待处理文本行中,背景像素的像素值和前景(非背景)像素的像素值有明显差异,因此可以根据像素值识别出像素是前景像素还是背景像素。
基于上述待处理文本行中的各像素点的坐标和像素值,可将待处理文本行中各像素列的顶部(从上至下的第一个)前景像素作为顶部像素。按照像素列中像素点从上到下的顺序,依次确定每个像素列中首次出现前景像素及其坐标。在分别针对所有列确定了顶部像素后,将所有的顶部像素组合在一起成为待处理文本行的顶部轮廓。同理,可将待处理文本行中各像素列的底部(从上至下的最后一个)前景像素作为底部像素。按照像素列中像素点从上到下的顺序,依次确定每个像素列中末次出现的前景像素及其坐标。确定出的m个底部像素组合在一起成为待处理文本行的底部轮廓。在图6(b)中,A-A’像素列中的顶部像素为A,其坐标为(XA,YA),底部像素为A’,其坐标为(XA’,YA’);B-B’像素列中的顶部像素为B,其坐标为(XB,YB),底部像素为B’,其坐标为(XB’,YB’)。
步骤S200-2:确定待处理文本行中的同一像素列上的顶部轮廓像素和底部轮廓像素之间的距离。
本步骤S200-2的目的在于:在待处理文本行中,为了找到较合适的尺寸来划分子区域,需要剔除出顶部像素和底部像素之间的距离过大或过小的情况,即不采用顶部像素和底部像素之间的距离过大或过小的像素列作为子区域划分依据。仍以图6(b)为例,在A-A’像素列中,顶部像素和底部像素Y轴上的距离为|YA-YA’|;在B-B’像素列中,顶部像素和底部像素在Y轴上的距离为|YB-YB’|。
步骤S200-3:过滤顶部像素和底部像素之间的距离满足设定条件的像素列。
本步骤S200-3的目的在于过滤掉顶部像素和底部像素之间距离过小和过大的像素列。这里的“设定条件”可以为顶部像素和底部像素之间的距离小于第一距离或大于第二距离,所述第一距离小于第二距离。这里“第一”和“第二”是用于指代两个不同的距离,而不对这两个不同的距离的实际大小产生影响。所述第一距离和第二距离可采用多种方式来设置,例如,对步骤S200-2中确定的所有距离取平均,将比平均距离小于一定值的距离(例如,比平均距离小20%)设置为第一距离,将比平均距离大于一定值的距离(例如,比平均距离大20%)设置为第二距离;再例如,可基于步骤S200-2确定的各距离的分布,将分布中满足一定条件的波谷范围设置为第一距离,将分布中满足另一条件的波峰范围设置为第二距离。本发明实施例并不对第一距离和第二距离的设置方式做限定,只要能将顶部像素和底部像素之间距离过小和过大的像素列过滤掉即可。
步骤S200-4:基于过滤后的像素列中的顶部像素和底部像素之间的距离来确定待划分的子区域的尺寸参数。
本步骤可将过滤后的像素列中的顶部轮廓像素和底部轮廓像素之间的距离以取平均/中位数值的方式进行计算,并将计算结果作为待划分的子区域的尺寸参数。例如,如果以正方形来划分子区域,则可将计算结果作为子区域的边长,也可将对计算结果加权来计算子区域的边长,如边长=计算结果*1.5。本发明并不对子区域的尺寸参数的计算方式进行限定,并且子区域也不限于以正方形进行划分。
步骤S200-5:从待处理文本行中的像素列中选择多个候选像素列,将候选像素列的顶部轮廓像素和底部轮廓像素的中心点作为子区域的中心、基于确定的子区域的尺寸参数划分出多个子区域。
在本步骤S200-5中,确定了像素列的顶部像素和底部像素的中心点就相当于确定子区域的位置,进而根据子区域的尺寸参数就可划分出子区域。
优选地,为了使划分出的子区域能够包括待处理文本行中的所有前景像素,可针对待处理文本行中的包括前景像素的所有像素列,从最左端的像素列起,按照从左到右的顺序,以一定的像素列数量为间隔,依次选定多个候选像素列。再以候选像素列中的顶部轮廓像素和底部轮廓像素的中心点作为子区域的中心,基于确定的子区域的尺寸参数划分出多个子区域。这里,作为选定候选像素列的间隔可根据实际情况设定,例如,如果对于图像处理的精度要求较高,希望划分出较多数量的子区域,则间隔的像素列数量较少;如果希望图像处理占用的服务器资源较少,则间隔的像素列数量较多。作为一个例子,可将步骤S200-3以取平均/中位数值的方式进行计算后的计算结果的一半作为两个相邻候选像素列之间的间隔。参见图6(c),假设子区域为正方形,步骤S200-4中计算的边长为l0,则可以5=l0/2为间隔,从左到右地划分出子区域。
请注意,图6(a)至图6(c)所描述的基于顶/底轮廓的子区域划分方法是针对大致水平方向的文本行而言的,其顶/底轮廓是像素列的顶/底轮廓;针对大致竖直方向的文本行的处理方法与其类似,所不同的是顶/底轮廓是像素行的顶/底轮廓。
2.基于垂直投影的子区域划分方法
图7(a)为基于垂直投影的子区域划分方法的步骤流程示意图,该方法的具体过程描述如下。
步骤S200-1’:确定待处理文本行中各像素列中前景像素的数量。
以图7(b)所示的待处理文本行为例,根据之前对基于顶/底轮廓的子区域划分方法的描述,根据像素值可确定像素列中前景像素,进而确定像素列中前景像素的数量。
步骤S200-2’:确定像素列组,该像素列组中的各像素列是相邻像素列,且每个像素列中的前景像素的数量小于第一数量。
如果将步骤S200-1’中确定的各像素列中前景像素的数量以数量分布图的形式表示的话,可得到图8所示的前景像素的数量分布图。在图7(b)中所示待处理文本行中,C-C’像素列、D-D’像素列和E-E’像素列中的前景像素的数量小于第一数量,C-C’像素列和D-D’像素列是同一像素列组中的像素列,对应图8中的波谷1,E-E’像素列是与C-C’像素列和D-D’像素列不同像素列组中的像素列,对应图8中的波谷2。F-F’像素列中的前景像素的数量多于第二数量,对应图8中的波峰1。这里的“第一”和“第二”是用于区分两个不同的数量。所述第一数量可根据用户经验或实验结果确定,其目的是为了反映出这样的像素列:像素列中包括数量较少的前景像素,其很可能是只包括作为线的前景像素而不包括作为字符的前景像素。所述第一数量可被设置为所有像素列中前景像素的平均值*20%。所述第二数量也可根据用户经验或实验结果确定,其目的是为了反映出这样的像素列:像素列中包括数量较多的前景像素,其不仅包括作为线的前景像素还包括作为字符的前景像素。所述第二数量可被设置为所有像素列中前景像素的平均值*120%。
步骤S200-3’:确定相邻的像素列组之间存在前景像素的数量大于第二数量的像素列的多个像素列组,从确定出的每个像素列组中确定一个像素列作为子区域的左右边界。
本步骤S200-3’的目的是基于字符间的间隔来分离出各字符。由于在步骤S200-2’中确定的像素列组中的像素列很可能是表示相邻字符间的间隔的像素列,因此,进一步判断相邻的两个像素列组之间是否存在前景像素的数量大于第二数量的像素列,若存在,则表示两个相邻的像素列组之间存在字符,从这两个相邻像素列组中分别选取一个像素列作为子区域左右边界。例如,图7(b)中的C-C’像素列和E-E’像素列所在的像素列组为相邻像素列组,对应图8中的两个相邻波谷:波谷1和波谷2。C-C’像素列和E-E’像素列所在的像素列组之间有前景像素的数量大于第二数量的像素列F-F’,对应图8中的波峰1。因此,可将C-C’像素列和E-E’像素列作为一个子区域的左右边界。
优选地,为了确保最终划分出的子区域能够包括待处理文本行中的所有前景像素,存在以下三种情况。情况1):如果步骤S200-3’中确定出的像素列组是首个像素列组(对应图8中的波谷1),则可选择该像素列组中的首个像素列作为子区域的左边界。情况2):如果步骤S200-3’中确定出的像素列组是末尾像素列组(对应图8中的波谷3),则可选择该像素列组中的最后一个像素列作为子区域的右边界。情况3):如果步骤S200-2’中确定出的像素列组不是首个也不是末尾像素列组(对应图8中的波谷2),则可选择该像素列组中的任意像素列作为前一子区域的右边界以及后一子区域的左边界。
步骤S200-4’:基于确定出的左右边界,将左右边界之间的有前景像素的第一像素行和最后一像素行作为上下边界,从而确定出子区域。
本步骤S200-4’是基于最小外接矩形来确定子区域的,以C-C’像素列和E-E’像素列作为左右边界为例,在C-C’像素列和E-E’像素列之间从上往下扫描或垂直映射在Y轴上,可确定出第一次出现前景像素的行和最后一次出现前景像素的行,并将确定出的这两个行作为子区域的上下边界。基于步骤S200-3’和步骤S200-4’确定出了子区域的左右边界和上下边界,亦即确定出了子区域。最终确定出的子区域如图7(c)所示。
请注意,图7(a)至图7(c)所描述的基于垂直投影的子区域划分方法是针对大致水平方向的文本行而言的,各步骤针对像素列进行处理的;针对大致竖直方向的文本行的处理方法与其类似,所不同的是投影方式是基于水平方向的投影。
以上针对基于顶/底轮廓的子区域划分方法和基于垂直投影的子区域划分方法的描述,都是以待处理文本行更接近水平方向、对像素点按照从左到右、从上到下的顺序处理为例进行描述的,如果待处理文本行是更接近垂直方向的文本行,或是对像素点按照不同的顺序处理的话,仍旧可以按照以上描述的方式通过简单变形后进行处理,此处不再赘述。
步骤S300
本步骤S300是确定子区域的文本方向的步骤。以下将给出两种子区域的文本方向确定方法,分别为基于线段的主方向来确定子区域的文本方向的方法和基于长线检测来确定子区域的文本方向的方法。注意,这里虽然给出了两种子区域的文本方向确定方法,但是本步骤S300的实现方式不限于此。
1.基于线段的主方向来确定子区域的文本方向的方法
图9(a)为基于线段的主方向来确定子区域的文本方向的方法的步骤流程示意图,该方法的具体过程描述如下。
步骤S300-1:提取子区域中的线段。
参见图9(b)所示的一个子区域,提取出该子区域中的全部线段,包括表示字符笔划的线段和表示下划线的线段,得到图9(c)所示的线段示意图。本发明实施例并不特别限定子区域中的线段提取方式,业界已有的诸如霍夫变换、形态学分析、线段检测(LSD,LineSegment Detector)等方法都可应用在本步骤中。
步骤S300-2:确定每条线段的方向和长度。
为了方便描述,将图9(c)所示的线段图表示在X-Y轴平面上,将线段与X轴之间的角度作为该线段的方向,简单地说,可用0~360度的度数来表示线段的方向。当然,这只是反映线段方向的一种实现方式,本发明实施例也不限于以其他的方式来表现线段的方向。例如,将线段与Y轴之间的角度作为该线段的方向等。需要注意的是,本步骤中线段以何种形式表现,最终确定出的文本方向就以相同的形式表现。另外,线段的长度可通过计算两个端点的欧式距离来确定。
步骤S300-3:为各方向设置权重,其中,对应线段越长的方向设置的权重越大。
由于越长的线段所在的方向越能体现子区域的文本方向,因此,需要为对应长的线段的方向设置较大的权重。例如,如果有1条长度为100的线段的方向为170度,有3条长度分别为10、20、15的线段的方向为15度,则为170度方向设置的权重应大于为15度方向设置的权重。一种可选的例子为,线段方向对应的权重与该方向上的线段的长度成正比,更具体地,权重的取值可为该方向上的线段的长度值,例如,针对170度的方向设置权重值为100,针对15度的方向设置权重值为45。
步骤S300-4:基于权重值最大的方向来确定子区域的文本方向。
在本步骤S300-4中,可采用直方图的形式、基于为各方向设置的权重来统计子区域中加权后的方向直方图。直方图中最大值对应的方向可作为子区域内的文本或者直线的方向。通常,子区域内线(下划线等)的方向与待处理文本行的方向一致,若在步骤S100中基于最小外接矩形框宽高比确定待处理文本行为大致水平方向,则子区域中的线的方向也应该是大致水平方向的,即与X轴夹角小于45度。可以利用这个特征来区分本步骤S300-4通过直方图得到的是子区域中的文本的方向还是线的方向。若通过本步骤S300-4的直方图方式得到的方向为线的方向,则将与该线垂直的方向作为子区域的文本方向。
2.基于长线检测来确定子区域的文本方向的方法
图10(a)为长线检测来确定子区域的文本方向的方法的步骤流程示意图,该方法的具体过程描述如下。
步骤S300-1’:提取子区域中的长度达到设定阈值的线段。
在本步骤S300-1’中,首先可采用与步骤S300-1类似的方式提取出子区域中的线段,然后过滤掉其中的短线段,保留长线段。考虑到较长的线段的方向更能反映子区域的线段方向,因此,本步骤中将长度达到设定阈值的线段用作后续处理而过滤掉其他短线段。这里的设定阈值可根据用户经验或实验确定,例如,设定阈值=子区域宽度*2/3(这里假设文本行/线方向为大致水平方向)。
步骤S300-2’:过滤掉提取的线段中的属于字符笔划的线段。
在本步骤中,考虑到在之前的子区域划分过程中,划分出的子区域大致包含独立的字符,并且空间位置是相邻的,因此,针对一个线段而言,如果在与该线段所在的子区域相邻的其他子区域中不存在与该线段相接触或邻近、并且方向相近(都为水平或者竖直方向)的线段,则确定该线段是字符中的线段。邻近的线段可定义为:在X-Y平面中,在两条线段中分别存在一个点,两点之间的距离小于设定距离。
如图10(b)所示,在两个相邻的子区域(子区域1和子区域2)中有线段1、线段2、线段3和线段4,子区域1中的线段2不与子区域2中的任意线段接触或相邻,因此,可确定线段2是字符中的线段。子区域1中的线段1与子区域2中线段4接触,因此,线段1不是字符中的线段。特别地,子区域2中的线段3与子区域1中线段1接近,但是线段3方向与线段1差异很大,因此线段3为字符中的线段。在某些情况下,仅使用两个相邻的子区域可能对某些属于字符的线段判断有误,可以考虑使用更多相邻的子区域来提高判断的准确性。
步骤S300-3’:基于剩余的线段的方向来估计子区域中的文本方向。
由于在步骤S300-2’中过滤掉了属于字符笔划的线段,因此,剩下的线段很可能是属于线(如下划线)中的线段。此时,采用权重等方式可利用剩余线段的方向来估计子区域中文本方向。仍以图10(b)为例,在线段1至线段4中,线段2和线段3作为字符中的笔划而被过滤掉,基于线段1和线段4的方向可估计出该子区域的线方向。通过本步骤S300-3’得到的方向为线的方向,将与该线垂直的方向作为子区域的文本方向。
步骤S400
由于通过之前的步骤已经确定了子区域的文本方向,因此在本步骤S400中,可将子区域中的各像素列投影在其文本方向上,通过投影结果来查找出各相邻字符间隔之间的线,进而确定出整个待处理文本行中的与文本行接触的线。下面对本步骤S400的具体实现方式进行描述。
图11(a)为确定待处理文本行中与文本行接触的线的方法步骤流程图,主要包括以下步骤。
步骤S400-1:针对每个子区域,将该子区域中的各像素列沿该子区域的文本方向进行投影,得到各像素列中的前景像素的数量。
以图11(b)所示的待处理文本行及划分的子区域为例,针对每个子区域,对其中的像素列在子区域的文本方向进行投影后,可得到由图12所示的前景像素的数量分布图。需要说明的是,虽然之前在步骤S200-2’中也对像素列进行了投影,但步骤S200-2’中的投影与本步骤S400-1中的投影是有本质上的区别的。在步骤S200-2’的投影是在不考虑非线性变形的情况下,像素列中的像素点在Y轴上投影而确定的前景像素的数量;而在本步骤S400-1的投影是在考虑到了非线性变形的情况下,针对每个子区域,将像素列沿着该子区域的文本方向投影,得到在子区域的文本方向上的前景像素的数量。参见图11(b),G-G’线和H-H’线的方向为其所在的子区域的文本方向。
步骤S400-2:基于投影结果确定位于各相邻字符之间的、不与字符接触的线。
在本步骤中,位于相邻两个字符间隔的线可通过图11(c)中的虚线所示,其确定方式为:由于线是在相邻字符之间的、不与线接触的,因此,线在步骤S400-1的投影结果应当是“前景像素少”,换句话说,在子区域的文本方向上投影的连续多个、且投影结果在预设范围内的像素列中的前景像素的集合。在图12的分布图中为对应的数量在预设范围内的波谷,例如波谷1和波谷2。对应在图13中,被圈住的线即为位于各字符之间的、不与字符接触的线,即符间线。
步骤S400-3:基于位于相邻字符空白间隔的、不与字符接触的线,确定与待处理文本行中的文本行接触的完整的线。
步骤S400-3的实现方式可以有多种,例如,计算每条步骤S400-2中确定的线段的中心线,沿着线段方向延长所有中心线,可以得到各延长线之间的交点,利用直线将交点逐个连起来作为与文本行接触的线。
步骤S500
在本步骤S500执行线去除操作时,为了避免字符变形,可通过上下跟踪像素来检测线与字符相交处的结点,如图14(a)所示,通过之前的步骤确定出线与字符,进而在图14(b)中确定两者有两个交点。通过将检测出的线中除交点外的其他前景像素转换为背景像素来实现线的去除,得到图14(c)所示的结果。另外,还可以增加后处理步骤,通过执行例如形态学的闭合操作等,将由于线的去除而可能被断开的字符的笔画连接起来,以提高线去除处理的精度。图15为执行了本发明第一实施例后去除了线的文本行。
通过本发明第一实施例的方案,可准确地将非线性变形的文本图像中的线与文本分离,得到较好的线去除结果。
<第二实施例>
下面参照图16来描述本发明第二实施例中的文档图像处理装置的硬件构造。该文档图像处理装置包括:处理器单元101、内部存储器单元102、网络接口单元103、输入单元104、外部存储器单元105以及总线单元106。
所述处理器单元101可以是CPU或GPU。所述存储器单元102包括随机存取存储器(RAM)、只读存储器(ROM)。所述RAM可用作处理器单元101的主存储器、工作区域等。ROM可用于存储处理器单元101的控制程序,此外,还可以用于存储在运行控制程序时要使用的文件或其他数据。网络接口单元103可连接到网络并实施网络通信。输入单元104控制来自键盘、鼠标等设备的输入。外部存储器105存储启动程序以及各种应用等。总线单元106用于使多层神经网络模型的优化装置中的各单元相连接。利用图16所示的文档图像处理装置可执行第一实施例中所描述的文档图像处理过程。
图17描述了本发明第二实施例中的文档图像处理装置的软件结构。该文档图像处理装置包括:子区域划分单元201、文本方向确定单元202以及线确定单元203,其中,子区域划分单元201被构造为:将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与该部分字符接触的线;文本方向确定单元202被构造为:根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;线确定单元203被构造为:利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
具体地,子区域划分单元201可执行第一实施例的步骤S200中所描述的处理;文本方向确定单元202可执行第一实施例的步骤S300中所描述的处理;线确定单元203可执行第一实施例的步骤S400中所描述的处理,此处不再赘述。
优选地,文档图像处理装置还可以包括:预处理单元200,其被构造为:对文本图像执行预处理,并从中确定出待处理文本行。具体地,预处理单元200可执行第一实施例的步骤S100中所描述的处理。文档图像处理装置还可以包括:线去除单元204,其被构造为:去除线确定单元203确定的线。具体地,线去除单元204可执行第一实施例的步骤S500中所描述的处理,此处不再赘述。
其他实施例
本发明的实施例还可以通过读出并执行记录在存储介质(也可以更完全地被称为“非暂时的计算机可读存储介质”)上的计算机可执行指令(例如,一个或多个程序)以执行一个或多个上述实施例的功能并且/或者包括用于执行一个或多个上述实施例的功能的一个或多个电路(例如,专用集成电路(ASIC))的系统或装置的计算机来实现,并且通过由系统或装置的计算机执行的方法来实现,通过例如从存储介质读出并执行计算机可读指令以执行一个或多个上述实施例的功能并且/或者控制一个或多个电路以执行一个或多个上述实施例的功能。该计算机可以包括一个或多个处理器(例如,中央处理单元(CPU),微处理单元(MPU)),并且可以包括独立的计算机或独立的处理器的网络来读出并执行计算机可执行指令。该计算机可执行指令可以从例如网络或存储介质提供给计算机。该存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储、光盘(诸如压缩盘(CD)、数字通用盘(DVD)或蓝光盘(BD)(注册商标))、闪存设备、存储卡等中的一个或多个。
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有变型、等同结构和功能。
Claims (11)
1.一种文档图像处理方法,所述文档图像中包括与线接触的文本行,所述文档图像处理方法包括:
将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与字符接触的线;
根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;
利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
2.根据权利要求1所述的文档图像处理方法,其中,该方法还包括:
对所述文本图像执行预处理,并从中确定出待处理文本行。
3.根据权利要求1所述的文档图像处理方法,其中,该方法还包括:
去除确定出的线。
4.根据权利要求1至3任一所述的文档图像处理方法,其中,所述文档图像为非线性变形的图像、线性变形的图像或没有变形的图像。
5.根据权利要求1所述的文档图像处理方法,其中,将待处理文本行划分为多个子区域具体包括:
确定待处理文本行中同一像素列上的顶部像素和底部像素之间的距离;
过滤顶部像素和底部像素之间的距离满足设定条件的像素列;
基于过滤后的像素列中的顶部像素和底部像素之间的距离来确定子区域的尺寸参数;
从待处理文本行中的像素列中选择多个像素列的中心点作为子区域的中心;
基于确定的子区域的尺寸参数和子区域的中心划分出多个子区域。
6.根据权利要求1所述的文档图像处理方法,其中,将待处理文本行划分为多个子区域具体包括:
确定待处理文本行中各像素列中前景像素的数量;
确定像素列组,该像素列组中的各像素列是相邻像素列,且每个像素列中的前景像素的数量小于第一数量;
确定相邻的像素列组之间存在前景像素的数量大于第二数量的像素列的多个像素列组,从确定出的每个像素列组中确定一个像素列作为子区域的左右边界;
将左右边界之间的有前景像素的第一像素行和最后一像素行作为上下边界;
基于确定出的左右边界和上下边界划分出子区域。
7.根据权利要求1所述的文档图像处理方法,其中,确定子区域的文本方向具体包括:
提取子区域中的线段,并确定每条线段的方向和长度;
为各方向设置权重,其中,对应线段越长的方向设置的权重越大;
基于各方向的权重值来确定子区域的文本方向。
8.根据权利要求1所述的文档图像处理方法,其中,确定子区域的文本方向具体包括:
提取子区域中的长度达到设定阈值的线段;
过滤掉提取的线段中的属于字符笔划的线段;
基于剩余的线段的方向来估计子区域中的文本方向。
9.根据权利要求1所述的文档图像处理方法,其中,确定待处理文本行中与文本行接触的线具体包括:
针对每个子区域,将该子区域中的各像素列沿该子区域的文本方向进行投影,得到各像素列中的前景像素的数量;
基于投影结果确定位于各相邻字符之间的、不与字符接触的线;
基于位于相邻字符空白间隔的、不与字符接触的线,确定与待处理文本行中的文本行接触的完整的线。
10.一种文档图像处理装置,该装置所处理的文档图像中包括与线接触的文本行,所述文档图像处理装置包括:
子区域划分单元,其被构造为:将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与字符接触的线;
文本方向确定单元,其被构造为:根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;
线确定单元,其被构造为:利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
11.一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行文档图像处理方法,所述文档图像中包括与线接触的文本行,所述方法包括:
将待处理文本行划分为多个子区域,其中,每个划分出的子区域中包含文本行中的部分字符和与字符接触的线;
根据子区域中包含的字符和与字符接触的线的方向来确定该子区域的文本方向;
利用确定出的子区域的文本方向来确定待处理文本行中与文本行接触的线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810294456.1A CN110321887B (zh) | 2018-03-30 | 2018-03-30 | 文档图像处理方法、文档图像处理装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810294456.1A CN110321887B (zh) | 2018-03-30 | 2018-03-30 | 文档图像处理方法、文档图像处理装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110321887A true CN110321887A (zh) | 2019-10-11 |
CN110321887B CN110321887B (zh) | 2023-09-19 |
Family
ID=68112387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810294456.1A Active CN110321887B (zh) | 2018-03-30 | 2018-03-30 | 文档图像处理方法、文档图像处理装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110321887B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144288A (zh) * | 2019-12-25 | 2020-05-12 | 联想(北京)有限公司 | 一种图像处理方法、装置及电子设备 |
CN111753832A (zh) * | 2020-07-02 | 2020-10-09 | 杭州睿琪软件有限公司 | 图像处理方法、图像处理装置、电子设备和存储介质 |
CN113449729A (zh) * | 2020-03-26 | 2021-09-28 | 富士通株式会社 | 用于消除线的图像处理装置、图像处理方法及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258198A (zh) * | 2013-04-26 | 2013-08-21 | 四川大学 | 一种表格文档图像中字符提取方法 |
US20160072968A1 (en) * | 2014-09-08 | 2016-03-10 | Konica Minolta, Inc. | Electronic document generation apparatus, recording medium, and electronic document generation system |
-
2018
- 2018-03-30 CN CN201810294456.1A patent/CN110321887B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258198A (zh) * | 2013-04-26 | 2013-08-21 | 四川大学 | 一种表格文档图像中字符提取方法 |
US20160072968A1 (en) * | 2014-09-08 | 2016-03-10 | Konica Minolta, Inc. | Electronic document generation apparatus, recording medium, and electronic document generation system |
Non-Patent Citations (1)
Title |
---|
张再银等: "基于文本域分割和文本行检测的扭曲文档图像校正", 《电脑与信息技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144288A (zh) * | 2019-12-25 | 2020-05-12 | 联想(北京)有限公司 | 一种图像处理方法、装置及电子设备 |
CN113449729A (zh) * | 2020-03-26 | 2021-09-28 | 富士通株式会社 | 用于消除线的图像处理装置、图像处理方法及存储介质 |
CN111753832A (zh) * | 2020-07-02 | 2020-10-09 | 杭州睿琪软件有限公司 | 图像处理方法、图像处理装置、电子设备和存储介质 |
CN111753832B (zh) * | 2020-07-02 | 2023-12-08 | 杭州睿琪软件有限公司 | 图像处理方法、图像处理装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110321887B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2669847B1 (en) | Document processing apparatus, document processing method and scanner | |
Alaei et al. | A new scheme for unconstrained handwritten text-line segmentation | |
US8391602B2 (en) | Character recognition | |
EP3940589B1 (en) | Layout analysis method, electronic device and computer program product | |
JP6262188B2 (ja) | 文字の中央区域の垂直投影を用いて文書画像内のテキスト文字を区分化する方法 | |
Zhang et al. | Text line segmentation for handwritten documents using constrained seam carving | |
CN113486828B (zh) | 图像处理方法、装置、设备和存储介质 | |
CN101122953A (zh) | 一种图片文字分割的方法 | |
CN112183038A (zh) | 一种表格识别套打方法、计算机设备及计算机可读存储介质 | |
JP7244223B2 (ja) | 電子文書における強調テキストの識別 | |
RU2581786C1 (ru) | Определение преобразований изображения для повышения качества оптического распознавания символов | |
CN110321887A (zh) | 文档图像处理方法、文档图像处理装置及存储介质 | |
CN110598566A (zh) | 图像处理方法、装置、终端和计算机可读存储介质 | |
CN109389110B (zh) | 一种区域确定方法及装置 | |
JP3913985B2 (ja) | 文書画像中の基本成分に基づく文字列抽出装置および方法 | |
Hesham et al. | Arabic document layout analysis | |
JP2009123206A (ja) | 画像からテキストを抽出する方法及び装置 | |
BinMakhashen et al. | Historical document layout analysis using anisotropic diffusion and geometric features | |
CN107798355B (zh) | 一种基于文档图像版式自动分析与判断的方法 | |
US8891822B2 (en) | System and method for script and orientation detection of images using artificial neural networks | |
Kumar et al. | Quad: Quality assessment of documents | |
JP3720892B2 (ja) | 画像処理方法および画像処理装置 | |
Hidayatullah et al. | License plate detection and recognition for Indonesian cars | |
Pan et al. | Document layout analysis and reading order determination for a reading robot | |
Höhn | Detecting arbitrarily oriented text labels in early maps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |