我需要建议。我正在尝试使用Tessnet2 lib来识别图像文本。
图像包含一个包含五个字符(字符和数字)的字符串。
在我的项目中添加对此lib的引用。
然后我下载了语言数据定义文件(来自http://code.google.com/p/tesseract-ocr/downloads/list)and将其放入tessdata目录。
数据定义文件与exe文件位于同一目录中。
这是我的代码:
try
{ //download image from server
System.Net.WebRequest request =
System.Net.WebRequest.Create(
textBox1.Text);
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream responseStream =
response.GetResponseStream();
Bitmap image = new Bitmap(responseStream);
pictureBox1.Image =image;
tessnet2.Tesseract ocr = new tessnet2.Tesseract();
ocr.SetVariable("tessedit_char_whitelist", "0123456789");
ocr.Init(@"C:\Users\Tan\Documents\Visual Studio 2010\Projects\TestProject\bin\Release", "eng", false); // To use correct tessdata
List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty);
foreach (tessnet2.Word word in result)
{
richTextBox1.Text = string.Format("{0} : {1}", word.Confidence, word.Text);
}
}
catch (System.Net.WebException)
{
MessageBox.Show("There was an error opening the image file."
+ "Check the URL");
}
问题是,如果我调用此代码,应用程序将关闭。我什么都没得到错误消息。我不是为什么。 有谁能够帮我?谢谢。
答案 0 :(得分:3)
您安装了Tesseract 3吗?
如果是,请将其卸载并删除名为some的环境变量,并重新启动。
答案 1 :(得分:0)
我认为ocr.Init行中的错误,请确保路径正确。也尝试传递null,因为我记得它不需要路径,因为你总是要将tessdata目录中的所有数据放在包含你的exe文件的同一个文件夹中。
答案 2 :(得分:0)
尝试在Visual Studio中针对Release解决方案配置使用调试解决方案配置。 Release配置中不包含某些调试信息。并拍摄类似的错误。
答案 3 :(得分:0)
问题在于你的ocr.Init()。确保目录“C:\ Users \ Tan \ Documents \ Visual Studio 2010 \ Projects \ TestProject \ bin \ Release”包含所需的文件:
eng.DangAmbigs
eng.freq-dawg
eng.inttemp
eng.normproto
eng.pffmtable
eng.unicharset
eng.user-words
eng.word-dawg
答案 4 :(得分:0)
如果在这种情况下有人仍想知道该怎么做:
我有同样的问题,我可以在this link的帮助下修复它并将tessdata目录传递给init函数。 (主函数中有一个,OCR类中有两个。) 上面提到的链接帮助了我,因为我必须下载v2.00语言文件而不是最新的v3.0x ...
祝你好运