栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

表格图像提取-基于传统交点方法和Tesseract-OCR

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

表格图像提取-基于传统交点方法和Tesseract-OCR

本文应用传统交点方法来提取框线表格,主要是针对存在合并单元格的表格,并用tesseract-ocr来做了文字识别,主要难点是前者的提取部分,现将部分方法分享给大家。

建议各位可以先去看其他博主针对简单表格的提取方法,再来看这篇,因为我省略了很多内容,主要讲方法,不建议之前完全没了解过的朋友来看,推荐一篇:

python-opencv表格识别_我想问问天的博客-CSDN博客_opencv 表格识别

由于想恰饭,挣一下毕业旅行的费用,故只将部分内容分享,还望理解,同时也是本人第一次发文章,如有不到位的地方,还望指出。


一、表格提取的难点 1.合并单元格

我查看了许多发表在csdn上的博文,传统方法就是利用框线相交,获得交点以此来提取单元格,但是大多数都是针对简单的表格,在实际的办公生活中,我们更多的遇见存在合并单元格的复杂表如下图,那么就需要一套复杂的方法提取。

2.图像处理

图像的预处理是至关重要的一步,必须要减少图像中存在的各类干扰,目的是将能够准确提取交点,整个提取过程,都是依照交点坐标进行的,图像预处理可参考其他博主的,一般情况需要进行图像二值化、灰度化、去噪、锐化等处理......

举个例子:存在某些图像,其框线的交接部分并没有连接,不能提取出交点,那就可以利用Opencv库中的方法,将检测出来的框线延长一些,使得能得到交点,如下图。

此图进行过二值化
横线和竖线都延长了
​

因为图像处理部分至关重要,将影响之后的表格结构提取和文字识别,所以需要各位不断去调试,以达到理想效果,我认为这也是传统方法的局限性,所以当前热门的都是用深度学习的方法。

二、表格提取过程

图像预处理完成后,就来到了本文章的主要内容——提取表格结构

整个提取过程分为两步:

        1.交点分类

        2.依据交点类别进行表格提取


1.交点分类

这是一张原始图片,存在合并单元格的情况,因为这篇文章重要讲述方法,不讲太多图像处理过程,所以使用了清晰度高的图像,但是必须要强调图像预处理的重要性。

(1)经过二值化、灰度化之后

 (2)提取横线和竖线,经过腐蚀膨胀,故线条比原图要长一些

 (3)将横线和竖线叠加,目的是获得交点

 (4)经过叠加,则获取了交点,标记为黑点

 (5)进行交点分类,首先标识出代表每个单元格的标志点,例如下图单元格中,p1点则为标志点,即代表当前单元格。

P1为标志点

 以上述信息,即可将图中交点进行初次分类,其中标志点为红色点:

 当前分类远远不够,仍不能将表格单元格很好提取,需要再次进行分类,保留红色点,以及表格最下和最右上的点的颜色,其余点设为绿色,如图:

(6)按照不同颜色类型的交点,设计一套方法,即可将每个单元的区域位置得到。

 (7)接下来的步骤就是将截取的各个单元格保存在文件夹中,记录单元格位置信息,为之后的表格结构还原和文字识别做准备。

2.依据交点类别进行表格提取

由于本穷学生想恰饭,故没有将核心具体方法给出,如果有感兴趣的朋友,可以私聊,我可以给项目代码,也可以通过ppt讲演整个过程,希望各位轻骂,总而言之,穷是原罪。

3.实际演示
过程界面
经过图像预处理后
完成交点分类

依据设计算法,获得各个单元格区域

表格还原以及经过文字识别后的最终成果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号