关于opencv提取表格的方式总结

1.开头闲谈

最近闲下时间在学习和写的表格识别的demo。很久前用java玩了下opencv后面也就是在网上找些例子写写demo,然后用过python和go搞了下hello world(可以看下我的其他文章);但也就是了解下常用的api一段时间不用就忘记了;用go的过程接触了paddleocr又是靠java吃饭的,后来想了下就打算用java写个完整可以用的表格识别demo,不知道今年是否能完成因为今年工作上的事可能要忙很多,但愿这个表格识别的小系统能够有个雏形。下面说下表格识别最近总结一些提取处理思路。

2.识别方式

直接标记定制方式

根据坐标来提取数据是定制提取很通用的一种手段也是最简单的,缺点也是有的就是对图片的宽高比是需要一致的不然内容定位就会出现问题。

思路:就是提前计算好图片中想要提取数据的位置比例,然后进行截图提取识别。可以看下前面写的一篇文章java调用opencv身份证号识别 里面的对证件照号的提取部分采用的就是这种方式,里面参考的原始文章连接,里面有对身份证其他内容的提取也是采用的这种方式。

win下面我看了下画图有坐标点位置的标记可以手工处理想要的位置(对角线坐标就可以了。

简单坐标定位识别

因为表格简单不复杂的情况下做到通用需要先识别到表格中的线条,当然图片也是有的干扰的和一些小细节需要处理的。

思路:就是检测表格中的横线和竖线,排序然后交叉得到坐标点就可以截图提取。前面写的一篇文章里面对这种的实现步骤详细的写了。 java简单的表格识别

复杂表格的识别

这里复杂主要是有单元格合并的处理,这个我感觉也是需要对于特定一类需求需要进行特定的处理就是所谓的模板处理(主要就是想要的数据对应),因为对于合并的单元格做到通用有点复杂主要是说生成excel。另外对应表格外的内容需要结合第一个识别的方式,下面是一个回单具体内容就不贴了,在表格的上面有(币别、时间、流水号。

思路:

  • 0.因为原始图片比较大需要白板也比较多需要进行截取,有些也有可能需要进行等比缩放
  • 1.然后进行轮廓识别。
  • 2.过滤可以根据面积过滤掉字体部分。
  • 3.然后需要根据表格进行排序,根据特定一类需求进行数据提取。
  • 4.表格排序可以根据识别到的表格然后计算中心位置进行排序。
相关推荐
kong@react13 分钟前
spring boot配置es
spring boot·后端·elasticsearch
Morriser莫18 分钟前
图论Day2学习心得
算法·图论
dl74323 分钟前
一文看懂spring事件监听器
后端
zyd091524 分钟前
代码随想录Day50:图论(图论理论、深度搜索理论、所有可达路径、广度搜索理论)
java·数据结构·算法·leetcode·图论
Bunny021227 分钟前
RBAC权限管理模型中的部门角色绑定方案优化
后端
Cl_rown去掉l变成C28 分钟前
第R5周:天气预测
人工智能·python·深度学习·算法·tensorflow2
小镇cxy34 分钟前
开发者的新“超能力”——Claude Code 全面解析与使用指南
后端·claude
费益洲34 分钟前
Docker 核心技术:Namespace
后端
CF14年老兵42 分钟前
从JS到Python:一个前端开发者的丝滑转型之路
前端·后端·trae
小王爱学人工智能1 小时前
OpenCV中对图像进行平滑处理的4种方式
人工智能·opencv·计算机视觉