关于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.表格排序可以根据识别到的表格然后计算中心位置进行排序。
相关推荐
程序员清风4 分钟前
猿辅导二面:线上出现的OOM是如何排查的?
java·后端·面试
liu****9 分钟前
能源之星案例
人工智能·python·算法·机器学习·能源
2501_9011478319 分钟前
环形房屋打家劫舍算法
考研·算法·leetcode·高考
kkoral23 分钟前
Python 肢体动作追踪项目(基于 MediaPipe + OpenCV)
python·opencv·meidiapipe
智驱力人工智能27 分钟前
守护矿山动脉 矿山皮带跑偏AI识别系统的工程化实践与价值 皮带偏离检测 皮带状态异常检测 多模态皮带偏离监测系统
大数据·人工智能·opencv·算法·安全·yolo·边缘计算
智驱力人工智能36 分钟前
构筑安全红线 发电站旋转设备停机合规监测的视觉分析技术与应用 旋转设备停机检测 旋转设备异常检测 设备停机AI行为建模
人工智能·opencv·算法·安全·目标检测·计算机视觉·边缘计算
宵时待雨43 分钟前
数据结构(初阶)笔记归纳2:顺序表的实现
c语言·数据结构·笔记·算法
寻星探路43 分钟前
【算法进阶】滑动窗口与前缀和:从“和为 K”到“最小覆盖子串”的极限挑战
java·开发语言·c++·人工智能·python·算法·ai
DCTANT1 小时前
【原创】使用更优雅的方式改造MyBatisPlus逻辑删除插件
spring boot·后端·mysql·kotlin·mybatis·mybatisplus
不穿格子的程序员1 小时前
从零开始刷算法——二叉树篇:层序遍历 + 有序数组转二叉搜索树
算法