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");
}
我已经下载了 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");
}