当前位置:编程学习 > C#/ASP.NET >>

关于验证码Tesseract验证码识别问题 (做过的请进)

先上我的代码:
   tessnet2.Tesseract ocr = new tessnet2.Tesseract();//声明一个OCR类
           string defaultCharList = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-";
          
         ocr.SetVariable("tessedit_char_whitelist", defaultCharList);//设置识别变量,当前只能识别数字及英文字符。
         string testdata = @"d:\temp\tessdata";
     
         ocr.Init(testdata, "eng", false); //应用当前语言包。注,Tessnet2是支持多国语的。语言包下载链接:http://code.google.com/p/tesseract-ocr/downloads/list
        
         WebClient wc = new WebClient();

         byte[] oimg = wc.DownloadData(url); // 自己修改成要识别的地址吧
         Bitmap bp = new Bitmap(new MemoryStream(oimg), true);//识别图像
         Bitmap bp2 = new Bitmap(new MemoryStream(oimg), true);


         List<tessnet2.Word> result = new List<tessnet2.Word>();
         string txt = "";

         try
         {
             result = ocr.DoOCR(bp, Rectangle.Empty);//执行识别操作
             foreach (tessnet2.Word word in result)//遍历识别结果。
             {
                 txt += word.Text;
             }
         }
         catch (Exception ex)
         {

         }


前台调用,运行没问题,就是不准确,明明图片上是DE2M,可是OCR得到的却是KVW-G,
网上很多资料显示说:Tesseract 对于普通网站验证成功率是100%,为什么我的就不准确呢?抓狂ing...

--------------------编程问答-------------------- 这要看你识别的验证码是否有扭曲,背景杂色等等干扰。 --------------------编程问答-------------------- 你好楼主,我运行到ocr.Init(方法程序自动退出怎么回事请赐教 --------------------编程问答--------------------
引用 2 楼 csdsuper 的回复:
你好楼主,我运行到ocr.Init(方法程序自动退出怎么回事请赐教


参数设置不正确,你试试看用绝对路径
  ocr.Init(testdata, "eng", false); 
第一个参数是语言包的路径,如:"D:\test" 下载语言包放在test目录里面 --------------------编程问答--------------------
引用 3 楼 xa678 的回复:
引用 2 楼 csdsuper 的回复:你好楼主,我运行到ocr.Init(方法程序自动退出怎么回事请赐教

参数设置不正确,你试试看用绝对路径
  ocr.Init(testdata, "eng", false); 
第一个参数是语言包的路径,如:"D:\test" 下载语言包放在test目录里面


我也遇到这样的问题了,我修改了路径可是还是不对呀。请赐教!!!! --------------------编程问答--------------------
              tessnet2.Tesseract ocr = new tessnet2.Tesseract();//声明一个OCR类
              ocr.SetVariable("tessedit_char_whitelist", "0123456789"); //设置识别变量,当前只能识别数字。
              ocr.Init(Application.StartupPath + @"\\tmpe", "eng", true); //应用当前语言包。注,Tessnet2是支持多国语的。语言包下载链接:http://code.google.com/p/tesseract-ocr/downloads/list
              List<tessnet2.Word> result = ocr.DoOCR(img, Rectangle.Empty);//执行识别操作
--------------------编程问答-------------------- 除 --------------------编程问答-------------------- 我的也是自动退出,求解决
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,