c#使用tesseract语言
我正在尝试为google的Tesseract OCR引擎使用下载的自定义语言,它有以下文件,但没有traineddata文件,请查看下面的代码,只有当我尝试使用新语言时,才会出现错误,有人可以帮助我 文件:c#使用tesseract语言,c#,c#-4.0,ocr,tesseract,C#,C# 4.0,Ocr,Tesseract,我正在尝试为google的Tesseract OCR引擎使用下载的自定义语言,它有以下文件,但没有traineddata文件,请查看下面的代码,只有当我尝试使用新语言时,才会出现错误,有人可以帮助我 文件: cp27.DangAmbigs cp27.freq dawg cp27.inttemp cp27.normproto cp27.pffmtablecp cp27.unicharset cp27.用户词 cp27.word dawg 下载链接: 错误消息:未能初始化tesseract引擎
cp27.DangAmbigs
cp27.freq dawg
cp27.inttemp
cp27.normproto
cp27.pffmtablecp
cp27.unicharset
cp27.用户词
cp27.word dawg
下载链接:
错误消息:未能初始化tesseract引擎
Pix test = PixConverter.ToPix(image);
try
{
using (var engine = new TesseractEngine(@"tessdata", @"cp27", EngineMode.Default))
{
engine.SetVariable("tessedit_char_whitelist", charset);
using (var page = engine.Process(test))
{
return(page.GetText());
}
}
}
catch { }
您需要运行Tesseract
combine\u tessdata
命令将文件合并到cp27.traineddata
文件中
要创建lang.traineddata,请在当前目录中使用命令 如果存在一个tesseract实例,并且您希望将tesseract作为服务调用(一次调用多个请求)或作为并行调用,则会发生跟随异常。使用时在包装器中:
tesseract::TessBaseApi *api
您应该为api分配内存(新),因此请使用:
api new tesseract::TessBaseApi()
我测试了它,工作正常
在Tesseract.dll中发生System.AccessViolationException“”
信息:试图读取或写入受保护的内存。这是
通常表示其他内存已损坏。”
为什么不发布错误?抱歉,我忘了添加错误消息。错误消息:未能初始化tesseract引擎。这是整个堆栈跟踪?这是我得到的错误消息,如果我将cp27更改为eng,一切正常,但我想使用新语言我已上载文件,如果有人可以查看,谢谢。谢谢信息,我已将这些文件合并到cp27.traineddata中,现在它会显示另一条错误消息。“Tesseract.dll中发生了类型为“System.AccessViolationException”的未处理异常。其他信息:尝试读取或写入受保护内存。这通常表示其他内存已损坏。“可能是文件生成不正确。是否严格遵守了所有步骤?我下载了tesseract-ocr-3.02-win32-portable.zip,然后将所有8个文件复制到tessdata文件夹中,并从cmd输入combine_tessdata tessdata\cp27。它创建了一个名为cp27.traineddata的文件这是cmd的输出。组合TesserData文件,TesserDataManager组合tesseract数据文件,类型0的偏移量为-1,类型1的偏移量为140,类型2的偏移量为-1,类型3的偏移量为353,类型4的偏移量为359683,类型5的偏移量为359894,类型6的偏移量为-1,类型7的偏移量为406758,类型8的偏移量为-1,类型9的偏移量为406770,第10类的偏移量为-1,第11类的偏移量为-1,第12类的偏移量为-1,第13类的偏移量为-1,第14类的偏移量为-1,第15类的偏移量为-1,第16类的偏移量为-1我重新阅读了您的原始帖子,并意识到您的lang数据文件的版本是Tesseract 2.0x,而不是3.0x。因此,您将需要Tesseract 2.0x的.NET包装器。trainnedata适用于Tesseract 3.0x版本。