从扫描文档 opencv python 中提取内衬表

Sre*_*ran 5 python opencv image-processing hough-transform opencv-python

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

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

该算法适用于数字原生 pdf 和大多数扫描文档。但是,某些文档有一个嘈杂的表格,因此无法正确识别行。

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

原始图像

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

高斯模糊

2.Otsu阈值

大津阈值

3.形态开口

形态开口

4.Canny边缘检测

Canny 边缘检测

5.filtered lines,如您所见,这些线条显然没有正确识别。

过滤后的行,如您所见,这些行显然没有正确识别。

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

提前致谢!!

Sre*_*ran 4

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

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

垂直线 垂直线

水平线 水平线

所需输出 所需输出