◆◆阿福的验证码识别中的CodeFont.txt文件是从哪来的?
本帖最后由 sdwd_lhq 于 2011-9-13 11:10 编辑阿福的验证码识别中的CodeFont.txt文件是从哪来的?如下:
$a_Image = myReadImageToArray($img, True, 1, 0xeeeeee)
$s_code_string = myArrarOCR(@ScriptDir & "\CodeFont.txt", $a_Image, 1, 4, 5, "", 0, 5, 0, 0)
程序全代码如下(参看lynfr8师兄的代码):#include <IE.au3>
#include <Ocr.au3>
#Include <Clipboard.au3>
#Include <ScreenCapture.au3>
Dim $i=0
$oIE = _IECreate ("http://www.ys168.com/ht/login.aspx")
$sHTML = _IEBodyReadHTML ($oIE)
$array = StringRegExp($sHTML, '/ht/sjzx/ys_vf_img.aspx\?lx=htdl&sj=(.*?:\d{1,2}:\d{1,2})', 3)
$User = _IEGetObjByName($oIE,"dl1")
$User.value = "autoittest"
$PW = _IEGetObjByName($oIE,"dl2")
$PW.value = "autoittest"
$oImgs = _IEImgGetCollection ($oIE)
For $oImg In $oImgs
$i+=1
If $oImg.src="http://www.ys168.com/ht/sjzx/ys_vf_img.aspx?lx=htdl&sj="&$array Then
$oPic = $oIE.Document.body.createControlRange()
$oPic.Add($oImg)
$oPic.execCommand("Copy")
$img = ClipGet()
_ClipBoard_Open (0)
Local $hMemory = _ClipBoard_GetDataEx ($CF_BITMAP)
_ClipBoard_Close ()
FileDelete(@ScriptDir & "\ys168temp.bmp")
_ScreenCapture_SaveImage (@ScriptDir & "\ys168temp.bmp", $hMemory)
EndIf
Next
$a_Image = myReadImageToArray(@ScriptDir & "\ys168temp.bmp", False, 1, 0x777777)
$s_code_string = myArrarOCR(@ScriptDir&"\ys168CodeFont.txt", $a_Image, 1, 4, 8, "", 5, 1, 4, 5)
$Code = _IEGetObjByName($oIE,"dl3")
$Code.value = $s_code_string
$Login = _IEGetObjByName($oIE, "bu1")
$Login.click 本帖最后由 sdwd_lhq 于 2011-9-13 15:23 编辑
不知那个颜色值是怎么设定的,知道的师兄不吝赐教。。。。 本帖最后由 sdwd_lhq 于 2011-9-13 14:18 编辑
哈哈,似乎是明白了一点,
1、我先下载了20个验证码图片,然后按F1,加入这些图片,然后将每一张图片的文字手工录入进去。
2、然后按“打开图片”,选择一个图片,录入字数,上边距,下边距,字间距,字符宽度等像素信息,
3、然后按“建特征库”按钮。
但我陷入了一个循环,反复出现下面的“验证码学习”窗口,?????
这个按钮是不是能生成codefont.txt文件?
再就是色值代表什么的颜色值?
这个 还没的搞过,学习下! 似乎明白了一点,这种设字符宽度的识别是有局限性的,字符宽度不等宽,是不是就无法识别了呢?
支持一下,扫描挺好的! 这种颜色单一,字符清晰的。我用Tesseract-OCR识别,识别率能够达到100%,同仁可以试试
页:
[1]