5

我正在开发一个项目,该项目需要为具有丰富背景的图像提供准确的 OCR 结果。所以我正在比较两个 OCR(其中一个是 Tesseract)的结果来做出我的选择。关键是结果受到预处理步骤的强烈影响,尤其是图像二值化。我提取了另一个 OCR 的二值化图像并将其传递给 Tesseract,从而将 Tesseract 的结果提高了 30-40%。

我有两个问题,你的回答对我有很大帮助:

  1. tesseract 使用什么二值化算法,它是否可配置?
  2. 有没有办法提取 Tesseract OCR 的二值化图像,以便我可以用它测试另一个 OCR?

提前致谢 :)

4

2 回答 2

9

我想我已经找到了我的问题的答案:

1- 使用的二值化算法是 Otsu 阈值。你可以在第 179 行看到

2- 要获得二值化图像,可以调用 tesseract api 中的方法:

PIX* thresholded = api->GetThresholdedImage(); //thresholded must be freed
于 2015-04-01T07:32:44.877 回答
5

Otsu 阈值处理是一种全局过滤器。您可以使用一些本地过滤器来获得更好的结果。您可以在此处查看 Sauvalo 的二值化或在此处查看Nick 。这两种算法都是Niblack的改进。我用它来二值化我的 OCR 图像,我得到了更好的结果祝你好运

于 2016-06-12T18:28:15.063 回答