2013-08-12 110 views
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-FREQ,eng.tesseract_cube.nn如何在C#中使用tesseract的其他語言Tesseract 3.02 + Emgu 2.4.9

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

我還沒有'rus.cube.bigrams'和'rus.tesseract_cube.nn'文件tessdata dirrectory。

我取了這個錯誤「無法使用路徑‘tessdata’和語言‘RUS’創建OCR模式」,當我在此代碼更改「工程」到「RUS」或「ITA」例如:

private 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

它說它無法在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()); 
      } 
     } 
    } 
}