关于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.表格排序可以根据识别到的表格然后计算中心位置进行排序。
相关推荐
IT_陈寒25 分钟前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
SamDeepThinking1 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
Asize2 小时前
多模态生图:从 Vite 工程化到前端调用 Qwen Image
javascript·人工智能·后端
java小白小2 小时前
SpringBoot(09):缓存实战——穿透、雪崩、击穿的解决方案
后端
java小白小2 小时前
SpringBoot(08):Redis 集成——5 分钟给你的项目加上缓存
后端
用户938515635072 小时前
从 O(n²) 到 O(nlogn):一文读懂快速排序的“快”与“妙”
javascript·算法
LiuMingXin2 小时前
意图与代码之间:AI编程范式全景解读
前端·后端·面试
用户34232323763173 小时前
边缘计算与云边协同——当采集不再只是“上传“
后端
壹方秘境3 小时前
ApiCatcher支持抓包HTTP传输大文件的实现原理分享
前端·后端·客户端
神奇小汤圆3 小时前
2026最新·最全·最实用|Java岗面试真题(已收录GitHub)
后端