0

我的“tessdate”包含:eng.traineddata、eng.cube.bigrams、eng.cube.fold、eng.cube.lm、eng.cube.nn、eng.cube.params eng.cube.size、eng.cube.word -频率,eng.tesseract_cube.nn

rus.traineddata, rus.cube.fold, rus.cube.lm, rus.cube.nn, rus.cube.params, rus.cube.size, rus.cube.word-freq

我在 tessdata 目录中没有 'rus.cube.bigrams' 和 'rus.tesseract_cube.nn' 文件。

当我将'eng'更改为'rus'或'ita'时,例如在此代码中,我获取了这个错误“无法使用路径'tessdata'和语言'rus'创建ocr模型”:

私人正方体_ocr;

  public LicensePlateDetector(String dataPath)
  {
     //create OCR engine
      _ocr = new Tesseract("tessdata", "rus", Tesseract.OcrEngineMode.OEM_CUBE_ONLY);
     _ocr.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890");
  }

我在哪里弄错了?

4

1 回答 1

1

它说它在 tessdata 文件夹中找不到 rus 语言资源。检查您是否已将Copy to Output Directoryrus 文件设置为Copy always. 此外,我刚刚尝试使用Tesseract .NET wrapper。它有更令人愉悦的语法:

using (var engine = new TesseractEngine(pathToLangFolder, "rus", EngineMode.Default))
{
    // have to load Pix via a bitmap since Pix doesn't support loading a stream.
    using (var image = new Bitmap(fileName))
    {
        using (var pix = PixConverter.ToPix(image))
        {
            using (var page = engine.Process(pix))
            {
                Console.WriteLine(page.GetMeanConfidence() + " : " + page.GetText());
            }
        }
    }
}
于 2014-05-28T12:17:48.340 回答