.NET2.0OCR文字识别技术(Tesseract引擎)-飞外

前端时间在写一个小软件,作用是通过程序往指定站点提交数据,获取数据。主要作用还是来代替手工操作的麻烦。

实现无非是:

1.通过http 抓包工具抓取正常请求所(GET,POST)的数据

2.利用 .net 类库 httprequest 或 httpclient 做模拟提交操作。

注:一些 qq信息查看器,手机充值模拟提交软件,投票程序等,原理差不多。

具体实现不是本文重点要介绍的,下一次再写关于这个方面的吧。我们接下来还是主要来看OCR 。

一.OCR简介 参见http://baike.baidu.com/view/17761.htm?fr=ala0_1 大家参照,我第一次也是这么了解的,呵呵。高手见笑

现在市面上好多OCR 引擎,不过大多是收费的,价格不菲呀。。不适合我们学习研究。

而今天我们谈到的Tesseract 是开源的产品,比较适合大家的口味吧。并且Tesseract 也是目前识别率较高的OCR,并不比其他引擎

差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是Google在维护,大家都知道Google

在搞电子图书馆,每天都有不同类目的书被扫描成电子版,而下一步工作是什么。。。大家可以联想。


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

Tessnet2的使用:

1.将Tessnet2.dll 添加到vs bin目录,和添加.net程序集一样。https://files.cnblogs.com/zhuxiangyu/tessnet2_32.rar点击链接Tessnet2.dll

2.用Tessnet2进行识别

Bitmap image = new Bitmap("eurotext.tif");//识别图像
tessnet2.Tesseract ocr = new tessnet2.Tesseract();//声明一个OCR类
ocr.SetVariable("tessedit_char_whitelist", "0123456789"); //设置识别变量,当前只能识别数字。
ocr.Init(@"c:\temp", "fra", false); //应用当前语言包。注,Tessnet2是支持多国语的。语言包链接:http://code.google.com/p/tesseract-ocr/downloads/list
List tessnet2.Word result = ocr.DoOCR(image, Rectangle.Empty);//执行识别操作
foreach (tessnet2.Word word in result)//遍历识别结果。
Console.WriteLine("{0} : {1}", word.Confidence, word.Text);

看看 使用很简单吧。给大家个实例https://files.cnblogs.com/zhuxiangyu/Tessnet2example.rar用来测试。

我的使用总结:

我前一阵没事在搞验证码识别,对于普通的网站验证码识别基本识别率能达到100%,但对于比较正规的网站例如 通讯,itput等等网站 识别率极低。

大概也是我研究不够深入吧,呵呵。

大家互相探讨学习,此文只是给大家一个参考。

谢谢各位支持。