[发明专利]一种计算机处理复杂表单的方法有效
申请号: | 201711025018.7 | 申请日: | 2017-10-26 |
公开(公告)号: | CN107741924B | 公开(公告)日: | 2020-02-21 |
发明(设计)人: | 路通;吴子涵 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F40/18 | 分类号: | G06F40/18;G06F40/253;G06F40/284;G06F8/20 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 胡建华;于瀚文 |
地址: | 210023 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 计算机 处理 复杂 表单 方法 | ||
1.一种计算机处理复杂表单的方法,其特征在于,执行如下步骤:
步骤1:对表单图像进行预处理;
步骤2:提取出所有表格单元格;
步骤3:分析单元格内信息键值对的逻辑关系,基于ABNF范式设计规则;
步骤4:根据步骤3中设计的规则使用词法分析器Lex和语法分析器Yacc构造编译器;
步骤5:使用设计的语言描述表格单元格,通过解析描述语言得到表格单元格内的逻辑结构;
步骤1包括如下步骤:
步骤1-1,去除表单图像中红色的印章:遍历表单图像中的所有像素点,如果像素点红色通道值大于200且蓝色通道和绿色通道值均小于200,则判定该像素点是印章像素点,令该像素点各通道值均为255;
步骤1-2,对表单进行倾斜校正:提取出表单图像中所有线段,如果线段的左右端点分别是其外接矩形的左上端点和右下端点,则判定该线段是顺时针偏转线段;如果线段的左右端点分别是其外接矩形的左下端点和右上端点,则判定该线段是逆时针偏转线段;筛选出顺时针偏转线段和逆时针偏转线段,组成顺时针偏转线段组和逆时针线段组,计算顺时针线段组中线段偏转正弦值之和,记为:Clockwise,计算逆时针线段组中线段偏转正弦值之和,记为:Counterclockwise,通过如下公式计算线段的正弦值tan:
tan=height/width,
其中,height为线段外接矩形的长度,width为线段外接矩形的宽度;
如果Clockwise大于Counterclockwise则选用顺时针线段组,判定表单顺时针方向倾斜,否则选用逆时针线段组,判定表单逆时针方向倾斜;假设选用的线段组的正弦值之和为tansum,选用线段组中线段个数为m,计算倾斜角度的正弦值tanaverage:
tanaverage=tansum/m,
计算倾斜角度α:
α=tan-1(tanaverage)*180/π,
如果表单逆时针方向倾斜,定义变换矩阵如果表单顺时针方向倾斜,则定义变换矩阵根据变换矩阵对表单作仿射变换,校正表单;
步骤1-3,利用Unsharp Mask锐化算法对表单图像进行锐化;
步骤2包括如下步骤:通过图像形态学操作分别提取出水平线段图和竖直线段图,将水平线段图和竖直线段图转化为灰度图,对两个灰度图像中同一位置像素点进行与操作,通过与操作将两个灰度图像合并为表格图;
步骤3包括如下步骤:
步骤3-1,根据单元格内逻辑结构将单元格分类:单元格内信息键值对只存在一种逻辑关系为简单单元格,单元格内信息键值对存在两种或两种以上的逻辑关系为复杂单元格;
步骤3-2,根据单元格内信息键值对的结构分类:单元格内只存在一组信息键值对,键的几何位置在值的几何位置的上方为单一上下逻辑关系;单元格内只存在一组信息键值对,键的几何位置在值的几何位置的左边为单一左右逻辑关系;单元格内存在两组或两组以上信息键值对,键的几何位置均在值的几何位置的上方为多重上下逻辑关系;单元格内存在两组或两组以上信息键值对,键的几何位置均在值的几何位置的左边为多重左右逻辑关系;
步骤3-3,根据复杂单元格的组成分为三类:第一类,复杂单元格由两个简单单元格组成,两个简单单元格为左右分布或者上下分布;第二类,复杂单元格递归的由一个简单单元格和一个复杂单元格组成,简单单元格和复杂单元格为左右分布或者上下分布;第三类,复杂单元格递归的由两个复杂的单元格组成,两个复杂单元格为左右分布或者上下分布;
步骤3-4,设计键的形式,符合正则表达式key[{},a-z]+的字符串认定为键;
其中,用方括号[和]括起来的成分表示可选的,+表示不定循环,表示方括号中可选字符能够循环1次或无穷次,a-z表示字符a到字符z之间的所有字符;
步骤3-5,设计值的形式,符合正则表达式value[{},a-z]+的字符串认定为键,其中,a-z表示字符a到字符z之间的所有字符;
步骤3-6,设计信息键值对的逻辑关系符号,->表示单一左右关系,=>表示多重左右关系,+>表示单一上下关系,++>表示多重上下关系;
步骤3-7,设计复杂单元格中单元格分布符号,++表示两单元格左右分布,--表示两单元格上下分布;
步骤3-8,基于ABNF范式设计文法规则,规则包括定义单元格类型规则、定义简单单元格键值对逻辑关系规则,定义复杂单元格组成规则,定义键的规则,定义值的规则,定义键值对中逻辑关系规则,定义复杂单元格中单元格分布规则。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711025018.7/1.html,转载请声明来源钻瓜专利网。