c++ - 如何改进 Tesseract 结果

标签 c++ image opencv image-processing tesseract

我想在使用 OpenCV 和 tesseract 时检测图像中的文本。我的步骤是:

  1. 为了检测文本,我使用了 cv::text 的场景文本检测算法。这实际上在困难的情况下也很有效
  2. 识别文本分别从主图像中提取包含文本的图像区域
  3. 我将每个子图像传递给 Tesseract

然而,tesseract 几乎找不到文本,如果它找到了文本,那就是错误的。 示例:(图片来自 https://github.com/opencv/opencv_contrib/blob/master/modules/text/samples/scenetext01.jpg)

enter image description here

绿色:OpenCV 检测到的文本(良好)。

黄色 tesseract 基于绿色矩形识别的文本(差)

提取的文本是“DOUBLEI”。 “I”是右侧黑色边框的结果。

如您所见,tesseract 也应该很容易检测到其他词,例如“PROHIBITED”。我试图增加提取的包含文本的子图像的大小并使用阈值,但我无法改善我的结果。

在各种教程中,我看到 tesseract 在更困难的条件下工作,所以它应该实际工作。

当直接对同一图像使用“tesseract.exe”时,根本没有检测到文本:

enter image description here

最佳答案

尝试添加一点白色背景。我记得 tesseract 对于到达图像边界的文本有很大的问题。在每边添加 10px 的白色,看看是否有帮助。

关于c++ - 如何改进 Tesseract 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42550532/

相关文章:

ios - 如何阻止我的 swift 应用程序崩溃

python - 使用 Python OpenCV,您将如何提取特定颜色边界框内的图像区域?

python-2.7 - 从目录中读取图像并用空格分隔 python 传递每个图像

OpenCV:这两个 haar 级联数据集有什么区别?

c++ - 使用(模板化的)删除函数重载来防止通常的算术转换

c++ - 通过构造函数初始化 char[40]

linux - 使用 ImageMagick : too many exceptions and blinking problem 创建 GIF 图像时出错

qt - 在 Win32 VC++ 上使用其他 GUI(如 Qt 或 WxWidgets)的 OpenCV

c++ - Visual Studio 2010 - 导出(项目)模板菜单选项变灰

java - C++ 或 Java 中的类型转换和类型转换有什么区别?