pytesseract:好的OCR或好的台词-绝不能同时

时间:2019-06-04 19:42:38

标签: python ocr tesseract python-tesseract

我正在使用pytesseract(tesseract版本3.05)对数字化创建的打印PDF帐单进行OCR(光学字符识别)。我对其进行了预处理,以去除所有颜色并将其设置为纯黑白和600 DPI。这是专有信息,所以我不能在这里发布,但是当我说时请相信我-它非常直截了当,非常清晰。

在处理图像时,我一直在使用各种页面分割模式(PSM)。

一些PSM(例如11和12)能很好地识别字符-几乎完美-但单行将变成多行,并且经常会被打乱,使得数据解析在功能上是不可能的。

其他PSM(例如3和4)保持完美的线条(这有助于数据解析),但是OCR很糟糕(插入了空格,破折号变成了撇号,“ l”将变成“ 1”甚至是'i'等)。

我尝试了所有PSM,但找不到允许我保持质量OCR的版本。

我是否可以转动其他拨盘以允许我同时进行两个操作,并且可能进一步提高生成的文本的质量?

代码:

psm_version = 3
text        = pytesseract.image_to_string(b_w_file, lang = 'eng', config = '-psm {}'.format(psm_version))

1 个答案:

答案 0 :(得分:0)

我对pytesseract不熟悉,但是我已经对C#端口产生了很大的困惑。我正在给它添加.tiffs,具有讽刺意味的是,我制作.tiff的DPI越高,Tesseract的表现似乎就越差。我发现最佳点是119 DPI。我发现可行的解决方案是,我创建两个.tiff,一个是我的输出的高DPI,另一个是我输入给Tesseract的低DPI。我让Tesseract迭代器将其找到的边界框的坐标传递给我,然后在更高的DPI .tiff上使用这些坐标来完成我想做的事情。它不是最有效的过程,因此此后我转到了其他选项,并且不再有代码。希望这会有所帮助!