同上,可发邮件[email protected]

解决方案 »

  1.   

    识别OCR验证码用.NET来实现,主要使用到Tesseract组件。
    .NET版本Tesseract下载地址:
    http://www.pixel-technology.com/freeware/tessnet2/
    另外发现这个用法非常简单,注意还需要下载语言包,我这里识别的是纯字母的,所以就用英文的语言包了。另外为了提高验证率,还可以自己进行训练,由于我的需求比较简单,我就没有做这个步骤了,直接使用英文语言包了。关键测试代码:InitializeComponent();
    ocr = new tessnet2.Tesseract();
    ocr.SetVariable("tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
    ocr.Init(Application.StartupPath   @"\lng\eng", "eng", false);WebClient wc = new WebClient();
    byte[] oimg = wc.DownloadData("some url"); // 这里我地址做了隐藏,自己修改成要识别的地址吧
    Bitmap bp = new Bitmap(new MemoryStream(oimg), true);
    pictureBox1.Image = bp;
    bp = ImageProcess.RemoveGreen(bp);
    bp = ImageProcess.ToBW(bp);
    pictureBox2.Image = bp;
    List<tessnet2.Word> result = ocr.DoOCR(bp, Rectangle.Empty);
    string txt = "";
    foreach (tessnet2.Word word in result)
    {
        txt  = word.Text;
    }
    textBox1.Text = txt;
      

  2.   

    另外找到了楼主说的dll的下载连接:for Vista版本for XP版本
      

  3.   

    为什么调试时候到ocr.Init(Application.StartupPath @"\lng\eng", "eng", false);就自动退出调试了呢。bp = ImageProcess.RemoveGreen(bp);
    bp = ImageProcess.ToBW(bp); 这两个方法在那里来的。先谢谢(我是峰儿谁是沙) !
      

  4.   

    WebClient,ImageProcess都属于哪个命名空间?