协助Tessnet2

时间:2010-10-14 12:10:10

标签: c# ocr tessnet2

我需要建议。我正在尝试使用Tessnet2 lib来识别图像文本。

图像包含一个包含五个字符(字符和数字)的字符串。

  1. 我从http://www.pixel-technology.com/freeware/tessnet2/下载了lib。

  2. 在我的项目中添加对此lib的引用。

  3. 然后我下载了语言数据定义文件(来自http://code.google.com/p/tesseract-ocr/downloads/list)and将其放入tessdata目录。

  4. 数据定义文件与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");
    }
    

    问题是,如果我调用此代码,应用程序将关闭。我什么都没得到错误消息。我不是为什么。 有谁能够帮我?谢谢。

5 个答案:

答案 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 ...

祝你好运