C# Emgu.cv';s Tesseract对象使用的OCR文件路径不正确

C# Emgu.cv';s Tesseract对象使用的OCR文件路径不正确,c#,emgucv,tesseract,tessnet2,C#,Emgucv,Tesseract,Tessnet2,我希望使用EMGU.CV的Tesseract对象对一些图片进行OCR。首先,我下载、编译并运行了他们的OCR和LicensePlateRecognition示例 但是,Tesseract不断引发以下异常: 无法使用路径“teseract”和语言“eng”创建ocr模型 我追踪到了这条线的源头: \u ocr=新的Tesseract(@“TesserData”、“eng”、Tesseract.OcrEngineMode.OEM\u Tesseract\u CUBE\u组合) 我试着用最明显的方法来

我希望使用EMGU.CV的Tesseract对象对一些图片进行OCR。首先,我下载、编译并运行了他们的OCR和LicensePlateRecognition示例

但是,Tesseract不断引发以下异常:

无法使用路径“teseract”和语言“eng”创建ocr模型

我追踪到了这条线的源头:

\u ocr=新的Tesseract(@“TesserData”、“eng”、Tesseract.OcrEngineMode.OEM\u Tesseract\u CUBE\u组合)

我试着用最明显的方法来修复它:我给了它完整的路径,我把文件复制到“C:\”,并确保我的程序的当前目录与其中的数据相同

这些都不起作用,所以我使用procmon,发现它在这里查找文件:

C:\Program Files(x86)\Tesseract OCR\tesserData

似乎无论我做什么,我都无法从这个位置改变它。(当然,将文件移到那里是可行的)。这个位置在EMGU.cv的代码中任何地方都不存在,所以我猜它是作为默认值(?)编译到Tesseract的代码中的


那么,如何从使用此位置更改Tesseract?很明显,Tesseract构造函数应该对我传递给它的路径做些什么,那么我缺少什么呢?

第一个参数是文件位置。提示应该是用于使转义字符“\”无效的“@”符号。这通常用于路径,以避免\。

我尝试将文件复制到应用程序运行的目录,尝试绝对和相对路径,并尝试使用硬编码的C:\Program files(x86)\teseract OCR\tessdata。他们都不为我工作

我通过以下操作使其工作:

  • 将数据文件夹复制到运行我的应用程序的位置
  • 然后指定一个空的dataPath参数(默认情况下,datadata/附加到dataPath)。这一准则起了作用:

  • _ocr=新的Tesseract(“,”eng“,”Tesseract.OcrEngineMode.OEM\u Tesseract\u CUBE\u组合)

    检查是否设置了
    TESSDATA\u前缀
    环境变量(删除它并重新启动应用程序)。
    我遇到了完全相同的问题…

    我遇到了完全相同的问题,编译VB2010 x64,修复程序是删除
    TESSDATA\u前缀
    系统环境变量。

    将Emgu的BIN中的文件夹“TESSDATA”复制到BIN项目中,在我的情况下,它是有效的。

    对于以后的任何人来说:我已经完全放弃了emgu.cv的使用。这只是我遇到的20个小怪癖中的一个,所有的问题都是关于这么多的回答,我也决定放弃emgu.cv。发现以下替代方法更简单、更好:谢谢您的帮助。当我说‘我给了它完整的路径’时,我就把完整的路径放在这里。也许我的问题并不明显。不管我把什么放在那里,它都是在我上面给出的程序文件下的那个位置。你有使用这个的个人知识吗?你能改变这个吗?