C#使用Tesseract OCR 解析验证码


下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是Google在维护,大家都知道Google 在搞电子图书馆,每天都有不同类目的书被扫描成电子版。所以有G老大维护,识别率差不到哪里去。呵呵。。别鄙视我。。。

Tessnet2 是用vc ++ 开发的,其中是生成Tessnet2.dll ,我们可以通过.net 来调用内部具体类库实现识别。

Tessnet2的使用:

1、点击http://files.cnblogs.com/zhuxiangyu/tessnet2_32.rar链接下载Tessnet2.dll ,

   Tessnet2是支持多国语的。语言包下载链接:http://code.google.com/p/tesseract-ocr/downloads/list

2、将Tessnet2.dll 添加到vs 引用中,和添加.net程序集一样。

3、用Tessnet2进行识别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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);
 
             pictureBox1.Image = bitmap ;
 
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(bitmap , Rectangle.Empty); //执行识别操作
             string  code = result[0].Text;
             textBox1.Text = code;

 

 

识别效果:

image

 

代码下载:CSharp简单数字验证码解析.rar

 

https://www.cnblogs.com/ppcompany/articles/2708960.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM