博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#使用Tesseract OCR 解析验证码
阅读量:6545 次
发布时间:2019-06-24

本文共 1215 字,大约阅读时间需要 4 分钟。

 

之前我在<<>>一文中介绍了用C#识别简单不变形数字验证码,但是对于识别变形的 或生成位置变化比较频繁的 验证码的准确率却不高。

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

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

Tessnet2的使用:

1、点击链接下载Tessnet2.dll ,

   Tessnet2是支持多国语的。语言包下载链接:

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(
""
);
            
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是支持多国语的。语言包下载链接:
            
List<tessnet2.Word> result = ocr.DoOCR(bitmap , Rectangle.Empty);
//执行识别操作
            
string 
code = result[0].Text;
            
textBox1.Text = code;

 

 

识别效果:

 

代码下载:

人生无处不PK

转载于:https://www.cnblogs.com/ppcompany/articles/2708960.html

你可能感兴趣的文章
梦游西藏
查看>>
Servlet Demo
查看>>
Struts2中的<s:action>标签
查看>>
Java中取某一个范围的随机数
查看>>
Linux 进程管理
查看>>
一条复杂SQL实现思路
查看>>
我的友情链接
查看>>
android app 退出时提示确认
查看>>
win10 配置
查看>>
java 编译100个范例
查看>>
Session Cookie ServletContext
查看>>
单点登录SSO
查看>>
遇见有的软件开启后画面模糊怎么解决
查看>>
用selenium实现百度贴吧自动发帖
查看>>
好系统重装助手教你怎么识别固态硬盘还是机械硬盘
查看>>
170. js中获取随机数 (记录一下)
查看>>
深入浅出爬虫之道: Python、Golang与GraphQuery的对比
查看>>
DHCP配置
查看>>
MySQL性能测试(二)——Ubuntu 14.4.02, MySQL 5.6.25, sysbench 4.8
查看>>
nginx 504 Gateway Time-out 的解决 java 工程
查看>>