嗨,我正在试着让Tessnet2正常工作。我的代码是
Bitmap image = new Bitmap(@"C:\Users\Eric\Desktop\Text Pictures\Oil0.bmp");
tessnet2.Tesseract ocr = new tessnet2.Tesseract();
ocr.SetVariable("tessedit_char_whitelist", "0123456789");
ocr.Init(@"C:\tessdata", "eng", false);
List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty); // Error occurs here
foreach (tessnet2.Word word in result)
Console.WriteLine("{0} : {1}", word.Confidence, word.Text);当我运行它时,我在List result =ocr.DoOCR(System.AccessViolationException,Rectangle.Empty)中得到错误"System.AccessViolationException“;
我使用的是.net 3.5,我真的不知道这里出了什么问题。有什么建议吗?
发布于 2015-01-29 14:31:21
1.确保您正在使用tessnet2下载正确的语言files.You应使用英语数据为Tesseract (2.00及更高版本),而不是英语数据为Tesseract 3.01 version.Download正确的数据从下面的链接。https://code.google.com/p/tesseract-ocr/downloads/list
2.如果您安装了任何tesseract-ocr-setup.exe意味着您的程序总是引用C:\Program Files\Tesseract-OCR\tessdata位置下的tessdata文件,因为安装时会创建一个值为**C:\Program files \Tesseract OCR** .To的环境变量TESSDATA_PREFIX解决此问题,卸载安装程序并删除环境变量或将tessdata文件保存在C:\Program Files\Tesseract-OCR\tessdata位置下。
发布于 2015-07-03 13:59:52
它显示了这个错误,你清理你的解决方案并重新构建它,它就会工作。代码没有任何问题。验证您的app.config只是一个警告。
发布于 2017-01-19 04:09:23
删除ocr.SetVariable方法
此外,不要将路径指向tessdata文件夹本身。
如果您确实希望只使用数字字符,则可以使用以下代码:
Bitmap image = new Bitmap(@"C:\Users\Eric\Desktop\Text Pictures\Oil0.bmp");
tessnet2.Tesseract ocr = new tessnet2.Tesseract();
ocr.Init(@"C:\DontPointToTessDataDirectly", "eng", true);
List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty); // Error occurs here
foreach (tessnet2.Word word in result)
Console.WriteLine("{0} : {1}", word.Confidence, word.Text);https://stackoverflow.com/questions/21068200
复制相似问题