用来分析表格图像的系统的制作方法

文档序号:6416191阅读:237来源:国知局
专利名称:用来分析表格图像的系统的制作方法
技术领域
本发明涉及用来分类文档图像区域的页面分段系统。更具体地说,本发明涉及一种用来辨别和定义表格图像内的特征的块选择系统。
共同转让的美国申请No.07/873,012,现在的美国专利No.5,680,479,标题为“用于字符识别的方法和设备”;序号No.08/171,720,现在的美国专利No.5,588,072,标题为“用来选择存储文档中的文本和/或非文本块的方法和设备”;序号No.08/338,781,标题为“页面分析系统”;序号No.08/514,252,标题为“特征抽取系统”;及序号No.08/664,674,标题为“用来抽取附加文本的系统”;包括在这里,就象完整描述那样。
常规的页面分段系统应用于文档图像,以便辨别包含在文档图像特定区域内的数据类型。这种信息能用来抽取特定区域内的数据,和用来确定要应用于抽取数据的处理类型。
对于包含表格图像的文档,位于表格图像内的文本区域、或表格单元能用光学字符识别(OCR)处理转换成ASCII字符,并且与对应于表格单元位置的信息一道存储在ASCII文件中。然而,常规的系统不能准确地确定对应于表格单元的行和列地址。于是,识别的ASCII字符不能根据行和列地址数据可靠地输入到电子表格。
此外,由常规系统产生的数据经常不足以适当地重新建立位图表格图像的内部特征。例如,数据不反映所分析的表格图像内的垂直和水平网格线。如这里定义的那样,垂直和水平网格线定义表格内的每个行和列,并且能可以是可见的或不可见的。因此,尽管常规的系统能用来建立位图表格的ASCII版本,但ASCII版本不包括代表表格网格线的数据。于是,存储的数据不能用来准确地重新建立表格内网格线的位图版本。况且,在希望编辑表格单元内的文本的情况下,难以根据常规系统提供的信息,来确定编辑的文本是否与网格线相交而由此违反行/列边界。
因而,所需要的正是一种用来准确辨别和表示位图表格图像的内部特征,如行、列、和表格网格线,的系统。
本发明通过辨别位图表格图像内的超级单元解决了以上问题。超级单元是以可见表格网格线为边界的表格图像的区域,并且包括一个或多个表格单元。便利的是,辨别的超级单元的位置和尺寸能用来重新建立表格图像可见网格线的位像。此外,通过参照围绕表格单元的超级单元的尺寸,能够确定表格单元的编辑文本是否会使编辑的文本与网格线相交。
根据一个方面,本发明是一种用来在表格的位像上进行块选择的系统,表格由排列成行和列的表格单元组成,行和列由可见的和不可见的网格线定义。该系统辨别包括一个或多个表格单元的超级单元,其中根据围绕表格单元和以可见网格线为边界的跟踪白色区域辨别超级单元,该系统还确定限定每个表格单元的垂直和水平网格线是可见的还是不可见的,并且确定限定每个超级单元的垂直和水平网格线是可见的还是不可见的。
根据上述内容,本发明确定能用来基本上重新建立表格图像的内部特征的信息。况且,确定的信息能存入或者与ASCII文件一道存入,以便提供整个表格图像的准确表示。
在另一个方面,表格图像内的行通过这样来辨别1)检测表格图像内反相文本的区域;2)计算表格图像内连通元的水平直方图,直方图不反映检测区域内的连通元;3)根据水平直方图定义表格图像内的行;及4)根据跟踪白色区域的位置和相对于定义行的部分网格线,重新定义行。
作为上述方面的结果,能准确地辨别表格单元,并且把表格单元输入到电子表格的适当行。
在一个有关的方面,表格图像内的列通过这样来辨别1)检测表格图像内反相文本的区域;2)计算表格图像内连通元的垂直直方图,直方图不反映检测区域内的连通元;3)根据垂直直方图定义表格图像内的列;及4)根据跟踪白色区域的位置和相对于定义列的部分网格线,重新定义列。
根据上述方面,包含在表格单元中的数据能准确地抽取,并且输出到电子表格应用程序中。此外,根据存在的行和列,能容易地把附加单元添加到表格上。
已经提供了该简要总结,从而可以迅速理解本发明的本质。通过结合附图参照本发明最佳实施例的如下详细描述,能得到本发明的更完整理解。


图1表示实施本发明的代表性计算设备。
图2是方块图,表明采用本发明的计算机的内部构造。
图3是流程图,描述根据本发明的块选择处理。
图4是流程图,描述根据本发明的非文本连通元的分类。
图5是流程图,特别面向表格图像的块选择处理。
图6是带有反相区域的表格图。
图7是流程图,描述根据本发明的反相表格区域的处理。
图8是表格部分的视图,用来描述附加连通元的抽取。
图9包括图9a和9b,是描述根据本发明的表格列计算的流程图。
图10包括图10a和10b,表明在本发明的表格列计算中使用的垂直直方图。
图11包括图11a至11h,表示在根据本发明的表格列计算期间考虑的各种直方图配置。
图12包括图12a至12c,表明根据本发明的表格列计算。
图13是流程图,描述根据本发明的表格行计算。
图14表明根据本发明的表格行计算。
图15是流程图,描述根据本发明用来定位垂直和水平网格线的过程。
图16包括图16a和16b,表明根据本发明的垂直网格线计算。
图17是流程图,描述根据本发明的超级单元建立。
图18包括图18a和18b,表明根据本发明的超级单元建立。
图19包括图19a至19c,表明根据本发明的在列拆分期间考虑的垂直直方图配置。
图20是表格部分的视图,用来描述根据本发明的行拆分。
图21包括图21a和21b,是流程图,用来描述根据本发明的表格单元列和行拆分。
图22包括图22a和22b,表明根据本发明的列调节。
图23是表格部分的视图,用来描述根据倾斜网格线的列地址调节。
图24是在根据本发明的列地址调节之后的图23的表格部分的视图。
图25是流程图,描述根据本发明的虚超级单元的建立。
图26包括图26a和26b,表明根据本发明的超级单元孔补偿。
图27表示根据本发明的虚单元。
图28包括图28a和28b,表明表格单元、超级单元、和可见网格线之间的关系。
图29包括图29a和29b,表示用来存储表示表格图像的数据的层次树结构。
图1表示根据本发明实施基于块选择的表格分析系统的代表性计算设备的外观。
表示在图1中的是计算设备1,如带有诸如微软Windows95之类的视窗操作系统的IBM PC或PC兼容计算机。计算设备1装有单色或彩色显示监视器2,计算设备1利用它向用户显示图像。计算设备1还装有用来存储数据文件和应用程序文件的固定盘驱动器3、用来输入文本数据和用来操纵显示在显示器屏幕2上的对象的键盘5、及鼠标之类的指点装置6,提供指点装置6用来指向和操纵显示在显示器屏幕2上的对象。
计算系统1还包括用来从软盘读和向其写的软盘驱动器4。包括表格图像的文档图像文件、以及实施本发明的计算机可执行过程步骤,可以存储在固定盘3上或插入在软盘驱动器4中的软盘上。另外,文档图像文件和/或计算机可执行过程步骤可以从经CD-ROM驱动器(未表示)存取的CD-ROM得到。
计算设备1还提供有用来与局域网接口的网络接口10、和用来发送和接收传真信息和其他数据文件的传真/调制解调器接口11。文档图像文件和实施本发明的计算机可执行过程步骤,可以在网络上经网络接口10存取。此外,传真/调制解调器接口11也能用来从万维网(下文为WWW)检索图像和/或计算机可执行过程步骤。
最典型的是,存储在固定盘3上的应用程序,包括根据本发明的块选择应用程序,在从诸如软盘、CD-ROM、网络驱动器、或WWW之类的计算机可读介质上下载之后,存储到盘3。
文档图像可以由扫描仪7输入,扫描仪7扫描文档以便把文档的位像数据提供给计算设备1。包括位图表格图像数据的位像数据可以以压缩或非压缩格式存储到固定盘3上。
提供打印机9,用来输出由计算设备1处理的文档图像。
在操作中、及在视窗操作系统的控制下,选择性地启动存储的应用程序,如根据本发明的块选择应用程序,以处理存储的数据。按照操作者指令,并且根据存储的应用程序,向屏幕2上的显示图像发出命令,并且用打印机9打印显示的图像。
图2是详细的方块图,表示计算设备1的内部结构。如图2中所示,计算设备1包括一个中央处理单元(CPU)20,如编程的微处理器,与计算机总线21接口。与计算机总线21接口的还有扫描仪接口22、打印机接口23、网络接口24、传真/调制解调器接口26、显示器接口27、键盘接口28、和鼠标接口29。
主存储器30,如随机存取存储器(RAM),与计算机总线21接口,以便向CPU20提供对于存储器存储的存取。特别是,当执行诸如那些存储在盘3上的计算机可执行过程步骤时,CPU20把这些步骤从盘3或其他存储介质加载到主存储器30中,并且执行来自主存储器30的这些过程步骤。
只读存储器(ROM)31用来存储计算机可执行过程步骤,如在引导期间使用的那些,或用于例如键盘5的操作的基本输入/输出操作系统(BIOS)序列。
图3是流程图,描述一种根据本发明的块选择处理的方法。图3中所示的过程步骤,最好由CPU20按照存储在诸如盘3之类的计算机可读介质上的块选择应用程序执行。
一般地,图3的过程步骤用来输入文档图像、检测文档图像内的连通元、分隔文本和非文本连通元、分类非文本连通元、辨别沿非文本成份边缘的白色区域、形成文本块和文本行、检测输入图像的倾斜、及后处理图像。用来完成这些一般步骤的技术公开在上述的美国专利Nos.5,680,479和5,588,072中。
应该注意,图3的过程步骤还用来辨别表格内的反相文本区域,这些区域是其中文本由黑色像素包围的白色像素组成的文本区域;辨别附加的文本连通元;建立和计算用于表格单元和超级单元的地址,超级单元是在由表格内可见垂直和/或水平网格线包围的表格区域内、且包含至少一个表格单元的区域;检查可见单元边界的存在;及根据本发明确定表格网格线的位置。在这方面,表格内的网格线或者是可见的或者是不可见的,并且还定义在表格内辨别的每个行和列。
准确地说,在图3的步骤S301,文档的位图像素数据输入到计算系统1中,并且存储在盘3上。最好,像素数据是二进制像素数据,即黑白图像数据。然而,在图像数据是半色调图像数据的情况下,其中像素由几个灰度级之一表示,或者在像素数据是彩色图像数据的情况下,其中每个像素由用于像素的多位字编码彩色数据表示,那么应该进行阈值处理,以便把非二进制像素数据二进制化成二进制像素数据。
应该注意,图像缩减可以在步骤S301之后进行。这种图像缩减增大了以后的处理速度,但可能对特征集中处理,如光学字符识别,有不利影响。
在步骤S302,分析输入像素数据,以便检测文档图像内的连通元。连通元是完全由白色像素包围的黑色像素组。通过对每个连通元定义限定连通元的最小矩形,矩形化或“块化”检测的连通元。
在步骤S304,把连通元粗略地分类成文本连通元和非文本连通元。这种分类基于限定连通元的矩形尺寸,和基于非文本连通元通常大于文本连通元的事实。步骤S301、S302、和S304的详细描述位于上述的美国专利Nos.5,588,072和5,680,479中。
在步骤S305,进一步分析在步骤S304分类为非文本的连通元,以确定他们是否是线、接合线、画面、艺术线(lineart)、帧、表格、或未知(即以上哪个也不是)。
图4是流程图,描述根据步骤S305用来分析非文本连通元的方法。因为在美国专利Nos.5,588,072和5,680,479中更详细地描述了图4的各步骤,所以下面将仅提供一般的描述。
一般地,图4中描述的非文本连通元分类,基于根据分析的连通元的大小、宽度等而数学公式化和动态计算的标准阈值。因而,在步骤S401,分析非文本连通元,以确定它是否是半色调(或连续色调)画面。如果是,则流程前进到步骤S402,在此点把“半色调(或连续色调)画面”子属性分配给非文本连通元。
如果在步骤S401确定非文本连通元不是半色调画面,则流程前进到步骤S404,其中确定非文本连通元是否是帧。如果是,则流程前进到步骤S405,在此时把“帧”子属性分配给连通元。如果在步骤S404的确定是否定的,则流程前进到步骤S406,其中确定非文本连通元是垂直线还是水平线。在确定连通元为垂直线或水平线时,处理过程前进到步骤407。在步骤S407,把“水平线”或“垂直线”子属性分配给非文本连通元。
在步骤S406确定非文本连通元不是垂直线或水平线的情况下,执行步骤S409。在步骤S409,确定非文本连通元是否是表格。简短地说,为了确定非文本连通元是否是表格,在四个方向跟踪连通元的内部白色区域。内部白色区域是由黑色像素完全包围的白色像素的区域。如果发现四个内部白色区域,并且如果白色区域的排列在表格状网格中,从而白色区域由垂直和水平线包围,那么在步骤S410,把非文本连通元指定为表格。用来确定连通元是否是表格的更详细描述可以在美国专利No.5,588,072、美国专利No.5,680,479和美国专利申请No.08/514,252中找到。
而且在步骤S410,按照步骤S302和S304重新分析辨别表格的内部,以便辨别和分类表格内部的文本和非文本连通元。
如果在步骤S409确定非文本连通元不是表格,则流程前进到步骤S412,其中确定非文本连通元是否是斜线。如果是,则在步骤S414把“斜线”子属性分配给非文本连通元。
如果在步骤S412的确定是否定的,则流程前进到步骤S415,其中确定非文本连通元是线性艺术画面(line-art picture)还是接合线。如果非文本连通元不是线性艺术画面或接合线,则流程前进到步骤S416,其中把未知属性分配给连通元。如果是,则流程前进到步骤S417,其中确定非文本连通元是否是接合线。
如果非文本连通元不是接合线,那么在步骤S419,把非文本连通元指定为线性艺术画面。如果在步骤S417确定非文本连通元是接合线画面,则流程前进到步骤S420,其中把“接合线”子属性分配给成份。流程然后前进到步骤S421。
应该注意,步骤S402、S405、S407、S410、S414、S416、及S419的每一个也进行到步骤S421,其中确定另外的非文本连通元是否剩余有要分类的。如果是,则流程返回步骤S401。如果不是,则流程前进到图3的步骤S306。
在步骤S306,与非文本连通元的边缘一道辨别不可见线。如上所述,不可见线辨别详细公开在美国专利Nos.5,588,072和5,680,479中。例如,垂直不可见线、或白色像素的区域可以在步骤S306定位在两个半色调画面连通元之间。这条不可见线能用来在步骤S308,确定位于画面连通元下面的文本连通元是应该一起成组还是以隔离柱状块分组。
流程从步骤S306前进到步骤S07,其中辨别表格区域内的反相区域。反相区域是包括由黑色像素包围的白色像素组成的文本的区域。根据本发明在以下处理中拒绝表格区域内的反相区域,以便不影响其他表格特征的辨别。反相区域辨别的详细描述在下面相对于图6和7给出。
而且在步骤S307,辨别附加到表格区域内的水平和垂直网格线的连通元。附加连通元的辨别和抽取一般在下面相对于图8描述,并且在共同授予的美国专利申请No.08/664,674中详细描述,该申请通过参考包括在本公开中。而且如下面描述的那样,辨别的附加成份根据本发明用来辨别表格内的其他特征。
流程继续到步骤S308,其中由在步骤S304分类的文本连通元形成文本块。在这方面,根据相邻文本单元之间的水平和垂直空隙的统计分析,把每个文本连通元的封闭水平和垂直相邻部分聚集到文本块中。其次,分析形成的文本块以便形成文本行。在美国专利No.5,588,072中详细描述了步骤S308。
其次,在步骤S309,按照本发明执行过程步骤,以便分析已经指定为表格的非文本连通元。更具体地说,辨别表格内的行和列,并且把行和列地址分配给表格内的每个表格单元。下面相对于图9至14详细描述行和列地址辨别和分配。
此外,在步骤S309计算垂直和水平表格网格线的位置,网格线定义每个辨别行和列,并且是可见和不可见的。下面相对于图15和16给出网格线计算的描述。
在步骤S309还根据以可见网格线为边界的、且包含至少一个表格单元的表格区域定义超级单元。把行和列地址分配给超级单元,并且辨别包围每个超级单元的可见网格线边界。下文相对于图17和18描述超级单元的建立和可见边界的辨别。
其次,在步骤S310,检测输入文档图像的倾斜,并且如果倾斜角超过预定最大角度,则输出差错代码,向用户发信号文档页面太倾斜而不能完成块选择处理。倾斜检测公开在美国专利Nos.5,588,072和5,680,479中。
如果倾斜在可接收的极限内,则流程前进到步骤S311,其中进行后处理。后处理也公开在美国专利Nos.5,588,072和5,680,479中。后处理打算产生文档图像的更紧凑和“清晰”的块表示,并且能裁剪以适合具体类型的以后处理,如字符识别、数据压缩等。然而,一般地,后处理涉及使文本块与其他文本块或非文本块有关。
便利的是,后处理程序取决于在步骤S310确定的页面倾斜。例如,在页面只有轻微倾斜的情况下,良好地定义文本块之间的间隙。于是,聚合地组合诸块。在另一方面,对于有较大倾斜的页面,限定矩形可能重迭几个文本区域,因此较保守地组合矩形。块选择在后处理之后终止。
图3过程步骤的执行产生文档图像内数据的位置和类型的详细表示。结果,图3的过程步骤能结合光学字符识别系统使用,以便识别由表格内位像数据表示的字符,以把字符转换成ASCII格式,并且根据确定的行和列表格地址,把ASCII字符输入到电子表格程序中。此外,图3的过程确定由其能基本复制诸如表格网格线之类的表格内部特征的信息。
图5是流程图,更详细地描述图3流程图的步骤,特别注意表格特征的分析。在这方面,步骤S501和S502对应于图3的步骤S301、S302、S304和S305。具体地说,在步骤S501输入文档图像,并且在步骤S502检测和成块文档图像内的连通元。
在步骤S503,如相对于步骤S304和S305在以上描述的那样,辨别表格以及表格内的文本块。其次,在步骤S504,还辨别沿表格边缘的不可见线,以便在以后的文本块形成时使用。
在步骤S505辨别主题表格内的反相文本区域。如上所述,根据本发明,作为包含由黑色像素包围的白色像素组成的文本的区域的反相区域,是在以后表格处理期间拒绝的区域。图6a表示表格40内的反相区域42。区域42内的斜线表示黑色像素的区域,黑色像素如此排列以便形成区域42内的词“TITLE(标题)”。表示在图6a中的还有由虚线表示的白色区域,这些虚线在表格40的辨别期间使用,如相对于以上步骤S409描述的那样。
为了辨别反相区域,流程图在步骤S701开始,其中计算表示在表格中的每行像素内由白色边界对跨越的总距离的水平直方图。在这方面,边界对是由白色区域边界(图6a中的虚线)与像素特定行的交叉确定的坐标定位。图6b表示直方图44,直方图44由步骤S701形成并且对应于表格40。
流程然后前进到步骤S702。从表格40的顶部开始,在步骤S702分析每行像素,使用表格40的尺寸和在直方图44中反映的数据,以确定在表格中像素行内白色边界对之间的总距离是否小于由行跨越的总距离的一半。如果对于N个连续分析行满足上述条件,其中N是阈值,则流程前进到步骤S704。
在表格40的情况下,区域42中的行数大于N,因此流程前进到步骤S704。如果没有找到N个连续这样的行,则流程前进到图5的步骤S506。
在步骤S704,在步骤S702辨别的N行内,辨别跟踪白色区域。这些区域对应于形成在区域42内的每个字母。其次,在步骤S706,把每个识别白色区域的尺寸与阈值尺寸相比较。最好定义阈值尺寸,以便把文本字符或小的图像噪声与较大的特征区别开。如果辨别白色区域的尺寸比阈值尺寸小,则在步骤S707确定在以后的表格处理期间应该拒绝白色区域。结果,在利用主题表格内的白色区域的以后处理期间,不考虑白色区域。流程然后继续到步骤S709。
如果在步骤S706,辨别白色区域的尺寸不小于阈值尺寸,则确定白色区域不对应于反相文本,并且流程前进到步骤S709。
在步骤S709,确定在步骤S704辨别的每个白色区域是否已经与阈值尺寸比较。如果没有比较,则流程返回步骤S706,并且按上述进行。如果已经比较,则流程前进到步骤S710。
其次,在步骤S710,确定是否已经分析了表格40的最后行。如果没有,则流程返回步骤S702。然而,如果已经分析了表格40的每一行,则流程前进到步骤S506。
在步骤S506,辨别和抽取附加到表格内网格线上的连通元。用来进行这样的辨别和抽取的系统在上述的美国专利申请No.08/664,674中描述,并且在下面仅简要地进行描述。
在这方面,图8表示在所有侧由可见表格网格线包围的表格50。在表格区域50内有其他的可见表格网格线,完全由黑色像素包围的每个白色区域由虚线辨别。如图8中所示,可见网格线的几根包括经常由较差的打印、较差的扫描等引起的空隙。这些空隙定义部分网格线51、52、和53,也称作附加连通元。由于跟踪白色区域54的点56和58最近,所以抽取连通元52,就是说,把连通元52辨别为与表格区域50的垂直和水平网格线分开的连通元。以相同的方式抽取连通元51和53。下面详细描述抽取的附加连通元的使用。
返回图5,在步骤S507,如相对于步骤S308所描述的那样,根据位于输入文档图像内的每个表格外的连通元,形成文本块和文本行。类似地,在步骤S509,根据位于每个表格内的文本连通元,形成文本块和文本行。最好,在步骤S507,检查文本块,以确定文本块是垂直取向还是水平取向,并且根据确定结果形成文本行。在另一方面,在步骤S509最好形成水平文本行。
在表格内形成的每个文本块下文称作表格单元。在这方面,如上所述,不与表格块内其他文本连通元结合的文本连通元在这里也称作表格单元。其次,在步骤S510,计算表格列,并且把列地址分配给表格单元。
图9a和9b是详细的流程图,用来描述步骤S510的过程。图9a和9b的流程利用表格的垂直直方图,以便辨别表格列,并且便利地忽略可能中断适当列辨别的标题区域。
在这方面,在步骤S901,确定主题表格是否包含多于四个文本行。如果是,则把最顶部文本行假定为标题行,并且在列辨别期间忽略。
例如,如图10中所示,在步骤S901确定表格60包含有多于四行的文本行。于是,流程前进到步骤S902。在步骤S902,计算垂直直方图,如图10b的垂直直方图70。如上所述,计算垂直直方图70,忽略假定是标题的最顶部文本行61。如果在步骤S901的判定是否定的,则流程直接前进到步骤S904,其中计算垂直直方图,而忽略主题表格中的任何文本行。
应该注意,图9a中描述的垂直直方图,对于表格60中的每列像素,反映由矩形(未表示)跨越的总垂直距离,矩形限定表格60内的、且相对于步骤S302和S502描述的每个连通元。例如,诸如网格线64和66之类的垂直和水平网格线不由限定矩形成块,并因此不对垂直直方图70中反映的数据产生影响。然而,还应该注意,在步骤S506辨别和抽取的连通元是“成块的”,并因此反映在根据步骤S904或S902计算的直方图中。例如,附加连通元68由直方图70的部分71反映。
在步骤S905,从直方图70的最左点开始,计算其上计算直方图反映少量黑色像素的距离P_gap、反映较多像素且紧接着P_gap的直方图部分W、及反映少量像素且紧接着W的直方图部分N_gap。例如,P_gap、W、和N_gap初始分别对应于直方图70的区域72、74、和75。然后根据各位置和P_gap、W、及N_gap的尺寸分配列。
根据步骤S906至S916(表示在图9b中),从左向右分析表格。在这方面,步骤S906至S916确定对应于当前W的表格区是否应该包括在当前列中,新列是否应该定义为包括当前W,或新列是否应该定义为忽略当前W。
初始,在步骤S906确定W是否大于阈值,阈值最好反映小的文本字符尺寸。如果大于阈值,则流程前进到步骤S907,其中确定P gap是否是窄的。如果P_gap不是窄的,则流程前进到步骤S917,其中把新列定义为包括W。这种W和P_gap的配置表明在图11a中。
如果在步骤S907确定P_gap是窄的,则流程前进到步骤S909,其中把当前列的定义扩展为包括W。这种情形表示在图11b中。流程然后返回步骤S905。
如果在步骤S906确定W不大于阈值,则流程前进到步骤S910,其中确定P_gap是否是宽的。如果是,则流程前进到步骤S911,其中确定W是否反映切开的连通元,如表格50的连通元52。如果W不反映切开的连通元,则流程前进到步骤S917,其中定义一个包括W的新列,图11c表示这种情形。
如果在步骤S911,确定W反映切开的连通元,如图11d中所示,则在P_gap的左边缘处定义当前列的最右边界,并且流程返回步骤S905,以定义新的P_gap、W、和N_gap。于是,反映的切开连通元不包括在任何定义列中。
返回步骤S910,如果确定P_gap不是宽的,则流程前进到步骤S912。在步骤S912,确定N_gap是否是宽的。如果不是,则流程前进到步骤S914,其中确定当前列是否是主题表格中的第一列。如果是,则流程前进到步骤S917,如上述的那样。这样一种情形反映在图11e中,其中定义当前列以在n_gap的初始点处终止。
如果在步骤S914,确定当前列不是主题表格中的第一列,则流程前进到步骤S915,其中把当前列扩展为包括W。这样一种情形表示在图11f中。流程然后返回步骤S905。
如果在步骤S912确定n_gap是宽的,则流程前进到步骤S916,其中确定W是否反映切开的连通元。如果不是,则流程前进到步骤S915,以便把表示在图11g中的W包括到当前列中。如果在步骤S916的确定是肯定的,则在P_gap的左边缘处定义当前列的最右边界,并且流程简单返回步骤S905,以忽略切开连通元。这样一种情形表示在图11h中。
返回图9a,流程从步骤S917前进到步骤S918。如果反映主题表格的直方图的最右部分已经到达这点处,则流程继续到步骤S920。如果不是,则流程返回步骤S905。
在到达步骤S920时,在主题表格内定义几个列。这些列从左向右顺序地定地址,并且根据左和右X坐标边界定义。在这方面,图12a和12b表示表格76和相应列定义A和B。如图12b中所示,并且由于表格单元79,列A应该分解成两个单独的列。步骤S920和S921意味着解决这种问题。
在步骤S920,检查检测的白色区域和切开垂直网格线的左和右边界,以确定这些特征是否靠近任何定义的列边界布置。如果靠近,则流程继续到步骤S922。如果任何检测的白色边界或切开网格线不靠近列边界,则流程前进到步骤S921,其中绕白色边界或切开网格线定义一个新列。于是然后更新所有列地址。
图12c表示步骤S921之后的表格76的列定义。特别是,因为白色区域78的右边界不靠近任何定义列的边界,所以邻近区域78的右边界定义一个新列B。于是,把以前列B的地址更新到列C。
其次,在步骤S922,给每个表格单元分配一个对应于由表格单元跨越的列位置的列地址。在某些情况下,分配的列地址可以包括一系列列地址。例如,给表格单元77分配列地址A,而给表格单元79分配列地址A至B。流程从步骤S922前进到步骤S511,以便计算表格行地址,并且把行地址分配给表格单元。
图13是详细流程图,描述在步骤S511执行的、以计算表格行和把行地址分配给表格单元的过程步骤。流程在步骤S1301开始,其中建立主题表格的水平直方图。图14表明主题表格80和按照步骤S1301建立的水平直方图86。水平直方图86对于表格80中每行像素,反映由限定表格80内每个连通元的矩形(未表示)跨越的水平距离。
在这方面,直方图86的峰宽pw1反映表格单元81和82,峰宽pw2反映表格单元84,及峰宽pw3反映表格单元83。谷宽vw1和vw2分别指示峰宽pw1与峰宽pw2之间、和峰宽pw2与峰宽pw3之间的区域。
在步骤S1302,初始检查直方图86中的最高峰。具体地说,确定当前行中的初始峰宽pw是否大于阈值,该阈值最好指示最小字符尺寸;及下一个谷宽VW是否大于第二阈值,第二阈值最好指示最小行距。如果满足两个条件,则流程前进到步骤S1304,其中对应于下一个遇到的峰定义一个新的行。如果在步骤S1302不满足条件之一,则流程前进到步骤S1305,其中扩展当前行以便包括下一个遇到的峰。在任何情况下,流程都从步骤S1304和步骤S1305前进到步骤S1306。
在步骤S1306,确定另外的水平直方图是否存在。如果存在,则流程返回步骤S1302。如果不存在,则流程前进到步骤S1307。
在步骤S1307,辨别表格80内的水平白色区域边界和附加的水平网格线。类似于上述的步骤S920至S922,在辨别白色区域边界或网格线不靠近任何行边界的情况下,定义一个新行,并因而更新行地址。流程然后前进到步骤S512。
在步骤S512,计算垂直和水平网格线位置。图15是流程图,详细描述步骤S512的过程步骤。流程在步骤S1501开始,其中确定当前和相邻列是否每个由对应的跟踪白色区域包围。如果是,则流程前进到步骤S1502。在步骤S1502,确定相应白色区域之间的距离。其次,在步骤S1504,如果在步骤S1502确定的距离不小于阈值距离,则流程前进到步骤S1505,其中计算垂直网格线坐标。如果在步骤S1504确定该距离小于阈值,则流程前进到步骤S1506,最好根据与在步骤S1505使用的不同的公式,计算垂直网格线坐标。
如果在步骤S1501确定对应于邻近列的白色区域不存在,则流程前进到步骤S1510,其中使用与在步骤S1505和步骤S1506使用的不同的公式,计算垂直网格线坐标。流程然后前进到步骤S1511,在这里确定更多的列是否存在。如果存在,则流程返回步骤S1501。如果不存在,则流程前进到步骤S1512。
在步骤S1512,使用基本类似于在步骤S1501至S1511描述的那些步骤,计算用于主题表格的水平网格线,尽管转动了90度。
图16表明用来描述图15流程的两个主题表格。相对于图16a,表格90包含列C1和列C2,列C1由X坐标C1L和C1R限定,而列C2由X坐标C2L和C2R限定。跟踪白色区域91对应于列C1,且包含边界b1;而跟踪白色区域92对应于列C2,且包含边界b2。
于是,在步骤S1501,确定对应于邻近列C1和C2的白色区域是否存在。在步骤S1502,确定b1与b2之间的距离。在区域91和92包含共用公共X坐标的区域的情况下,例如在倾斜垂直线分离区域91和92的情况下,把边界b1定义为区域91的最右X坐标,而把b2定义为区域92的最左X坐标。
如果在步骤S1504判定b1与b2之间的距离不是较小,则流程前进到步骤S1505。在一个最佳实施例中,在步骤S1505通过公式min(max(T,C1R),C2L)确定列C1与C2之间的垂直网格线的坐标位置,其中T=max(b1,b2)-1。
如果在步骤S1504判定b1与b2之间的距离较小,则流程前进到步骤S1506,其中计算在min[max((b1+b2)/2,C1R),C2L)]处存在的垂直网格线坐标。
图16b表示其中列C3由坐标C3L和C3R限定、而其中列C4由坐标C4L和C4R限定的表格95。应该理解,因为列C3在两侧不由可见网格线限定,所以对应于列C3不存在白色区域。于是,在使用图15中描述的过程步骤检查列C3和C4作为邻近列的情况下,在步骤S1501的确定是否定的,并且流程前进到步骤S1510。在步骤S1510,由公式min(T,C4L)确定对应于列C3和C4的垂直网格线位置,其中T=max(C3R,b4)-1。
在相对于水平网格线执行步骤S1512之后,流程前进到步骤S514,其中辨别超级单元。图17是详细的流程图,用来描述按照步骤S514的超级单元辨别。在这方面,在步骤S1701,辨别对应于由主题表格内的黑色像素限定的每个白色区域的超级单元。在存在不由跟踪白色区域包围的表格单元的情况下,在步骤S1701还形成具有表格单元的相同位置和尺寸的“人造”超级单元。其次,在步骤S1702,重新格式化每个人造超级单元,以接近包围可见或不可见表格网格线的尺寸。流程然后继续到步骤S1704。
在步骤S1704,检查每个超级单元的顶部、底部、左侧、和右侧边界,以辨别可见网格线是否与边界相邻。流程前进到步骤S1705,其中根据在步骤S510和S511计算的行和列,把行和列地址分配给超级单元。流程从步骤S1705继续到步骤S515。
图18表示主题表格,用来描述图17的流程图。在这方面,表格100包含表格单元101、102、104和105。表格单元101不由白色区域包围着,因为表格单元101没有位于完全由黑色像素包围的区域中。然而,表格单元102、104和105由白色区域106、107和109包围着。
根据图17的流程图,在步骤S1701初始定义对应于表格100内每个白色区域的超级单元。于是,定义对应于白色区域106、107和109的超级单元。这些超级单元在图18b中表示为超级单元115、111和112。如上所述,因为没有白色区域包围着表格单元101,所以还定义一个具有与表格单元101的那些相同的坐标的人造超级单元。
在步骤S1702,根据如下算法重新格式化人造超级单元,以接近包围人造超级单元的可见或不可见表格网格线顶部边界=min(grid(网格)_line(线)_top(顶部),text(文本)_cell(单元)_top(顶部));底部边界=max(grid(网格)_line(线)_bottom(底部),text(文本)_cell(单元)_bottom(底部));左侧边界=min(grid(网格)_line(线)_left(左侧),text(文本)_cell(单元)_left(左侧));右侧边界=max(grid(网格)_line(线)_right(右侧),text(文本)_cell(单元)_right(右侧))。
生成的super(超级)cell(单元)114表示在图18b中。
其次,在步骤S1704,检查每个超级单元,以辨别是超级单元边界的可见网格线。例如,在超级单元114的右侧和底部;在超级单元115的顶部、右侧、左侧和底部;在超级单元112的顶部、右侧、左侧和底部;及在超级单元111的顶部、右侧、左侧和底部;辨别可见网格线。
应该注意,在具体超级单元在具体侧由部分可见网格线邻接的情况下,在步骤S1704确定部分网格线是否超过对应于“完整”边界的长度的_定阈值长度。如果是,则在步骤S1704将确定部分网格线完全邻接具体超级单元的具体侧。
流程从步骤S1704前进到步骤S1705,其中把行和列地址分配给图18b的每个超级单元。在图18b中,超级单元同其各表格单元共用相同的列和行位置。于是,超级单元111、112、114和115还分别共用表格单元104、105、101和102的行和列地址。应该注意,在超级单元位于几个行或列的情况下,超级单元地址将包含行和/或列地址范围,如(1,2-4)。流程然后前进到步骤S515。
在步骤S515,如果适当,则分开具有行和/或列地址范围的表格单元。在这方面,以上过程步骤可能导致跨越几个行或列的表格单元,这些表格单元应该更适当地分类为多表格单元。例如,由图19a、19b、和19c组成的图19,表明具有列地址范围的几个表格单元。类似地,图20表明具有行地址范围的表格单元。在这方面,图21a和21b描述用来分开分别具有列地址范围和行地址范围的表格单元的步骤。
为了分开具有列地址范围的表格单元,流程在步骤S2101开始。在步骤S2101,辨别具有列地址范围的表格单元。其次,在步骤S2102,计算辨别表格单元的垂直直方图。垂直直方图对于辨别表格单元中的每列像素,反映由限定表格单元内每个连通元的矩形(未表示)跨越的总垂直距离。流程前进到步骤S2104,其中确定对应于表格单元的邻近列之间的空隙的直方图的区域是否反映任何黑色像素。如果反映任何黑色像素,则流程继续到步骤S2105。
在步骤S2105,确定对于大于阈值距离的一个连续距离,列之间的区域的直方图是否为零。如果是,则流程前进到步骤S2114,其中确定另外的列是否存在于主题表格的地址范围内。这样一种情形表明在图19a中,其中l指示在列r与r+1之间的直方图的连续非零部分。如果另外的列存在,则流程返回步骤S2104。
当在步骤S2114另外的列不存在的情况下,在步骤S2115确定主题表格是否包含具有列地址范围的另外表格单元。如果是,则流程返回步骤S2102。如果否,则流程继续到图21b的步骤S2116。
图19b表明这样一种情形,其中在图21a的步骤S2105,确定连续非零部分m小于阈值。于是,流程前进到步骤S2106,其中确定分开的非零部分是否位于图19b的列s与s+1之间。如果否,则把表格单元116重新定义为两个新表格单元,一个具有列地址s,而另一个具有列地址s+1,从而两个新单元都不包含部分m。
如果在步骤S2106分开的非零部分位于列s与s+1之间,则流程继续到步骤S2114,并且按上述的那样继续。
在这样一种情况下,在步骤S2104,确定主题表格单元的两列之间的区域不包含黑色像素,则流程前进到步骤S2110。在步骤S2110,把两列之间的区域扩展到两列中,直到在每列中遇到黑色像素。如图19c中所示,在表格单元117的列t与t+1之间的区域n不包含黑色像素。于是,在步骤S2110,在两个水平方向都扩展区域n,直到遇到表格单元117内的黑色像素。生成的区域指示为n’。
在步骤S2111,确定诸如区域n’之类的区域的长度是否大于阈值。如果是,则在步骤S2112把表格单元117分开成两个表格单元,并且流程继续到步骤S2114。如果否,则流程简单地前进到步骤S2114,并且最终到图21b的步骤S2116。
根据本发明,图21b的过程步骤用来分开具有行地址范围的表格单元。在步骤S2116,检索具有行地址范围的主题表格单元。其次,在步骤S2117,检查行地址范围内的两行,以确定行之间的距离和行之间的中点。这两个量由图20中的row_dist和mid_row表示。
在图20中,表格单元包括在其行地址范围内的行R1和行R2。行R1的上边缘由坐标R1U定义,而行R1的下边缘由坐标R1L定义。类似地,行R2的上边缘由坐标R2U定义,而下边缘由坐标R2L定义。如图20中所示,量mid_row是指R1L与R2U之间的中点。此外,量row_dist是指R1L与R2U之间的距离。
其次,在步骤S2119,确定检索的表格单元是否包括位于mid_row相对侧上的连续文本行,及row_dist是否大于阈值尺寸。如果是,则流程前进到步骤S2120,其中在mid_row坐标处把主题表格单元切成两个单元,两个单元之一在其行地址中包含行R1,而另一个单元在其行地址中包含行R2。流程然后前进到步骤S2121。
如果在步骤S2119的判定是否定的,则流程也前进到步骤S2121,其中确定主题表格单元是否包含另外的行。如果包括,则流程返回S2117。如果不包括,则流程继续到步骤S2122,其中确定在主题表格中是否存在具有行地址范围的其他表格单元。如存在,则流程返回S2116。如果不存在,流程继续到步骤S516,以便删除由步骤S510至S515的流程产生的虚假行和列。
图22用来描述步骤S516的过程步骤。例如,如图22a中所示,数字130指示列C5的右边界。右边界130邻接垂直网格线132定位。由于在位于右列边界130与垂直网格线132之间的列C6中不存在连通元,所以通过消除边界130删除列C6。于是,将把网格线132新定义为列C5的最右边界。
图22b表明第二种情形,对于该情形在步骤S516更新列位置。如图22b中所示,倾斜线134已经使列C9定义在左边界135与右边界136之间。于是,通过由在新扩展列C8与C10之间的单个边界(未表示)代替边界135和136来删除列C9。流程从步骤S516继续到步骤S517。
在步骤S517,调节超级单元的行和列地址,以便减少由倾斜表格网格线造成的错误地址分配。例如,图23表明这样一种情形,其中倾斜表格网格线已经引起错误的行和列地址分配。具体地说,倾斜的垂直网格线140与列u和u+1相交,他们分别在其右和左边界处由不可见网格线141定义。由于倾斜线140,超级单元143至145具有(u-u+1)的列地址范围,即使在列u+1内完全存在包含在单元143至145内的黑色像素,也是如此。
在步骤S517估计几种标准,以确定是否应该更新超级单元的列地址以排除最左列。首先,确定位于列u+1内的主题超级单元的左边界是否定位在列u中。第二,确定左边界与网格线141之间的距离是否小于阈值。第三,确定超级单元内的所有连通元是否在网格线141的右侧。第四,确定在主题超级单元的行地址处的列u内是否存在超级单元。如果这四个标准都满足,则从主题超级单元的定义中删除列u,并且重新定义主题超级单元尺寸。
在图23的情况下,超级单元143至145满足以上标准。超级单元143至145的生成重新定义表示在图24中。图24也反映148和149根据以上标准的改进版本的重新定义,该定义用来确定是否应该从超级列地址范围删除最右列。
根据改进的标准,首先确定位于列u内的主题超级单元的右边界是否定位在列u+1中。第二,确定右边界与网格线141之间的距离是否小于阈值。第三,确定超级单元内的所有连通元是否在网格线141的左侧。第四,确定在主题超级单元的行地址处的列u+1内是否存在超级单元。如果这四个标准都满足,则从主题超级单元的定义中删除列u+1,并且重新定义主题超级单元尺寸。
应该理解,能类似地采纳以上标准,以定址向前倾斜的网格线,而不是图23和24向后倾斜的网格线140。在这方面,在步骤S517还使用类似于以上的标准,以调节由倾斜水平线造成的超级单元行地址。
在步骤S517之后执行步骤S519,以便建立虚超级单元,或在“超级单元孔”存在的情况下扩展超级单元。图26是一例子,表示其中产生“超级单元孔”的情形。如图26a中所示,在表格单元160的左侧不存在可见网格线。因此,如相对于图17的方法在以上描述的那样,建立超级单元,并且以不可见网格线作为其左侧和底部的边界。白色区域163由黑色像素包围,因此在步骤S1701对应于白色区域163分配超级单元164。与此不同,由于区域165既不包含连通元又不包含完全由黑色像素包围的白色区域,所以没有把超级单元分配给区域165。
如所述的那样,在超级单元162的下边界与水平网格线161之间、和区域165中存在“超级单元孔”。
图25中表明的流程图用于处理图26a中所示的情形。具体地说,流程在步骤S2501开始,其中把每个超级单元边界扩展到相应的可见网格线。然后在步骤S2504更新超级单元尺寸和边界信息。在步骤S2505,分析主题表格的左侧、右侧、顶部和底部边缘,以确定区域165之类的任何区域是否存在。如果存在,则在步骤S2506建立包围这样区域的每一个的虚超级单元。流程然后前进到步骤S520。如果区域165之类的区域不存在,则流程直接从步骤S2505前进到步骤S520。
在图25步骤的应用程序之后,扩展超级单元162,如图26b中所示。图26b中所示的还有对应于区域165的虚超级单元167。
返回图5中描述的处理,步骤S520包括在“单元孔”存在的情况下建立虚单元的步骤。图27表示包含单元孔的表格。具体地说,表格170尤其包含超级单元172。在超级单元172内的是表格单元174、175和176。根据表格单元174至176的行和列地址、及根据超级单元172的尺寸,确定表格单元从由虚线指示的位置177丢失。这个位置称作单元孔。于是,在步骤S520,在位置177处将定义一个单元。
当然,在步骤S520定义的单元不包含任何连通元。然而,这样一种单元对于定义和迅速复制表格特征是有用的。况且,这样一种单元允许数据容易地在位置177处添加到表示表格170的文件中,因为文件在位置177处将包含预先定义的单元。
图28是根据步骤S521具有可见表格单元边界的表格的例子。具体地说,图28a表示包含表格单元181至186的表格180。还表示的是超级单元187和超级单元188,超级单元187包含表格单元181和182,超级单元188包含表格单元183至186。
在步骤S521,检查每个表格单元,以确定它是否在其顶部、底部、左侧和右侧由可见网格线定界。在这方面,表格单元181定界在其顶部和右侧,表格单元182定界在其右侧和底部,表格单元183定界在其顶部和左侧,表格单元184定界在其左侧和底部,表格单元185定界在其底部和右侧,及表格单元186定界在其项部和右侧。确定信息能与表格单元类型、表格单元行和列地址、及表格单元位置和尺寸的定义一起存储。
图28b是一个例子,用来描述关于包围表格单元的可见边界的存在数据。具体地说,图28b表示代表表格180的每个表格单元的矩阵。如矩阵中所示,并且对应于图28a,图28b中的圆圈指示不可见表格单元边界,而短线指示可见表格单元边界。通过参照在图28b中所示的那样的矩阵,能迅速复制根据本发明分析的表格的内部网格线。
流程从步骤S521继续到步骤S522,其中相对于图3的步骤S310和S311如以上描述的那样进行倾斜检测和后处理。
应该注意,由图5流程确定的信息最好存储在代表主题表格的层次树结构中。在一个最佳实施例中,关于超级单元的数据存储在代表表格块的节点中,如图29a中的节点200,该数据包括超级单元的行和列地址、超级单元坐标、包括在超级单元内的表格单元、及关于超级单元可见边界存在的信息。节点200还存储表格坐标、列和行范围、及可见和不可见垂直和水平网格线的位置。
从节点200向下生长的是表格单元节点202至204。这些表格单元节点包含代表表格单元坐标、表格单元行和列地址、可见表格单元边界的存在的数据,并且包围超级单元存储在代表主题表格单元的节点中。
图29b表示图29a层次树的可选择表示。在图29b的树中,超级单元节点205和206独立于表格节点200定义,并且具有由此向下生长的代表包含在相应超级单元内的表格单元的节点。应该理解,在图29b的树结构中,超级单元节点205和206而不是节点200,包含关于超级单元帧的数据,该数据包括超级单元的列和行地址、超级单元坐标、包括在超级单元内的表格单元、及关于超级单元可见边界存在的信息。
尽管相对于当前认为是其最佳实施例的例子在以上描述了本发明,但要理解,本发明不限于上述的例子。相反,本发明打算覆盖各种改进,并且等效布置包括在附属权利要求书的精神和范围内。
权利要求
1.一种用来在表格的图像上进行块选择处理的方法,表格由行和列组成,并且包括表格单元,其中行和列由可见和不可见网格线定义,该方法包括辨别包括一个或多个表格单元的超级单元,其中根据围绕表格单元和以可见网格线为边界的跟踪白色区域辨别超级单元;确定限定每个表格单元的垂直和水平网格线是可见的还是不可见的;及确定限定每个超级单元的垂直和水平网格线是可见的还是不可见的。
2.根据权利要求1所述的方法,进一步包括步骤检测表格图像内反相文本的区域;计算反映表格图像内连通元的垂直直方图,直方图不反映检测区域内的连通元;根据垂直直方图定义表格图像内的列;及根据跟踪白色区域的位置和相对于定义列的部分网格线,重新定义列。
3.根据权利要求2所述的方法,其中检测反相文本的区域的步骤包括计算反映图像内白色像素的表格图像的水平直方图;辨别在图像内的连续行,在该图像中行中边界像素之间的总距离小于行总长度的一半;检测连续行内的跟踪白色区域;根据跟踪白色区域的尺寸,确定检测的跟踪白色区域是否对应于反相文本。
4.根据权利要求1所述的方法,进一步包括检测表格图像内反相文本的区域;计算反映表格图像内连通元的水平直方图,直方图不反映检测区域内的连通元;根据水平直方图定义表格图像内的行;及根据跟踪白色区域的位置和相对于定义行的部分网格线,重新定义行。
5.根据权利要求4所述的方法,其中检测反相文本的区域的步骤包括计算反映图像内白色像素的表格图像的水平直方图;辨别在图像内的连续行,在该图像中行中边界像素之间的总距离小于行总长度的一半;检测连续行内的跟踪白色区域;根据跟踪白色区域的尺寸,确定检测的跟踪白色区域是否对应于反相文本。
6.根据权利要求1所述的方法,其中,在所述辨别步骤,在第一表格单元不由白色区域包围的情况下,根据第一表格单元的位置和尺寸辨别第一超级单元。
7.根据权利要求6所述的方法,进一步包括在第二超级单元不包括在行和列地址处的表格单元的情况下,辨别在第二超级单元内的行和列地址处的虚表格单元。
8.根据权利要求7所述的方法,进一步包括把关于辨别超级单元的数据存储在层次树结构中,该层次树结构反映表格图像的物理布置。
9.根据权利要求1所述的方法,进一步包括确定对应于相邻列的跟踪白色区域之间的距离;根据确定距离计算对应于相邻列的垂直网格线的位置。
10.根据权利要求9所述的方法,其中在表格图像包括多于四行文本行的情况下忽略表格图像中的最上部文本行。
11.一种存储在表格图像上进行块选择处理的计算机可执行过程步骤的计算机可读介质,表格包括由可见和不可见网格线定义的行和列并且包含表格单元,诸步骤包括辨别步骤,以辨别包括一个或多个表格单元的超级单元,其中根据围绕表格单元和以可见网格线为边界的跟踪白色区域辨别超级单元;确定步骤,以确定限定每个表格单元的垂直和水平网格线是可见的还是不可见的;及确定步骤,以确定限定每个超级单元的垂直和水平网格线是可见的还是不可见的。
12.根据权利要求11所述的存储计算机可执行过程步骤的计算机可读介质,进一步包括检测步骤,以检测表格图像内反相文本的区域;计算步骤,以计算反映表格图像内连通元的垂直直方图,直方图不反映检测区域内的连通元;定义步骤,以根据垂直直方图定义表格图像内的列;及重新定义步骤,以根据跟踪白色区域的位置和相对于定义列的部分网格线,重新定义列。
13.根据权利要求12所述的存储计算机可执行过程步骤的计算机可读介质,其中检测反相文本的区域的步骤包括计算步骤,以计算反映图像内白色像素的表格图像的水平直方图;辨别步骤,以辨别在图像内的连续行,在该图像中行中边界像素之间的总距离小于行总长度的一半;检测步骤,以检测连续行内的跟踪白色区域;确定步骤,以根据跟踪白色区域的尺寸,确定检测的跟踪白色区域是否对应于反相文本。
14.根据权利要求11所述的存储计算机可执行过程步骤的计算机可读介质,进一步包括检测步骤,以检测表格图像内反相文本的区域;计算步骤,以计算反映表格图像内连通元的水平直方图,直方图不反映检测区域内的连通元;定义步骤,以根据水平直方图定义表格图像内的行;及重新定义步骤,以根据跟踪白色区域的位置和相对于定义行的部分网格线,重新定义行。
15.根据权利要求14所述的存储计算机可执行过程步骤的计算机可读介质,其中检测反相文本的区域的步骤包括计算步骤,以计算反映图像内白色像素的表格图像的水平直方图;辨别步骤,以辨别在图像内的连续行,在该图像中行中边界像素之间的总距离小于行总长度的一半;检测步骤,以检测连续行内的跟踪白色区域;确定步骤,以根据跟踪白色区域的尺寸,确定检测的跟踪白色区域是否对应于反相文本。
16.根据权利要求11所述的存储计算机可执行过程步骤的计算机可读介质,其中,在所述辨别步骤,在第一表格单元不由白色区域包围的情况下,根据第一表格单元的位置和尺寸辨别第一超级单元。
17.根据权利要求16所述的存储计算机可执行过程步骤的计算机可读介质,进一步包括一种辨别,以在第二超级单元不包括在行和列地址处的表格单元的情况下,辨别在第二超级单元内的行和列地址处的虚表格单元。
18.根据权利要求17所述的存储计算机可执行过程步骤的计算机可读介质,进一步包括把关于辨别的超级单元的数据存储在层次树结构中的存储步骤,该层次树结构反映表格图像的物理布置。
19.根据权利要求11所述的存储计算机可执行过程步骤的计算机可读介质,进一步包括确定步骤,以确定对应于相邻列的跟踪白色区域之间的距离;计算步骤,以根据确定距离计算对应于相邻列的垂直网格线的位置。
20.根据权利要求19所述的存储计算机可执行过程步骤的计算机可读介质,其中在表格图像包括多于四行文本行的情况下忽略表格图像中的最上部文本行。
21.一种用来分析文档图像的方法,包括输入文档图像;检测文档图像内的连通元;根据检测的连通元和根据表格块图像内的白色区域,辨别表格块;辨别表格块内的反相文本区域;辨别表格内的附加连通元;形成表格块内的文本块和文本行;计算表格图像内的表格行和表格列;把行和列地址分配给表格块内的表格单元;计算垂直和水平表格网格线的位置;定义包括一个或多个表格单元的超级单元,其中根据白色区域辨别超级单元;确定限定每个超级单元的垂直和水平网格线是可见的还是不可见的;分开具有行或列地址范围的表格单元;在倾斜可见网格线存在于表格块内的情况下重新定义行和列地址;根据表格块中的超级单元孔定义超级单元;根据表格块内的单元孔定义虚表格单元;及确定限定每个表格单元的垂直和水平网格线是可见的还是不可见的。
22.一种存储分析文档图像的计算机可执行过程步骤的计算机可读介质,过程步骤包括输入步骤,以输入文档图像;检测步骤,以检测文档图像内的连通元;辨别步骤,以根据检测的连通元和根据表格块图像内的白色区域,辨别表格块;辨别步骤,以辨别表格块内的反相文本区域;辨别步骤,以辨别表格内的附加连通元;形成步骤,以形成表格块内的文本块和文本行;计算步骤,以计算表格图像内的表格行和表格列;分配步骤,以把行和列地址分配给表格块内的表格单元;计算步骤,以计算垂直和水平表格网格线的位置;定义步骤,以定义包括一个或多个表格单元的超级单元,其中根据白色区域辨别超级单元;确定步骤,以确定限定每个超级单元的垂直和水平网格线是可见的还是不可见的;分开步骤,以分开具有行或列地址范围的表格单元;重新定义步骤,以在倾斜可见网格线存在于表格块内的情况下重新定义行和列地址;定义步骤,以根据表格块中的超级单元孔定义超级单元;定义步骤,以根据表格块内的单元孔定义虚表格单元;及确定步骤,以确定限定每个表格单元的垂直和水平网格线是可见的还是不可见的。
全文摘要
一种用于表格图像上的块选择的方法,该表格包括由可见和不可见网格线定义的行和列并且包含表格单元,该方法包括辨别包括一个或多个表格单元的超级单元,其中根据围绕表格单元和以可见网格线为边界的跟踪白色区域辨别超级单元;确定限定每个表格单元的垂直和水平网格线是可见的还是不可见的;及确定限定每个超级单元的垂直和水平网格线是可见的还是不可见的。
文档编号G06T7/60GK1237745SQ9910100
公开日1999年12月8日 申请日期1999年1月5日 优先权日1998年1月5日
发明者王欣元 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1