Emgu CV、Tessdata - 无法加载 pol 语言

Emgu CV, Tessdata - can't load pol language

我已经下载了 EmguCV v4.2.0 和带有语言的 tessdata 文件夹,并将此文件夹粘贴到 bin 文件夹中。在 tessdata 文件夹中我有很多语言,eng 和 pol 也是。

在 C# 中我有这样的代码:

 using (ImageParser ip = new ImageParser(@"C:\Emgu\emgucv-windesktop 4.2.0.3662\bin\tessdata", "eng"))
 {
     if (ip.OcrImage("C:\Users\v-user1\Pictures\Saved Pictures\bied.PNG") != string.Empty)
     {
         w.AddRange(ip?.Words.ToList<string>());
     }
 }

当我设置 "eng" ImageParser 时正确创建,但是当我更改为 "pol" 语言时出现错误:

System.AccessViolationException: 'Attempted to read or write protected memory. This is often an indication that other memory is corrupt.'

这个错误的原因是什么?

据我所知,您正在尝试加载 tessdata 文件,以便 Tesseract 可以在尝试检测文本时引用它。下面的方法是我过去用过的,对我来说效果很好。在Emgucv的早期版本中,setVariable和白名单功能没有起作用,但我不确定在以后的版本中是否已修复。

  public static void LoadOCREngine(String dataPath)
  {
     //create OCR engine
     _ocr = new Tesseract(dataPath, "eng", OcrEngineMode.TesseractCubeCombined);
     _ocr.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890");
  }