C# Tesseract 3(OCR)-.NET包装器
我在让Tesseract在Visual Studio 2010项目中工作时遇到问题。我尝试过console和winforms,两者都有相同的结果。我遇到了一个dll,有人声称它在C# Tesseract 3(OCR)-.NET包装器,c#,visual-studio-2010,wrapper,tesseract,C#,Visual Studio 2010,Wrapper,Tesseract,我在让Tesseract在Visual Studio 2010项目中工作时遇到问题。我尝试过console和winforms,两者都有相同的结果。我遇到了一个dll,有人声称它在VS2010中工作: 我正在添加对dll的引用,该dll可以在上面网站的附文64中找到。每次我构建我的项目时,我都会收到一个AccessViolationException,表示有人试图读取或写入受保护的内存 public void StartOCR() { const string language = "e
VS2010
中工作:
我正在添加对dll的引用,该dll可以在上面网站的附文64中找到。每次我构建我的项目时,我都会收到一个AccessViolationException
,表示有人试图读取或写入受保护的内存
public void StartOCR()
{
const string language = "eng";
const string TessractData = @"C:\Users\Joe\Desktop\tessdata\";
using (TesseractProcessor processor = new TesseractProcessor())
{
using (Bitmap bmp = Bitmap.FromFile(fileName) as Bitmap)
{
if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT))
{
string text = processor.Recognize(bmp);
}
}
}
}
访问冲突异常始终指向
if(processor.Init(TessractData,language,(int)eOcrEngineMode.OEM_DEFAULT))
。我看到了一些建议,以确保在configuration manager中将解决方案平台设置为x86
,并确保数据文件夹位置以尾随斜杠结束,但没有效果。有什么想法吗?我刚刚用tesseract engine 3完成了一个项目。我认为,发动机有一个缺陷,需要纠正。我删除“AccessViolationError”的方法是,将“\tessdata”添加到实际的tessdata目录字符串中。我不知道为什么,但引擎似乎正在截断数据路径中最里面的目录
刚刚制作了与.net framework 4一起使用的完整OCR包(DLL+Tessdata(英语))。似乎是Tessdata文件夹的内容导致了问题。从第一个链接获取了tessdata文件夹,现在一切正常。如果有人有相同的问题,并且尾部斜杠的建议不起作用,请尝试。。。两个结尾的斜杠!认真地。它对我有用
if (processor.Init(@".\tessdata\\", "eng", (int)eOcrEngineMode.OEM_DEFAULT))
看来你们的问题和前面提到的稳定性问题有关。官方建议使用之前的稳定版本2.4.1。您可以通过package manager命令从nuget.org安装它:
install package Tesseract-Version 2.4.1
您可以分享您的完整实现吗?我想我正在阅读关于如何设置此项的相互矛盾的说明。我不能接受此项荣誉,但这对我来说很有效:将tessdata文件夹中的“eng.traineddata”替换为True!文件夹位于“e:\tessdata”中,变量定义为const string tessractData=@“e:\tessdata\tessdata”代码>