完美驗證碼識別系統,驗證碼插件使用幫助文檔


  該驗證碼插件為《完美驗證碼識別系統V3.2.1》的python封裝,提供給UiBot實現需驗證碼識別的場景的解決方案。


載入識別庫

LoadDat(datPath, password)

函數說明:
       從文件中載入識別庫文件,成功返回True,否則返回False。

參數:

參數名 類型 說明
datPath 文本型 識別庫文件所在全路徑
password 文本型 識別庫調用密碼

返回值:

返回結果 類型 說明
True boolean型 載入識別庫成功
False boolean型 載入識別庫失敗

示例:

import wmcode // 識別庫路徑 Dim datPath = "d:\\demo\\遼寧-12345606.dat" // 識別庫密碼 Dim password = "12345606" // 字庫標識 Dim flag // 加載識別庫 flag = wmcode.LoadDat(datPath,password) If flag TracePrint("識別庫加載成功") else TracePrint("識別庫加載失敗") end if 

LoadDatEx(datPath, password)

函數說明:
       從文件中載入識別庫文件,成功返回字庫實例Id,失敗返回-1。
                             該函數用於多個字庫同時使用場景。根據字庫id對不同的圖片進行識別。

參數:

參數名 類型 說明
datPath 文本型 識別庫文件所在全路徑
password 文本型 識別庫調用密碼

返回值:

返回結果 類型 說明
字庫id 整數型 載入識別庫成功,返回字庫id
-1 整數型 載入識別庫失敗

示例:

import wmcode // 識別庫路徑 Dim datPath = "d:\\demo\\遼寧-12345606.dat" // 識別庫密碼 Dim password = "12345606" // 字庫標識 Dim flag // 加載識別庫 flag = wmcode.LoadDatEx(datPath,password) If flag > -1 TracePrint("識別庫加載成功,字庫id為:" & flag) else TracePrint("識別庫加載失敗") end if 

設定識別庫選項

SetWmOption(OptionIndex, OptionValue)

函數說明:
       設定識別庫選項。設定成功返回真,否則返回假。

參數:

參數名 類型 說明
OptionIndex 整數型 識別庫文件所在全路徑
OptionValue 整數型 識別庫調用密碼

參數取值范圍:

  • [x] 返回方式
OptionIndex OptionValue 默認值 說明
1 0 0 直接返回驗證碼
1 1 0 返回驗證碼字符和矩形范圍。例如:S,10,11,12,13\|A,1,2,3,4 表示識別到文本 S >>左邊橫坐標10,左邊縱坐標11,右邊橫坐標,右邊縱坐標12
1 2 0 返回驗證碼字符和總體信任度。例如:abcd\|98 表示識別結果abcd,總體信任度98
1 3 0 返回驗證碼字符和矩形范圍形和總體信任度。例如:S,10,11,12,13\|A,1,2,3,4\|98 >>表示識別到文本 S 左邊橫坐標10,左邊縱坐標11,右邊橫坐標,右邊縱坐標12....總體信任度為98
  • [x] 識別方式

可以進行分割的驗證碼,建議優先使用分割識別,因為分割后不僅能提高識別率,而且還能提高識別速度

OptionIndex OptionValue 默認值 說明
2 0 0 整體識別
2 1 0 連通分割識別
2 2 0 縱分割識別
2 3 0 橫分割識別
2 4 0 橫縱分割識別
  • [x] 識別模式

識圖模式指的是背景白色視為透明不進行對比,識字模式指的是白色不視為透明,也加入對比。
絕大多數我們都是使用識圖模式,但是有少數部分驗證碼,使用識字模式更佳。

OptionIndex OptionValue 默認值 說明
3 0 0 識圖模式
3 1 0 識字模式
  • [x] 識別加速

一般建議開啟加速功能,開啟后對識別率幾乎不影響。而且能提高3-5倍識別速度。

OptionIndex OptionValue 默認值 說明
4 0 0 不加速
4 1 0 使用加速
  • [x] 加速返回

使用加速返回一般用在粗體字識別的時候,可以大大提高識別速度,但是使用后,會稍微影響識別率。識別率有所下降。一般不是粗體字比較耗時的驗證碼,一般不用開啟

OptionIndex OptionValue 默認值 說明
5 0 0 不加速返回
5 1 0 使用加速返回
  • [x] 最小相似度
OptionIndex OptionValue 默認值 說明
6 0~100 90 相似度值,值越大越嚴格
  • [x] 字符間隙

如果字符重疊,根據實際情況填寫。如:-3允許重疊3像素;如果不重疊的話,直接寫0。
注意:重疊和粘連概念不一樣,粘連的話,其實字符間隙為0。

OptionIndex OptionValue 默認值 說明
7 -10~0 0 字符重疊間隙

返回值:

返回結果 類型 說明
True boolean型 設置成功
False boolean型 設置失敗

示例:

import wmcode // 識別庫路徑 Dim datPath = "d:\\demo\\遼寧-12345606.dat" // 識別庫密碼 Dim password = "12345606" // 字庫標識 Dim flag // 加載識別庫 flag = wmcode.LoadDat(datPath,password) // 設置“返回方式”為:返回驗證碼字符和矩形范圍 wmcode.SetWmOption(1,1) // 設置“識別方式”為:縱分割識別 wmcode.SetWmOption(2,2) If flag TracePrint("識別庫加載成功") else TracePrint("識別庫加載失敗") end if 

SetWmOptionEx(wmid, OptionIndex, OptionValue)

函數說明:
       設定指定id的識別庫選項。設定成功返回真,否則返回假。

參數:

參數名 類型 說明
wmid 整數型 字庫id(LoadDatEx返回的字庫id)
OptionIndex 整數型 識別庫文件所在全路徑
OptionValue 整數型 識別庫調用密碼

參數取值范圍:

  • [x] 返回方式
OptionIndex OptionValue 默認值 說明
1 0 0 直接返回驗證碼
1 1 0 返回驗證碼字符和矩形范圍。例如:S,10,11,12,13\|A,1,2,3,4 表示識別到文本 S >>左邊橫坐標10,左邊縱坐標11,右邊橫坐標,右邊縱坐標12
1 2 0 返回驗證碼字符和總體信任度。例如:abcd\|98 表示識別結果abcd,總體信任度98
1 3 0 返回驗證碼字符和矩形范圍形和總體信任度。例如:S,10,11,12,13\|A,1,2,3,4\|98 >>表示識別到文本 S 左邊橫坐標10,左邊縱坐標11,右邊橫坐標,右邊縱坐標12....總體信任度為98
  • [x] 識別方式

可以進行分割的驗證碼,建議優先使用分割識別,因為分割后不僅能提高識別率,而且還能提高識別速度

OptionIndex OptionValue 默認值 說明
2 0 0 整體識別
2 1 0 連通分割識別
2 2 0 縱分割識別
2 3 0 橫分割識別
2 4 0 橫縱分割識別
  • [x] 識別模式

識圖模式指的是背景白色視為透明不進行對比,識字模式指的是白色不視為透明,也加入對比。
絕大多數我們都是使用識圖模式,但是有少數部分驗證碼,使用識字模式更佳。

OptionIndex OptionValue 默認值 說明
3 0 0 識圖模式
3 1 0 識字模式
  • [x] 識別加速

一般建議開啟加速功能,開啟后對識別率幾乎不影響。而且能提高3-5倍識別速度。

OptionIndex OptionValue 默認值 說明
4 0 0 不加速
4 1 0 使用加速
  • [x] 加速返回

使用加速返回一般用在粗體字識別的時候,可以大大提高識別速度,但是使用后,會稍微影響識別率。識別率有所下降。一般不是粗體字比較耗時的驗證碼,一般不用開啟

OptionIndex OptionValue 默認值 說明
5 0 0 不加速返回
5 1 0 使用加速返回
  • [x] 最小相似度
OptionIndex OptionValue 默認值 說明
6 0~100 90 相似度值,值越大越嚴格
  • [x] 字符間隙

如果字符重疊,根據實際情況填寫。如:-3允許重疊3像素;如果不重疊的話,直接寫0。
注意:重疊和粘連概念不一樣,粘連的話,其實字符間隙為0。

OptionIndex OptionValue 默認值 說明
7 -10~0 0 字符重疊間隙

返回值:

返回結果 類型 說明
True boolean型 設置成功
False boolean型 設置失敗

示例:

import wmcode // 識別庫路徑 Dim datPath = "d:\\demo\\遼寧-12345606.dat" // 識別庫密碼 Dim password = "12345606" // 字庫標識 Dim flag // 加載識別庫 flag = wmcode.LoadDatEx(datPath,password) // 設置“返回方式”為:返回驗證碼字符和矩形范圍 wmcode.SetWmOptionEx(flag,1,1) // 設置“識別方式”為:縱分割識別 wmcode.SetWmOptionEx(flag,2,2) If flag > -1 TracePrint("識別庫加載成功,字庫id為:" & flag) else TracePrint("識別庫加載失敗") end if 

識別驗證碼

getCodeFormFile(img)

函數說明:
       識別一個圖像文件,返回識別的驗證碼。

參數:

參數名 類型 說明
img 文本型 圖像文件所在全路徑

返回值:

返回結果 類型 說明
驗證碼字符串 文本型 識別庫成功,返回驗證碼文字
"" 文本型 識別失敗

示例:

import wmcode // 識別庫路徑 Dim datPath = "d:\\demo\\遼寧-12345606.dat" // 識別庫密碼 Dim password = "12345606" // 待識別驗證碼圖片路徑 dim imgPath = "d:\\demo\\ln.bmp" // 字庫標識 Dim flag, vcode // 加載識別庫 flag = wmcode.LoadDat(datPath,password) If flag // 識別圖片 vcode = wmcode.getCodeFormFile(imgPath) TracePrint("識別庫加載成功,驗證碼:" & vcode) else TracePrint("識別庫加載失敗") end if 

getCodeFormFileEx(wmid, img)

函數說明:
       識別一個圖像文件,返回識別的驗證碼。

參數:

參數名 類型 說明
wmid 整數型 字庫id(LoadDatEx返回的字庫id)
img 文本型 圖像文件所在全路徑

返回值:

返回結果 類型 說明
驗證碼字符串 文本型 識別庫成功,返回驗證碼文字
"" 文本型 識別失敗

示例:

import wmcode // 識別庫路徑 Dim datPath = "d:\\demo\\遼寧-12345606.dat" // 識別庫密碼 Dim password = "12345606" // 待識別驗證碼圖片路徑 dim imgPath = "d:\\demo\\ln.bmp" // 字庫標識 Dim flag, vcode // 加載識別庫 flag = wmcode.LoadDatEx(datPath,password) If flag > -1 // 識別圖片 vcode = wmcode.getCodeFormFileEx(flag,imgPath) TracePrint("識別庫加載成功,驗證碼:" & vcode) else TracePrint("識別庫加載失敗") end if 

計算數學表達式

Calculator(Expression)

函數說明:
       計算數學表達式。功能簡單,只是用來計算那些需要填寫計算結果的驗證碼。

參數:

參數名 類型 說明
Expression 文本型 數學表達式,只能計算加,減,乘,除,次方運算,支持小括號,中括號,大括號運算,支持負數運算

返回值:

返回結果 類型 說明
表達式計算結果 文本型 計算成功,返回結算結果
"" 文本型 識別失敗

示例:

import wmcode TracePrint(wmcode.Calculator("1+2"))


作者:LCSan
鏈接:https://www.jianshu.com/p/ba1401d68ba9
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM