|
楼主 |
发表于 2010-11-9 23:00:09
|
显示全部楼层
我介绍下部分用法,主要是怎么利用这个工具进行验证码识别。
这个工具(特别是内测版)可以处理和识别非常复杂的验证码,我这里介绍时用简单的验证码来说明一下吧。
一、图形预处理:
(一)针对下面这组验证码,了解到这组验证码的共同特点:等宽,纯数字,每个图片由5个验证码组成。我们选出39065.bmp,71704.bmp和82153.bmp这三个图,因为这3个图包含了0-9的所有数字,所以用这3个图做基准库,建立识别数据库。
0001
(二)运行ocr.exe,设定图片转换参数:
1."验证码个数"选5;读入第一个图39065.bmp
2."消边及反相"打勾,去边界左右上下的数字一点一点慢慢调,因为这个工具是可视方式设计的,所以很方便。上下调到4,这样刚好顶到验证码字符,要调小到3-1也行,多试试,可以用。左右调到了2,要注意,这个值调完后要尽量使结果图的宽度是“验证码个数”的整数倍,在这里我们调到2,使图的宽度变到50,是5的倍数。
3.“色值调整”打勾,虽然肉眼看起来已经是黑白了,但建议都要做这步,因为在这个工具的识别中,多数情况只处理0xffffff(白底)和0(黑色)。
4.“字符分离”打勾,这时会在分离的地方插入两个空列,所以宽度变成50+5*2=60了,仍是能被5整除。
5.是否做消除干扰对于等宽验证码不重要,可以不做,因为这个工具是可以模糊匹配识别取最佳值的。
0002
(三)依次读入71704.bmp和82153.bmp,看得到的结果是否一致,特别是宽度值一定要一致。
0004
(四)保存方案:输入方案名,本例输入“例1_宽12”,并保存。
0003
二、验证码识别:
(一)转到“点阵识别”界面,选择刚才保存的方案“例1_宽12”,点“应用”。点“尝试识别”,得到识别结果:_(0%)_(0%)_(0%)_(0%)_(0%),0%表示识别的匹配率是0(最高是100),因为目前还没有任何识别库,所以这个很差的识别结果是正常的。
1001
(二)在“实际字符”处输入实际文本,本例为39065(如果文件名与实际文本相同,可以将“实际字符取自文件名”打勾,这样就不用输了),然后点“入库”。这时“尝试识别”的结果是:3(100%)9(100%)0(100%)6(100%)5(100%),说明已经建立了这5个识别库。依次点“调入原图”,读入71704.bmp和82153.bmp,重复“尝试识别”和“入库”步骤。
1002
(三)点“查看(右键点图可删字库)”按钮,就可以列出已经建立的识别字库,可以点右键进行删除管理。接着我们可以打开6.bmp-11.bmp点“尝试识别”来看识别情况,如果只是百分比达不到100,但能正确识别出字符,那就可以了。
1003
(四)在本例中,因为干扰的原因,相同的字符会建立多个字库,我可以通过右键删除功能整理掉没用的字库,以加快识别速度。本例其实无需这么做,只有字库很多很多时才可能要这么做,这个工具用的是建立索引表的二分算法,查找速度很快。
1004
(五)识别参数:
1.除非你要确保每个字符都是100%的识别度,否则不要使用"0完全匹配识别"参数;“2包含匹配识别(慢)”是用于对付上下波动的验证码,减少建库时间设的,但识别速度慢,如果选择此项,一般“要求最低识别率”要设一个不到100的值,如90,这样速度会快些。工具的作者推荐的是:“1逐一点阵识别”,是精确和模糊的结合匹配。
2.当库很多时,可以通过降低“要求最低识别率”的值来获得高速识别,对于干扰较大的验证码可以设到90左右。
三、静默识别:
做完上述一、二步骤后,点“根据方案生成静默识别代码”,生成ConvertOcr.au3和Convert.ini两个文件,与OCR.exe在同一目录下。打开ConvertOcr.au3,
修改这句:Dim $s_PicFileName = @ScriptDir&"\CodeTest\14.jpg";这里改为你自己要转换的验证码图片
或者根据这个例子自己写静默调用例子就可以不用图形界面自行调用这个工具做后台识别了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
评分
-
查看全部评分
|