打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#使用Tesseract OCR 解析验证码

我从别处转载的。

原文地址为:http://www.cnblogs.com/ivanyb/archive/2011/11/25/2263043.html

之前我在<<C#简单数字验证码解析>>一文中介绍了用C#识别简单不变形数字验证码,但是对于识别变形的

或生成位置变化比较频繁的
验证码的准确率却不高。

下面介绍一个开源的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;

 

 

识别效果:

 

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Spring Boot 集成 tess4j OCR 实现拍图识字
Tesseract
Python3一行代码实现图片文字识别的示例
几款开源的OCR识别项目,收藏备用
截屏、文字提取一气呵成,超实用OCR开源小工具
OCR识别的开源分析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服