【问题标题】:Tesseract does not recognize RussianTesseract 不识别俄语
【发布时间】:2012-04-16 02:57:07
【问题描述】:

我正在使用 tesseract-ocr 库编写 Qt 应用程序。 当我测试 tesseract 时,我发现它只有在使用“eng”参数初始化时才能识别文本。如果我指定 'rus' 参数 GetUTF8Text() 返回如下内容: ТÐ<9d>Ð<86>Ð<85> Ð<86>Ð<85> мама

*.traineddata 文件位于 /usr/local/share/tessdata 目录中。它还包含 rus.traineddata 文件。

有什么问题?

【问题讨论】:

  • 也许您的系统不支持西里尔字母?
  • 我使用 debian wheezy,它支持 Cirillic 字母)但是在 tesseract 测试期间我遇到了另一个问题code.google.com/p/tesseract-ocr/issues/detail?id=228。通过设置语言环境 setlocale (LC_NUMERIC, "C"); 解决了这个问题。也许这句话会导致问题?
  • 这可能是问题的原因。您需要进行更多 Google 搜索以了解如何正确设置系统。您的问题看起来与 Tesseract、Qt 或 C++ 无关。
  • 我已经安装了 debian-packages libtesseract3 和 tesseract-ocr-rus。这个控制台 ocr-tool 可以与“-l rus”键一起正常工作。它在没有特殊区域设置的情况下识别了我的测试图像。所以在从 C++ 代码调用 tesseract api 的过程中会出现问题,对吧?
  • 在苏维埃俄罗斯,俄罗斯不承认 Tesseract!

标签: c++ qt tesseract


【解决方案1】:

我找到了解决方案!与GetUTF8Text函数返回的编码文本有关。

char* recognizedText = tessApi.GetUTF8Text(); // recognizes text with tesseract
QTextCodec* codec = QTextCodec::codecForName("UTF-8"); // creates UTF-8 codec
QString decodedText = codec->toUnicode(recognizedText); // Converts to UNICODE

有效!

【讨论】:

  • 如果使用 Visual Studio,而不是 QT?
猜你喜欢
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 2012-07-03
相关资源
最近更新 更多