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

Bar*_*raa 4 ocr tesseract adaptive-threshold

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

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

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

提前致谢 :)

Bar*_*raa 6

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

1-使用的二值化算法是Otsu阈值处理.你可以看到它在这里管线179中.

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

PIX* thresholded = api->GetThresholdedImage(); //thresholded must be freed
Run Code Online (Sandbox Code Playgroud)


小智 5

Otsu 阈值是一个全局过滤器。您可以使用一些本地过滤器来获得更好的结果。你可以找Sauvalo二元化看到这里或尼克的位置。这两个算法都是Niblack的改进。我用它来二值化我的 OCR 图像,我得到了更好的结果祝你好运