Dat*_*eek 5 opencv vision computer-vision
我经常使用扫描的纸张.这些文件包含我需要手动输入计算机的表格(类似于Excel表格).为了使任务更糟,表可以具有不同数量的列.手动将它们输入Excel是至关重要的.
如果我能把程序放到OCR上,我想我可以节省一周的工作时间.是否可以使用OpenCV检测标题文本区域,并检测检测到的图像坐标后面的文本.
我可以在OpenCV的帮助下实现这一目标,还是需要完全不同的方法?
编辑:示例表实际上只是一个类似于您在Excel和其他电子表格应用程序中可以看到的标准表,请参见下文.
这个问题看起来有点旧,但我也在研究类似的问题并得到了我自己的解决方案,我在这里解释.
对于使用任何OCR引擎阅读文本,有很多挑战,以获得良好的准确性,包括以下主要情况:
由于图像质量差/背景区域中不需要的元素/斑点而存在噪声.这将需要一些预处理,如噪声消除,这可以使用高斯滤波器或普通中值滤波器方法轻松完成.这些也可以在opencv中找到.
图像方向错误:由于方向错误,OCR引擎无法正确分割图像中的线条和单词,从而导致精度最差.
在这种情况下,我认为扫描图像质量非常好且简单,并且可以使用以下步骤来解决问题.

现在我们必须删除在这种情况下是表格网格的行.这也可以使用连接组件识别并删除大型连接组件.因此,我们需要提供给OCR引擎的最终图像将如下所示.
对于OCR,我们可以使用Tesseract开源OCR引擎.我从OCR得到了以下结果:
标题标题
头球攻门!header2 header3
row1cell1 row1cell2 row1cell3
row2cell1 row2cell2 row2cell3
正如我们在这里看到的那样,结果非常准确,但是有些问题就像标题一样 !这应该是header1,这是因为OCR引擎误解了!通过使用基于Regex的操作进一步处理结果,可以解决此问题.
在对OCR结果进行后处理之后,可以对其进行解析以读取行和列值.
此外,在这种情况下,为了对表格标题,标题和正常单元格值进行分类,可以使用它们的字体信息.