我有一堆形式的扫描,看起来像这样:
我试图取出每一行,使每个行都在自己的图像上(一行是10行,一直到表格的右边)。我已经编写了一个函数(在python中),它将找到所有的框,OCR每个框自己(使用tesseract),确定是否存在ID标签(在这个空白表单中,只有10),并使用盒子的高度和整个桌子的宽度拉出来的行。
这个过程的问题是OCR;有些表是像素化的,根本没有检测到任何文本,因此行不会从表中取出。我使用一个具有良好OCR结果的表单的行矩形边界来从所有表单中取出行,但是,由于某种原因,某些表单具有不同大小的标题,或者行高度大于或小于& #39;正常' (我已将每个表的大小调整为相同的分辨率)。不改变的一件事是每行中文本窗口的总体布局,尽管一个表格的行可能相对于另一个表格更高或更短。
我的问题:如何使用一个(或一组)示例将每一行识别为一个特征,同时考虑各种示例中行位置的轻微变化?我很感激您的任何想法。
我正在使用Python 2.7,OpenCV 3.1.0(在Windows上),以及在ubuntu VM上使用scikit-image和scikit-learn。
答案 0 :(得分:2)
HoughLines
可帮助您找到图片中的线条。之后,您需要过滤掉所有非水平的。您可以使用其余的来找出拆分图像所需的位置。