我正在进行一个项目,该项目需要为背景丰富的图像提供准确的OCR结果。因此,我正在比较两个OCR(其中一个是Tesseract)的结果,以做出我的选择。重点是预处理步骤特别是图像二值化对结果有很大影响。我提取了另一个OCR的二值化图像,并将其传递给Tesseract,这将Teseract的结果增强了30-40%。
我有两个问题,你的回答对我有很大帮助:
- tesseract使用什么二值化算法,它是可配置的吗
- 有没有一种方法可以提取Tesseract OCR的二进制图像,这样我就可以用它测试其他OCR了
提前感谢:)
我想我已经找到了问题的答案:
1-使用的二值化算法是Otsu阈值。你可以在这里179行看到。
2-为了获得二值化图像,tesseract api中的一种方法可以称为:
PIX* thresholded = api->GetThresholdedImage(); //thresholded must be freed
Otsu阈值是一个全局滤波器。您可以使用一些本地筛选器来获得更好的结果。你可以在这里找到索瓦洛的二进制化,或者尼克在这里。这两种算法都是Niblack的改进。我用它来二进制化我的图像进行OCR,我得到了更好的结果祝好运