如何在C#Tesseract 3.02 + Emgu 2.4.9上使用tesseract的其他语言

时间:2013-08-12 08:30:02

标签: c# tesseract

我的'tessdate'包含: eng.traineddata,eng.cube.bigrams,eng.cube.fold,eng.cube.lm,eng.cube.nn,eng.cube.params eng.cube.size,eng.cube.word-freq,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 dirrectory中找到'rus.cube.bigrams'和'rus.tesseract_cube.nn'文件。

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

  

私人Tesseract _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");
  }

我错在哪里?

1 个答案:

答案 0 :(得分:1)

它说它无法在tessdata文件夹中找到rus语言资源。检查您是否已将rus文件的Copy to Output Directory设置为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());
            }
        }
    }
}