利用tessnet2_32.dll实现OCR验证码识别

using System;
using System.Collections.Generic;
using System.Web;
//add
using System.Net;
using System.IO;
using tessnet2; //引用tessnet2_32.dll
using System.Drawing;
using GetCodes;
using System.Text;

public partial class OCR : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        WebRequest request = WebRequest.Create("http://sz.2zf.cn/js/code2.asp");
        WebResponse response = request.GetResponse();
        Stream st = response.GetResponseStream();
        Bitmap bitmap = (Bitmap)Bitmap.FromStream(st);
        UnCodebase ud = new UnCodebase(bitmap);
        bitmap = ud.GrayByPixels();
        ud.ClearNoise(128, 2);

        //保存显示
        string savepath = "~/photos/orc.gif";

        bitmap.Save(Server.MapPath(savepath), System.Drawing.Imaging.ImageFormat.Gif);
        Image1.ImageUrl = savepath;

        tessnet2.Tesseract ocr = new tessnet2.Tesseract();//声明一个OCR类 
        ocr.SetVariable("tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); //设置识别变量 
        //ocr.Init(null, "eng", false);
        ocr.Init(Server.MapPath("~/Language"), "eng", true); //应用当前语言包。注,Tessnet2是支持多国语的。语言包下载链接:http://code.google.com/p/tesseract-ocr/downloads/list 
        List<tessnet2.Word> result = ocr.DoOCR(bitmap, Rectangle.Empty);//执行识别操作 
        string code = result[0].Text;
        Label1.Text = code;
    }
}

posted @ 2013-01-05 17:20  深南大道  阅读(857)  评论(1编辑  收藏  举报