在Tesseract OCR中使用了什么阈值(二值化)算法?

时间:2015-03-31 23:36:04

标签: ocr tesseract adaptive-threshold

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

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

  1. 使用哪种二值化算法,是否可以配置?
  2. 有没有办法提取Tesseract OCR的二值图像,以便我可以用它来测试其他OCR?
  3. 提前致谢:)

2 个答案:

答案 0 :(得分:6)

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

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

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

PIX* thresholded = api->GetThresholdedImage(); //thresholded must be freed

答案 1 :(得分:4)

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