Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Tesseract 3(OCR)-.NET包装器_C#_Visual Studio 2010_Wrapper_Tesseract - Fatal编程技术网

C# Tesseract 3(OCR)-.NET包装器

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

我在让Tesseract在Visual Studio 2010项目中工作时遇到问题。我尝试过console和winforms,两者都有相同的结果。我遇到了一个dll,有人声称它在
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”