我想从扫描表中提取信息并将其存储为csv。现在,我的表提取算法执行以下步骤。
此算法对于数字出生的pdf和大多数扫描的文档都可以正常工作。但是,有些文档的表很吵,因此无法正确识别行。
这是示例算法失败的示例图像。
这些是我正在此表上执行的操作。 1.高斯模糊
2。大津阈值
3。形态学开放
4.Canny边缘检测
5。过滤的行,如您所见,显然没有识别出行 正确地。
任何人都可以建议从这种质量较低的扫描中提取水平线和垂直线的更好方法。
提前谢谢!
答案 0 :(得分:1)
问题是,而且永远都是因为您没有完美的线条。 这种方法的一种解决方案可以是:
答案 1 :(得分:1)
我在此博客中找到了一个完美的解决方案。 https://medium.com/coinmonks/a-box-detection-algorithm-for-any-image-containing-boxes-756c15d7ed26
在这里,我们使用垂直核检测垂直线,水平核检测水平线,然后将它们组合以获得所有必需的线,进行形态转换。
答案 2 :(得分:0)
问题可能出在 HoughLinesTransform()
您可以尝试使用: HoughLinesTransformP()
要使 HoughLinesTranform()正常工作,线条必须完美。从提供的图像中,您可以清楚地看到失真,这显然导致方法失败。
尝试先放大图片。 Image Dilation in Python.