一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种表格合并单元格检测方法与流程

2022-05-27 00:22:46 来源:中国专利 TAG:


1.本发明涉及图像表格识别技术领域,尤其涉及一种表格合并单元格检测方法。


背景技术:

2.随着计算机技术的快速发展,电子文档的使用越来越普及,而且由于纸质文档易损毁、不易保存等问题,经常需要将纸质文档转化为数字形式,并存储在计算机中。例如,可以通过拍照或扫描等技术,将纸质文档转变为数字图像,再利用图像处理与光学字符识别(opticalcharacterrecognition,ocr)等技术,识别数字图像中的文字,以进行进一步的编辑或其它应用。在这些的纸质文档资料中,有一类特殊的资料文档——表格文档,例如银行流水单,增值税发票,公司报表等等,其在我们的日常生活工作有着非常广泛的应用。文档表格线将整个文档划分为不同区域,是文档版面分析与识别信息结构化处理的重要的依据,因此对文档图像表格线的检测与去除的研究具有重要意义。
3.对于某些表格由于某一列过窄,而该列某个单元格内容远长于该列其他单元格,导致改单元格存在换行,需要用两行。在检测识别表格过程中,这两行理应合并,目前并没有合适的解决方法。


技术实现要素:

4.鉴于目前图像表格识别技术领域存在的检测时无法合并占用两行或多行生成表格的问题,本发明提供一种表格合并单元格检测方法,能够根据检测出的某行第一列投影远低于其他行的第一列,判断该单元格不存在文字,并将其与上一行合并输出合并后的表格结构。
5.为达到上述目的,本发明的实施例采用如下技术方案:
6.一种表格合并单元格检测方法,所述方法包括以下步骤:
7.获取含表格的图像;
8.图像二值化处理获得二值图像;
9.对二值图像进行识别获得表格结构的所有框线和交点集;
10.通过交点集得到单元格集;
11.在第一列中,以单元格为单位计算每个单元格的灰度值的平均值,得到第一列单元格灰度值的平均值集;
12.计算平均值集中所有元素值的中位数;
13.将平均值集中每一个元素的值与中位数的预定倍数进行比较,若元素值小于中位数的预定倍数,则判断该元素值所对应的行的行首没有文本,并将该行与上一行进行合并;
14.输出合并完成的表格结构。
15.依照本发明的一个方面,所述对二值图像进行识别获得表格结构的所有框线和交点集包括:通过表格识别算法对二值图像进行识别,获得表格单元格结构,得到水平线集和垂直线集。
16.依照本发明的一个方面,所述对二值图像进行识别获得表格结构的所有框线和交点集包括:利用水平线集和垂直线集求出每条水平线段和每条垂直线段的交点,得到交点集。
17.依照本发明的一个方面,所述通过交点集得到单元格集,包括:将单元格集表述为cell,cell(i,j)表示第i行第j列的单元格,设共有n行m列的单元格;hcelli表示第i行所有单元格,vcellj表示第j列所有单元格,hi表示第i行单元格的行高,wj表示第j列单元格的列宽。
18.依照本发明的一个方面,所述在第一列中,以单元格为单位计算每个单元格的灰度值的平均值,得到第一列单元格灰度值的平均值集包括:将vcell1中第i行第j列的像素点的灰度值用pix(i,j)表示。
19.依照本发明的一个方面,所述在第一列中,以单元格为单位计算每个单元格的灰度值的平均值,得到第一列单元格灰度值的平均值集包括:在vcell1中以单元格为单位,从第1个单元格开始,计算每个单元格的灰度值的平均值,得到第一列单元格灰度值的平均值集pa,pai表示第i个单元格灰度值的平均值,即:
[0020][0021]
pa={pai|1≤i≤n}。
[0022]
依照本发明的一个方面,将平均值集中每一个元素的值与中位数的预定倍数进行比较,若元素值小于中位数的预定倍数,则判断该元素值所对应的行的行首没有文本包括:逐个查找集合pa中所有的元素,若存在元素pai小于pam乘以阈值(预定倍数)threshold,即若:
[0023]
pai《pam*threshold
[0024]
则判断为该行行首没有文本。
[0025]
依照本发明的一个方面,所述获得表格结构的所有框线包括获得水平线集horizontal和垂直线集vertical,horizontali为horizontal中第i条直线,verticalj为vertical中第j条直线;hx1i表示horizontali的起点的横坐标,hy1i表示horizontali起点的纵坐标,hx2i表示horizontali终点的横坐标,hy2i表示horizontali终点的纵坐标;vx1j表示verticalj起点的横坐标,vy1j表示verticalj起点的纵坐标,vx2j表示verticalj终点的横坐标,vx2j表示verticalj终点的纵坐标。
[0026]
依照本发明的一个方面,所述将该行与上一行合并的具体公式为:
[0027]
hx1i=hx1
i-1
[0028]
hx2i=hx2
i-1
[0029]
horizontal=horizontal-horizontali[0030][0031]
依照本发明的一个方面,所述输出合并完成的表格结构包括:以一定格式将合并完成的表格结构输入到后缀为json的文档中。
[0032]
本发明实施的优点:
[0033]
以表格第一列为依据,若该列某个单元格不存在内容,说明该单元格所处的行的其他列存在“单元格内容远长于该列其他单元格内容的而导致需要占据两行的情况”。在检
测出的某行第一列投影远低于其他行的第一列,则认为该单元格不存在文字,因此将其与上一行合并;可以避免将其它列占用多行的单元格分割开来,避免导致表格后期处理出现问题,使得表格识别更准确。
附图说明
[0034]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]
图1为本发明所述的表格合并单元格检测方法流程框图。
具体实施方式
[0036]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]
如图1所示,一种表格合并单元格检测方法,所述方法包括以下步骤:
[0038]
步骤s1:获取含表格的图像;
[0039]
在本步骤中,可通过扫描或拍照等获得包含表格的表格图像,图像可为rgb或任意图像格式。本实施例中,设获取的表格图像io,图像高度为h,图像宽度为w。
[0040]
步骤s2:图像二值化处理获得二值图像;
[0041]
首先对无线框表格图像io进行二值化处理为二值图像ig,具体为:利用图像二值化算法,将获取到的无线框表格图像io由原来的rgb图像转化为二值灰度图像ig。
[0042]
步骤s3:对二值图像进行识别获得表格结构的所有框线和交点集;
[0043]
所述步骤s3对二值图像进行识别获得表格结构的所有框线和交点集可通过多种识别算法进行识别处理,例如,中国专利zl201910161725.1中描述的表格线识别方法,可以用来在本实施例中对二值图像进行识别获得表格结构的所有框线;还可采用诸如中国专利zl 201911375389.7中描述的表格识别方法,可以用来在本实施例中对二值图像进行识别获得表格结构的所有框线。其它本领域公开的表格识别算法均可用来在本实施例中识别获取表格框线。所述框线包括水平线集和垂直线集。
[0044]
而在本实施例中,步骤s1~步骤s3采用的是以下技术方案实现表格结构的识别:
[0045]
一种无线框表格图像表格结构识别方法,所述方法包括以下步骤:
[0046]
步骤s100:获取无线框表格图像;
[0047]
在本步骤中,可通过扫描或拍照等获得无线框的表格图像,图像可为rgb或任意图像格式。本实施例中,设获取的无线框表格图像io,图像高度为h,图像宽度为w。
[0048]
步骤s200:对图像进行处理转换为二值图像;
[0049]
首先对无线框表格图像io进行二值化处理为二值图像ig,具体为:利用图像二值化算法,将获取到的无线框表格图像io由原来的rgb图像转化为二值图像ig,将ig中第i行第j列的像素点的灰度值用pix(i,j)表示。
[0050]
步骤s300:将二值图像单行的像素点的像素值累加,得到二值图像的行投影;
[0051]
步骤s301:将ig第i行的像素点的像素值累加得到ig这一行的行投影,记为hpi,可表示为如下公式:
[0052][0053]
pix(i,j)为ig中第i行第j列的像素点的灰度值。
[0054]
步骤s302:对ig每行重复步骤s301进行投影,得到ig每行的行投影,称之为二值图像的行投影,简称为行投影,记为hp,集合hp可表示为:
[0055]
hp={hpi|i=0,1,...(h-1)}
[0056]
步骤s400:将二值图像单列的像素点的像素值累加,得到二值图像的列投影;
[0057]
步骤s401:将ig第j列的像素点的像素值累加得到ig这一列的列投影,记为vpi,可表示为如下公式:
[0058][0059]
步骤s402:对ig每列重复步骤s401,得到ig每列的列投影,称之为二值图像的列投影,简称为列投影,记为vp,集合vp可表示为;
[0060]
vp={vpj|j=0,1,...(w-1)}
[0061]
在实际应用中,所述步骤s300和步骤s400可同步执行或任意顺序先后执行。
[0062]
步骤s500:对行投影进行扫描获得行波峰和行波谷;
[0063]
所述步骤s500对行投影进行扫描获得行波峰和行波谷包括:对行投影逐行进行扫描,根据行投影值的大小,将行投影值小于第一阈值的连续区间作为行波谷,除了行波谷的其他区域作为行波峰。
[0064]
在本实施例中,具体包括:对行投影逐行进行扫描,根据行投影值的大小,将行投影值小于阈值fhth的连续区间称为行波谷区域,简称为行波谷,记为htrough。除了行波谷的其他区域称为行波峰区域,简称为行波峰,记为hpeak。集合htrough和集合hpeak分别可表示为:
[0065]
htrough={(hp1i,hp2i)|i=0,1,...,(h-1)∩hp1i《hp2i《fhth}
[0066]
hpeak=hp-htrough。
[0067]
步骤s600:对列投影进行扫描获得列波峰和列波谷;
[0068]
所述步骤s600所述对列投影进行扫描获得列波峰和列波谷包括:对列投影逐列进行扫描,根据列投影值的大小,将列投影值小于第二阈值的连续区间作为列波谷,除了列波谷的其他区域作为列波峰。
[0069]
在本实施例中,具体包括:对列投影逐列进行扫描,根据列投影值的大小,将行投影值小于阈值fvth的连续区间称为列波谷区域,简称为列波谷,记为vtrough。除了列波谷的其他区域称为列波峰区域,简称为列波峰,记为vpeak;
[0070]
vtrough={(vp1j,vp2j)|j=0,1,...,(w-1)∩vp1j《vp2j《fvth}
[0071]
vpeak=vp-vtrough。
[0072]
在实际应用中,所述步骤s500和步骤s600可同步执行或任意顺序先后执行。
[0073]
步骤s700:根据行波谷和列波谷计算表格线位置得到表格结构。
[0074]
在本实施例中,所述根据行波谷和列波谷计算表格线位置得到表格结构包括以下步骤:
[0075]
步骤s701:以行波谷和列波谷的中点分别为该无线框表格图像的水平线段和垂直线段的纵坐标和横坐标;
[0076]
步骤s702:将水平线段和垂直线段分别从已知的纵坐标和横坐标进行延伸,若线段经过区域存在文本,则将线段分成两段,得到水平线集和垂直线集;
[0077]
步骤s703:利用水平线集和垂直线集求出每条水平线段和每条垂直线段的交点,得到交点集;
[0078]
在本实施例中,具体计算过程可为:
[0079]
以行波谷和列波谷的中点分别为该无线框表格图像的水平线段和垂直线段的纵坐标y和横坐标x;
[0080]
将水平线段和垂直线段分别从已知的y坐标和x坐标进行延伸,若线段经过区域存在文本,则将线段分成两段,得到水平线集horizontal和垂直线集vertical;
[0081]
设n为horizontal中元素个数,m为vertical中元素个数。horizontali为horizontal中第i条直线,verticalj为vertical中第j条直线;
[0082]
hx1i表示horizontali的起点的横坐标,hy1i表示horizontali起点的纵坐标,hx2i表示horizontali终点的横坐标,hy2i表示horizontali终点的纵坐标;
[0083]
vx1j表示verticalj起点的横坐标,vy1j表示verticalj起点的纵坐标,vx2j表示verticalj终点的横坐标,vx2j表示verticalj终点的纵坐标;
[0084]
利用horizontal和vertical求出每条水平线段和每条垂直线段的交点,得到交点集p;
[0085]
步骤s4:通过交点集得到单元格集;
[0086]
根据单元格由4个顶点构成,通过交点集得到单元格集,包括:将单元格集表述为cell,cell(i,j)表示第i行第j列的单元格,设共有n行m列的单元格;hcelli表示第i行所有单元格,vcellj表示第j列所有单元格,hi表示第i行单元格的行高,wj表示第j列单元格的列宽。
[0087]
步骤s5:在第一列中,以单元格为单位计算每个单元格的灰度值的平均值,得到第一列单元格灰度值的平均值集;
[0088]
将vcell1中第i行第j列的像素点的灰度值用pix(i,j)表示。
[0089]
在vcell1中以单元格为单位,从第1个单元格开始,计算每个单元格的灰度值的平均值,得到第一列单元格灰度值的平均值集pa,pai表示第i个单元格灰度值的平均值,即:
[0090][0091]
pa={pai|1≤i≤n}。
[0092]
步骤s6:计算平均值集中所有元素值的中位数;
[0093]
计算出集合pa中所有元素值的中位数pam。
[0094]
步骤s7:将平均值集中每一个元素的值与中位数的预定倍数进行比较,若元素值小于中位数的预定倍数,则判断该元素值所对应的行的行首没有文本,并将该行与上一行
进行合并;
[0095]
具体为:逐个查找平均值集中所有的元素,若存在元素值小于中位数的预定倍数,则判断该行行首没有文本;包括:逐个查找集合pa中所有的元素,若存在元素pai小于pam乘以阈值(即预定倍数)threshold,阈值threshold即为预定倍数,也就是:
[0096]
若pai《pam*threshold
[0097]
则判断为该行行首没有文本;
[0098]
所述将该行与上一行进行合并的具体公式为包括:将该行与上一行之前的水平线从horizontal集合中移除;所述将该行与上一行之前的水平线从horizontal集合中移除的具体表达式为:
[0099]
hx1i=hx1
i-1
[0100]
hx2i=hx2
i-1
[0101]
horizontal=horizontal-horizontali。
[0102]
步骤s8:输出合并完成的表格结构。
[0103]
所述输出合并完成的表格结构包括:以一定格式将合并完成的表格结构输入到后缀为json的文档中。
[0104]
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0105]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0106]
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0107]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0108]
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所
包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0109]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0110]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献