用于图像处理的方法、计算机可读记录介质和系统与流程

文档序号:16630515发布日期:2019-01-16 06:31阅读:188来源:国知局
用于图像处理的方法、计算机可读记录介质和系统与流程

本发明涉及图像处理领域,具体涉及用于图像处理的方法、计算机可读记录介质和系统。



背景技术:

图像可以包括具有由手绘线界定(bound)的行和列的表格。例如,图像可以是手绘页面的扫描或在其上使用标记符(marker)手绘有表格的书写板的照片。这些手绘线很少是笔直的,使得图像处理设备难以确定表格的几何形状(例如,左上角、范围、行和列的数目、单元格位置)。这些手绘线也使得难以生成可以被包括在电子文档(例如,文字处理文档、电子表格、幻灯片放映、网页等)中的表格的高级表示。无论如何,用户仍然希望使图像处理设备对图像中的手绘表格或任何表格进行操作。



技术实现要素:

一般而言,在一个方面中,本发明涉及用于图像处理的方法。方法包括以下步骤:获取包括表格的图像;针对该表格生成包括多条边的框架图;识别多条边的多个角度和多个长度;以及基于多个角度和多个长度计算将该表格与模板表格进行比较的排版得分。

一般而言,在一个方面中,本发明涉及计算机程序和其中存储有该计算机程序的计算机可读记录介质(crm)。该计算机程序在被执行时被配置成使计算机执行图像处理,所述图像处理包括以下步骤:存储包括表格的图像;针对该表格生成包括多条边的框架图;识别多条边的多个角度和多个长度;以及基于多个角度和多个长度计算将该表格与模板表格进行比较的排版得分。

一般而言,在一个方面中,本发明涉及用于图像处理的系统。该系统包括:存储器;以及连接至该存储器的计算机处理器,该计算机处理器执行以下步骤:存储包括表格的图像;针对该表格生成包括多条边的框架图;识别多条边的多个角度和多个长度;以及基于多个角度和多个长度计算将该表格与模板表格进行比较的排版得分。

根据以下描述和所附权利要求,本发明的其他方面将变得显见。

附图说明

图1示出了根据本发明的一个或更多个实施方式的系统。

图2示出了根据本发明的一个或更多个实施方式的流程图。

图3a至图3c示出了根据本发明的一个或更多个实施方式的实现示例。

图4a和图4b示出了根据本发明的一个或更多个实施方式的实现示例。

图5a和图5b示出了根据本发明的一个或更多个实施方式的实现示例。

图6示出了根据本发明的一个或更多个实施方式的计算系统。

具体实施方式

现在将参照附图详细描述本发明的具体实施方式。为了一致性,各个图中的相同元素由相同的附图标记表示。

在本发明的实施方式的以下详细描述中,阐述了许多具体细节以便提供对本发明更透彻的理解。然而,对于本领域的普通技术人员来说将显见的是,可以在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细描述众所周知的特征以避免不必要地使描述复杂化。

通常,本发明的实施方式提供用于图像处理的方法、计算机程序、计算机可读记录介质(crm)和系统。具体地,获取包括具有手绘线(例如,标记符或笔划(penstroke))的表格的图像,并且生成该表格的框架(skeleton)(“表格框架”)。框架包括表示表格的边和顶点。基于每条边的长度和角度计算表格的排版(typesetness)得分。排版得分是手绘表格多么接近地类似于模板表格(例如,理论表格或理想表格)的度量,该模板表格具有由具有垂直交点的直线形成的行和列。换言之,排版得分是表格与模板表格的比较。例如,排版得分可以在0和1之间变化,其中0.98的排版得分表示手绘表格和模板表格之间的近似完美的匹配。一旦被计算出,排版得分可以用于紧缩(tighten)或放宽(loosen)用于生成手绘表格的高级表示以包括在电子文档(例如,ooxml文档、pdf文档等)中的各种处理中的某些公差。

图1示出了根据本发明的一个或更多个实施方式的系统(100)。如图1所示,系统(100)具有多个部件,包括例如缓冲器(104)、框架引擎(108)和表格引擎(110)。这些部件(104、108、110)中的每一个可以位于相同的计算设备(例如,个人计算机(pc)、膝上型计算机、平板pc、智能电话、多功能打印机、信息亭(kiosk)、服务器等)上,或者位于通过具有有线和/或无线区段(segment)的任何尺寸的网络连接的不同的计算设备上。下面论述这些部件中的每一个。

在本发明的一个或更多个实施方式中,系统(100)包括缓冲器(104)。缓冲器(104)可以用硬件(即,电路系统)、软件或其任何组合来实现。缓冲器(104)被配置成存储包括具有任意数目的行和列的表格的图像(106)。表格中的每个单元格可以具有文本和/或图形。在一个或更多个实施方式中,图像(106)中的表格是手绘的。因此,界定表格的行和列的手绘线可能不完全水平或完全垂直。可替代地,表格可以是计算机绘制的。可以从任何来源获取(例如,下载、扫描等)图像(106)。此外,图像(106)可以具有任何尺寸和任何格式(例如,jpeg、gif、bmp、png等)。在一个或更多个实施方式中,图像(106)包括书写板(例如黑板、白板等),并且使用标记符在手写板上绘制手绘表格。

在本发明的一个或更多个实施方式中,系统(100)包括框架引擎(108)。框架引擎(108)可以用硬件(即,电路系统)、软件或其任何组合来实现。框架引擎(108)将图像(106)转换成掩码(mask)(例如,二进制图像)以帮助识别表格的行和列。

受益于该详细描述的本领域技术人员将会理解,可以存在图像(106)的标准坐标系。然而,如果在图像(106)内旋转手绘表格,则该标准坐标系的轴与表格的行和列可能不对准。在本发明的一个或更多个实施方式中,框架引擎(108)建立具有与图像(106)中的表格的行和列紧密对准的垂直轴的自定义坐标系。另外地或可替代地,可以旋转表格以更好地将该表格的行和列与图像(106)的标准坐标系对准。

在本发明的一个或更多个实施方式中,框架引擎(108)生成图像(106)中的表格的框架图。框架图包括表示手绘表格的一系列边和顶点。每条边可以对应于表格的笔画或笔画的一部分,以及每个顶点可以对应于两条或更多条边的交点。换言之,边被顶点分开。此外,边可以包含大致位于笔画的中心的从笔画的一端到笔画的另一端的像素路径。在一个或更多个实施方式中,路径的宽度为1个像素。在本发明的一个或更多个实施方式中,路径的宽度为多个像素。

在一个或更多个实施方式中,框架引擎(108)还识别每条边的角度和每条边的长度。可以将边的长度计算为边的两个末端之间的欧几里德距离。另外地或可替代地,也可以通过对边的像素路径内的像素的数目进行计数来识别长度。可以将边的角度计算为自定义坐标系的轴(例如,x轴、y轴等)与穿过该边的两个末端的线之间的角度。在本发明的一个或更多个实施方式中,边的角度可以被四舍五入到0度至179度的范围之间的最接近的度数。

在本发明的一个或更多个实施方式中,系统(100)包括表格引擎(110)。表格引擎(110)可以用硬件(即,电路系统)、软件或其任何组合来实现。表格引擎(110)被配置成计算图像(106)中的表格的排版得分。换言之,表格引擎(110)被配置成确定表格多么接近地类似于具有由直线形成的行和列的模板表格(例如,理论表格)。排版得分是表格与模板表格的比较。如上所述,排版得分可以在0和1之间变化,其中1表示表格和模板表格之间的完美匹配。

在一个或更多个实施方式中,计算排版得分包括将具有相似角度的边分组成群集(例如,区间(bin))。然后,针对每个群集计算群集长度。群集的群集长度是群集中的边的长度之和。计算n个最大群集长度之和。还计算来自所有群集的所有边的长度的总和。排版得分可以对应于n个最大群集长度之和与所有边的长度的总和的比率。例如,n可以等于2或3。n也可以具有其他值。下面参照图2描述计算排版得分。

在一个或更多个实施方式中,表格引擎(110)生成包括在电子文档(例如,ooxml文档、pdf文档等)的组成(makeup)中的表格的高级表示。例如,电子文档可以对应于ooxml文档,以及高级表示可以包括具有正确呈现(即,显示、打印等)表格所需的属性的标签。排版得分可以用于紧缩或放宽用于生成表格的高级表示的各种处理中的某些公差。

在本发明的一个或更多个实施方式中,可以根据进一步的考虑丢弃比最小阈值长度值更短的任何边。可以将最小阈值长度值计算为表格中的所有笔画的平均宽度—其以像素为单位—的两倍。

在一个或更多个实施方式中,表格引擎(110)生成并显示一个或更多个直方图,其中一个轴对应于群集,而另一个轴对应于群集中的总计的边长度。直方图为用户提供表格多么接近模板表格的视觉表示。

虽然系统(100)被示为具有三个部件(104、108、110),但在本发明的其他实施方式中,系统(100)可以具有更多或更少的部件。此外,上述每个部件的功能可以跨部件分割。此外,每个部件(104、108、110)可以被多次利用来执行迭代操作。

图2示出了根据本发明的一个或更多个实施方式的流程图。流程图描绘了用于图像处理的过程。具体地,流程图描述了用于计算表格的排版得分的过程。图2中的步骤中的一个或更多个步骤可以由上面参照图1所论述的系统(100)的部件来执行。在本发明的一个或更多个实施方式中,图2所示的步骤中的一个或更多个步骤可以被省略、重复和/或以与图2所示的顺序不同的顺序被执行。因此,本发明的范围不应被认为限于图2所示的步骤的具体布置。

首先,获取包括表格的图像(步骤205)。可以从任何来源获取(例如,下载、扫描等)图像,并且图像可以具有任何尺寸或格式。例如,图像可以包括书写板,并且在书写板上手绘表格。另外地或可替代地,图像可以是硬拷贝文档的扫描,其中,表格在硬拷贝文档中可见并且表格是计算机生成的。由于手动绘制的笔画的特性和/或扫描过程期间引入的误差,表格的行和列不可能由完全笔直的笔画界定。

在本发明的一个或更多个实施方式中,图像被转换成掩码(例如,二进制图像)以识别表格的每个笔画和/或表格中的文本字符。与表格的笔画对应的像素可以被设置为1,而所有其余像素被设置为0。此外,如上面参照图1所描述的,针对表格建立自定义坐标系。可替代地,可以旋转表格以更好地将表格的行和列与图像的标准坐标系对准。

在步骤210中,针对表格生成框架图。如上所述,框架图可以包括表示表格的边和顶点的集合。每条边可以对应于表格的笔画或笔画的一部分,以及每个顶点可以对应于两条或更多条边的交点。换言之,顶点将边分开。

在步骤215中,识别每条边的角度和每条边的长度。边的长度可以对应于该边的末端之间的欧几里德距离。边的角度可以对应于轴(例如,x轴、y轴等)与穿过该边的两个末端的线之间的角度。

在步骤220中,基于边的角度(例如,角度区间)将边分组成群集。例如,角度在2度和3度之间的所有边可以被分组成相同群集。作为另一示例,角度在89.5度和90.5度之间的所有边可以被分组成相同群集。然后,计算每个群集的群集长度。例如,假设群集具有边:e1、e2、e3、...、ek。群集的群集长度将被计算为e1的长度+e2的长度+e3的长度+...+ek的长度。

在步骤225中,生成直方图,并且该直方图在一个轴上填充有群集而在另一个轴上填充有群集长度。在一个或更多个实施方式中,步骤225是可选的。直方图为用户提供表格与模板表格多么接近的视觉表示。

在步骤230中,使用群集长度和所有边的所有长度的总和来计算表格的排版得分。具体地,排版得分可以是n个最大群集长度与总和的比率。如果n=2,排版得分=(cl1+cl2)/(所有边的所有长度的总和),其中,cl1和cl2是两个最大群集长度。

受益于该详细描述的本领域技术人员将理解,如果手绘表格接近地类似于模板表格(即,具有以90度相交的完全笔直线条的理论表格),则大部分边将具有0度或90度的角度。因此,包括零度的群集和包括90度的群集将具有最大群集长度。此外,由于这两个群集包括大部分(可能全部)边,所以这两个群集的群集长度之和将几乎等于所有边的所有长度之和。因此,对于这样的表格,排版得分将接近于1。

虽然未在图2中示出,但是在步骤230之后,可以使用排版得分来调整生成表格的高级表示以包括在电子文档(例如,ooxml文档、pdf文档等)中的各种处理中的各种公差。

图3a至图3c示出了根据本发明的一个或更多个实施方式的实现示例。如图3a所示,存在具有手绘表格(308)的图像(306)。具体地,表格(308)包括形成行和列的手绘笔画。表格(308)中的一个或更多个单元格可以包括文本。手绘表格(308)可以以一定角度被绘制。换言之,表格(308)不与图像(306)的标准坐标系(399)对准。

图3b示出了其被转换成掩码之后的图像(310)。此外,已经建立了自定义坐标系(312)。该自定义坐标系(312)具有比标准坐标系(399)更好地与表格(308)的行和列对准的轴。

图3c示出了表格的部分框架图(314)。如图3c所示,表格的行和列由多个手绘笔画(316)形成。框架图(314)包括表示手绘表格的一组边(395)和顶点。每条边(395)对应于手绘表格的笔画(316)或笔画的一部分,以及每个顶点可以对应于两条或更多条边(395)的交点(318)。换言之,边(395)被顶点分开。此外,每条边(395)包含大致位于笔画的中心的从笔画(316)的一端到笔画(316)的另一端的像素路径。在图3c中,路径/边的宽度为1个像素。

图4a和图4b示出了根据本发明的一个或更多个实施方式的实现示例。

图4a示出了类似于如上面参照图3a至图3c所论述的手绘表格(308)的图像(310)和框架图(314)的手绘表格(402)的掩码和框架图。如上面参照图2所论述的确定手绘表格的排版得分的方法被应用于手绘表格(402)。

图4b示出了如上面参照图2所描述的直方图(403)。在确定手绘表格(402)的框架图的每条边的角度和每条边的长度之后生成直方图(403)。直方图(403)的x轴对应于边的群集(406)。具体地,每个群集具有角度相同或相似的边。直方图(403)的y轴对应于每个群集(406)的群集长度(404)。如上所述,群集的群集长度是群集中的边的长度之和。

对于图4a和图4b的示例,假设仅使用前两个群集长度(即,n=2)来计算手绘表格(402)的排版得分。如图4b所示,前两个群集长度与角度等于(或近似等于)0度或1度的边相关联。这前两个群集长度之和为26,297。来自所有群集的所有边的长度总和为38,523。因此,手绘表格(402)的排版得分为26297/38523=0.68。

图5a和图5b示出了根据本发明的一个或更多个实施方式的实现示例。

图5a示出了具有表格(502)的图像的掩码和框架图。该图像是硬拷贝文档的扫描(即,表格(502)在硬拷贝文档中可见)。与图4a的表格不同,表格(502)由计算机生成,因此与模板表格紧密匹配。

图5b示出了表格(502)的如上面参照图2所描述的直方图(503)。在确定表格(502)的框架图中的每条边的角度和每条边的长度之后生成直方图(503)。直方图(503)的x轴对应于边的群集(506)。具体地,每个群集具有角度相同或相似的边。直方图(503)的y轴对应于每个群集(506)的群集长度(504)。如上所述,群集的群集长度是群集中的边的长度之和。

对于图5a和图5b的示例,假设仅使用前两个群集长度(即,n=2)来计算表格(502)的排版得分。如图5b所示,前两个群集长度与角度等于(或近似等于)0度或90度的边相关联。这前两个群集长度之和为44,349。来自所有群集的所有边的长度总和为44,762。因此,表格(502)的排版得分为44349/44762=0.99。毫不奇怪,这与模板表格几乎完美匹配。事实上,误差很可能是由于扫描过程期间的模糊造成的。

不管所使用的平台如何,本发明的实施方式实际上都可以在任何类型的计算系统上实现。例如,计算系统可以是一个或更多个移动设备(例如,膝上型计算机、智能电话、个人数字助理、平板计算机或其他移动设备)、台式计算机、服务器、服务器机箱中的刀片或至少包括最小处理能力、存储器以及输入和输出设备以执行本发明的一个或更多个实施方式的任何其他类型的(一个或更多个)计算设备。例如,如图6所示,计算系统(600)可以包括一个或更多个计算机处理器(602)、相关联的存储器(604)(例如,随机存取存储器(ram)、高速缓冲存储器、快闪存储器等)、一个或更多个存储设备(606)(例如,硬盘、诸如紧致盘(cd)驱动器或数字多功能盘(dvd)驱动器的光盘驱动器、快闪存储器棒等)以及很多其他元件和功能。计算机处理器(602)可以是用于处理指令的集成电路。例如,计算机处理器可以是处理器的一个或更多个核或者微核。计算系统(600)还可以包括一个或更多个输入设备(610),例如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔或任何其他类型的输入设备。此外,计算系统(600)可以包括一个或更多个输出设备(608),例如屏幕(例如,液晶显示器(lcd)、等离子体显示器、触摸屏、阴极射线管(crt)监视器、投影仪或其他显示设备)、打印机、外部存储装置或任何其他输出设备。输出设备中的一个或更多个可以与输入设备相同或不同。计算系统(600)可以经由网络接口连接(未示出)连接至网络(612)(例如,局域网(lan)、诸如因特网的广域网(wan)、移动网络或任何其他类型的网络)。输入和输出设备可以本地或远程(例如,经由网络(612))连接至计算机处理器(602)、存储器(604)和存储设备(606)。存在很多不同类型的计算系统,并且上述输入和输出设备可以采取其他形式。

用于执行本发明的实施方式的呈计算机程序形式的软件指令可以全部或部分地、暂时或永久地存储在诸如cd、dvd、存储设备、软盘(diskette)、磁带、快闪存储器、物理存储器或任何其他计算机可读存储介质的计算机可读介质上。具体地,软件指令可以对应于计算机可读程序代码,计算机可读程序代码当由处理器执行时被配置成执行本发明的实施方式。

此外,上述计算系统(600)的一个或更多个元件可以位于远程位置处并且通过网络(612)连接至其他元件。此外,本发明的一个或更多个实施方式可以在具有多个节点的分布式系统上实现,其中,本发明的每个部分可以位于分布式系统内的不同节点上。在本发明的一个实施方式中,节点对应于不同的计算设备。可替代地,节点可以对应于具有相关联的物理存储器的计算机处理器。可替代地,节点可以对应于具有共享的存储器和/或资源的计算机处理器或计算机处理器的微核。

虽然已经参照有限数目的实施方式描述了本发明,但是受益于本公开内容的本领域技术人员将会理解,可以设计出不偏离如本文所公开的本发明的范围的其他实施方式。因此,本发明的范围应当仅由所附权利要求来限定。

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