从扫描文档中提取行表 opencv python

2024-05-21

我想从扫描的表中提取信息并将其存储为 csv。现在我的表提取算法执行以下步骤。

  1. 应用倾斜校正
  2. 应用高斯滤波器进行去噪。
  3. 使用 Otsu 阈值进行二值化
  4. 进行形态学开局。
  5. Canny 边缘检测
  6. 进行霍夫变换以获得表格行。
  7. 去除重复行(10像素范围内相同的行)
  8. 使用线斜率过滤水平线和垂直线(水平线和垂直线的法线斜率应小于 +/-5 度)。

该算法对于数字生成的 pdf 和大多数扫描文档运行良好。但是,某些文档的表格很嘈杂,因此无法正确识别行。

这是我的算法失败的示例图像。

这些是我在这张桌子上做的操作。 1.高斯模糊

2.大津阈值处理

3.形态开放

4.Canny边缘检测

5.过滤后的线条,可以看到线条明显没有被识别 正确。

任何人都可以建议更好的方法从这种质量较差的扫描中提取水平线和垂直线。

提前致谢!!


我在这个博客中找到了一个完美的解决方案。https://medium.com/coinmonks/a-box-detection-algorithm-for-any-image-containing-boxes-756c15d7ed26 https://medium.com/coinmonks/a-box-detection-algorithm-for-any-image-containing-boxes-756c15d7ed26

在这里,我们使用垂直内核来检测垂直线和水平内核来检测水平线进行形态转换,然后将它们组合起来以获得所有所需的线。

Vertical lines Vertical lines

Horizontal lines Horizontal lines

required output required output

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从扫描文档中提取行表 opencv python 的相关文章

随机推荐