C#使用Tesseract OCR 解析验证码
来源:互联网 发布:非线性最优化基础 pdf 编辑:程序博客网 时间:2024/05/26 09:56
之前我在<<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进行识别
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
0 0
- C#使用Tesseract OCR 解析验证码
- C#使用Tesseract OCR 解析验证码
- C#使用Tesseract OCR 解析验证码
- C#使用Tesseract OCR 解析验证码
- C#使用Tesseract OCR 解析验证码
- 使用tesseract-ocr破解网站验证码
- 使用tesseract-ocr破解网站验证码
- tesseract-ocr破解 验证码
- Tesseract-OCR 验证码训练
- python使用tesseract-ocr完成验证码识别
- python 使用tesseract-ocr , pytesseract , PIL进行验证码识别
- python使用tesseract-ocr完成验证码识别
- python使用tesseract-ocr完成验证码识别
- 关于tesseract-ocr识别验证码
- imagemagick tesseract-ocr破解简单验证码
- Tesseract-OCR引擎识别验证码
- 利用tesseract-ocr进行验证码识别
- Tesseract Ocr 引擎识别图形验证码
- elasticsearch 简介和创建索引初步
- 一张图搞定Android学习路线
- 关于wampserver里面出现403错误的问题解决方法
- Xtrabackup数据全备份与快速搭建从服务器
- iOS UIView动画详解(Objective-C)
- C#使用Tesseract OCR 解析验证码
- 如何判断js中的数据类型
- java new 对象
- master password is required to unlock the password database.the password database will be unlocked d
- nginx+rtmp子进程管理不当导致频繁的deleteStream(未断开连接)
- 《Java编程思想》学习笔记16——枚举
- Python-OpenCV 处理视频(一): 输入输出
- iOS学习笔记:移除cocoaPod
- C++ Primer Plus第六版-第八章学习笔记