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

标签 ocr tesseract adaptive-threshold

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

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

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

  • 提前致谢 :)

    最佳答案

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

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

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

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

    关于ocr - Tesseract OCR 中使用了什么阈值(二值化)算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380355/

    相关文章:

    php - 如何使用 OCR (TesseractOCR) php 库

    android - Tesseract OCR 上的数字编号

    python - 如何使用Plone 4.1.4 Collective.documentviewer OCR tiff图像?

    android - 如何在tess-two android中获取识别文本的每个单词和边界框

    c++ - OpenCV 二进制自适应阈值 OCR

    python - 为什么如果我用魔杖从 pdf 中提取图像 jpg,它会将文本变成黑色背景

    c++ - C++图像处理库

    python - (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' with cv::imread

    c++ - OpenCV 中的鲁棒图像分割

    python - OpenCVadaptiveThreshold函数返回的图像中的每个像素的值为255