C#使用Tesseract OCR 解析验证码
下面介紹一個(gè)開(kāi)源的OCR引擎Tesseract2。值得慶幸的是雖然是開(kāi)源的但是它的識(shí)別率較高,并不比其他引擎差勁。網(wǎng)上介紹Tessnet2也是當(dāng)時(shí)時(shí)間排名第三的識(shí)別引擎,只是后來(lái)慢慢不維護(hù)了,目前是Google在維護(hù),大家都知道Google 在搞電子圖書館,每天都有不同類目的書被掃描成電子版。所以有G老大維護(hù),識(shí)別率差不到哪里去。呵呵。。別鄙視我。。。
Tessnet2 是用vc ++ 開(kāi)發(fā)的,其中是生成Tessnet2.dll ,我們可以通過(guò).net 來(lái)調(diào)用內(nèi)部具體類庫(kù)實(shí)現(xiàn)識(shí)別。
Tessnet2的使用:
1、點(diǎn)擊http://files.cnblogs.com/zhuxiangyu/tessnet2_32.rar鏈接下載Tessnet2.dll ,
?? Tessnet2是支持多國(guó)語(yǔ)的。語(yǔ)言包下載鏈接:http://code.google.com/p/tesseract-ocr/downloads/list
2、將Tessnet2.dll 添加到vs 引用中,和添加.net程序集一樣。
3、用Tessnet2進(jìn)行識(shí)別
| 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();//聲明一個(gè)OCR類 ????????????ocr.SetVariable("tessedit_char_whitelist", "0123456789"); //設(shè)置識(shí)別變量,當(dāng)前只能識(shí)別數(shù)字。 ????????????ocr.Init(Application.StartupPath + @"\\tmpe", "eng", true); //應(yīng)用當(dāng)前語(yǔ)言包。注,Tessnet2是支持多國(guó)語(yǔ)的。語(yǔ)言包下載鏈接:http://code.google.com/p/tesseract-ocr/downloads/list ????????????List<tessnet2.Word> result = ocr.DoOCR(bitmap , Rectangle.Empty);//執(zhí)行識(shí)別操作 ????????????string?code = result[0].Text; ????????????textBox1.Text = code; |
識(shí)別效果:
代碼下載:CSharp簡(jiǎn)單數(shù)字驗(yàn)證碼解析.rar
https://www.cnblogs.com/ppcompany/articles/2708960.html
總結(jié)
以上是生活随笔為你收集整理的C#使用Tesseract OCR 解析验证码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: .Net软件UI界面测试自动化--UIA
- 下一篇: 芝麻信用分什么时候更新 教你一些提高的