验证码插件使用帮助文档

wmcode UiBot 验证码


    该验证码插件为《完美验证码识别系统V3.2.1》的python封装,提供给UiBot实现需验证码识别的场景的解决方案。


载入识别库

LoadDat(datPath, password)

函数说明:从文件中载入识别库文件,成功返回True,否则返回False。

参数:

参数名 类型 说明
datPath 文本型 识别库文件所在全路径
password 文本型 识别库调用密码

返回值:

返回结果 类型 说明
True boolean型 载入识别库成功
False boolean型 载入识别库失败

示例:

  1. import wmcode
  2. // 识别库路径
  3. Dim datPath = "d:\\demo\\辽宁-12345606.dat"
  4. // 识别库密码
  5. Dim password = "12345606"
  6. // 字库标识
  7. Dim flag
  8. // 加载识别库
  9. flag = wmcode.LoadDat(datPath,password)
  10. If flag
  11. TracePrint("识别库加载成功")
  12. else
  13. TracePrint("识别库加载失败")
  14. end if

LoadDatEx(datPath, password)

函数说明:从文件中载入识别库文件,成功返回字库实例Id,失败返回-1。
                 该函数用于多个字库同时使用场景。根据字库id对不同的图片进行识别。

参数:

参数名 类型 说明
datPath 文本型 识别库文件所在全路径
password 文本型 识别库调用密码

返回值:

返回结果 类型 说明
字库id 整数型 载入识别库成功,返回字库id
-1 整数型 载入识别库失败

示例:

  1. import wmcode
  2. // 识别库路径
  3. Dim datPath = "d:\\demo\\辽宁-12345606.dat"
  4. // 识别库密码
  5. Dim password = "12345606"
  6. // 字库标识
  7. Dim flag
  8. // 加载识别库
  9. flag = wmcode.LoadDatEx(datPath,password)
  10. If flag > -1
  11. TracePrint("识别库加载成功,字库id为:" & flag)
  12. else
  13. TracePrint("识别库加载失败")
  14. end if

设定识别库选项

SetWmOption(OptionIndex, OptionValue)

函数说明:设定识别库选项。设定成功返回真,否则返回假。

参数:

参数名 类型 说明
OptionIndex 整数型 识别库文件所在全路径
OptionValue 整数型 识别库调用密码

参数取值范围:

  • 返回方式
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
  • 识别方式
    可以进行分割的验证码,建议优先使用分割识别,因为分割后不仅能提高识别率,而且还能提高识别速度
OptionIndex OptionValue 默认值 说明
2 0 0 整体识别
2 1 0 连通分割识别
2 2 0 纵分割识别
2 3 0 横分割识别
2 4 0 横纵分割识别
  • 识别模式
    识图模式指的是背景白色视为透明不进行对比,识字模式指的是白色不视为透明,也加入对比。
    绝大多数我们都是使用识图模式,但是有少数部分验证码,使用识字模式更佳。
OptionIndex OptionValue 默认值 说明
3 0 0 识图模式
3 1 0 识字模式
  • 识别加速
    一般建议开启加速功能,开启后对识别率几乎不影响。而且能提高3-5倍识别速度。
OptionIndex OptionValue 默认值 说明
4 0 0 不加速
4 1 0 使用加速
  • 加速返回
    使用加速返回一般用在粗体字识别的时候,可以大大提高识别速度,但是使用后,会稍微影响识别率。识别率有所下降。一般不是粗体字比较耗时的验证码,一般不用开启
OptionIndex OptionValue 默认值 说明
5 0 0 不加速返回
5 1 0 使用加速返回
  • 最小相似度
OptionIndex OptionValue 默认值 说明
6 0~100 90 相似度值,值越大越严格
  • 字符间隙
    如果字符重叠,根据实际情况填写。如:-3允许重叠3像素;如果不重叠的话,直接写0。
    注意:重叠和粘连概念不一样,粘连的话,其实字符间隙为0。
OptionIndex OptionValue 默认值 说明
7 -10~0 0 字符重叠间隙

返回值:

返回结果 类型 说明
True boolean型 设置成功
False boolean型 设置失败

示例:

  1. import wmcode
  2. // 识别库路径
  3. Dim datPath = "d:\\demo\\辽宁-12345606.dat"
  4. // 识别库密码
  5. Dim password = "12345606"
  6. // 字库标识
  7. Dim flag
  8. // 加载识别库
  9. flag = wmcode.LoadDat(datPath,password)
  10. // 设置“返回方式”为:返回验证码字符和矩形范围
  11. wmcode.SetWmOption(1,1)
  12. // 设置“识别方式”为:纵分割识别
  13. wmcode.SetWmOption(2,2)
  14. If flag
  15. TracePrint("识别库加载成功")
  16. else
  17. TracePrint("识别库加载失败")
  18. end if

SetWmOptionEx(wmid, OptionIndex, OptionValue)

函数说明:设定指定id的识别库选项。设定成功返回真,否则返回假。

参数:

参数名 类型 说明
wmid 整数型 字库id(LoadDatEx返回的字库id)
OptionIndex 整数型 识别库文件所在全路径
OptionValue 整数型 识别库调用密码

参数取值范围:

  • 返回方式
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
  • 识别方式
    可以进行分割的验证码,建议优先使用分割识别,因为分割后不仅能提高识别率,而且还能提高识别速度
OptionIndex OptionValue 默认值 说明
2 0 0 整体识别
2 1 0 连通分割识别
2 2 0 纵分割识别
2 3 0 横分割识别
2 4 0 横纵分割识别
  • 识别模式
    识图模式指的是背景白色视为透明不进行对比,识字模式指的是白色不视为透明,也加入对比。
    绝大多数我们都是使用识图模式,但是有少数部分验证码,使用识字模式更佳。
OptionIndex OptionValue 默认值 说明
3 0 0 识图模式
3 1 0 识字模式
  • 识别加速
    一般建议开启加速功能,开启后对识别率几乎不影响。而且能提高3-5倍识别速度。
OptionIndex OptionValue 默认值 说明
4 0 0 不加速
4 1 0 使用加速
  • 加速返回
    使用加速返回一般用在粗体字识别的时候,可以大大提高识别速度,但是使用后,会稍微影响识别率。识别率有所下降。一般不是粗体字比较耗时的验证码,一般不用开启
OptionIndex OptionValue 默认值 说明
5 0 0 不加速返回
5 1 0 使用加速返回
  • 最小相似度
OptionIndex OptionValue 默认值 说明
6 0~100 90 相似度值,值越大越严格
  • 字符间隙
    如果字符重叠,根据实际情况填写。如:-3允许重叠3像素;如果不重叠的话,直接写0。
    注意:重叠和粘连概念不一样,粘连的话,其实字符间隙为0。
OptionIndex OptionValue 默认值 说明
7 -10~0 0 字符重叠间隙

返回值:

返回结果 类型 说明
True boolean型 设置成功
False boolean型 设置失败

示例:

  1. import wmcode
  2. // 识别库路径
  3. Dim datPath = "d:\\demo\\辽宁-12345606.dat"
  4. // 识别库密码
  5. Dim password = "12345606"
  6. // 字库标识
  7. Dim flag
  8. // 加载识别库
  9. flag = wmcode.LoadDatEx(datPath,password)
  10. // 设置“返回方式”为:返回验证码字符和矩形范围
  11. wmcode.SetWmOptionEx(flag,1,1)
  12. // 设置“识别方式”为:纵分割识别
  13. wmcode.SetWmOptionEx(flag,2,2)
  14. If flag > -1
  15. TracePrint("识别库加载成功,字库id为:" & flag)
  16. else
  17. TracePrint("识别库加载失败")
  18. end if

识别验证码

getCodeFormFile(img)

函数说明:识别一个图像文件,返回识别的验证码。

参数:

参数名 类型 说明
img 文本型 图像文件所在全路径

返回值:

返回结果 类型 说明
验证码字符串 文本型 识别库成功,返回验证码文字
null 或 "" null 识别失败

示例:

  1. import wmcode
  2. // 识别库路径
  3. Dim datPath = "d:\\demo\\辽宁-12345606.dat"
  4. // 识别库密码
  5. Dim password = "12345606"
  6. // 待识别验证码图片路径
  7. dim imgPath = "d:\\demo\\ln.bmp"
  8. // 字库标识
  9. Dim flag, vcode
  10. // 加载识别库
  11. flag = wmcode.LoadDat(datPath,password)
  12. If flag
  13. // 识别图片
  14. vcode = wmcode.getCodeFormFile(imgPath)
  15. TracePrint("识别库加载成功,验证码:" & vcode)
  16. else
  17. TracePrint("识别库加载失败")
  18. end if

getCodeFormFileEx(wmid, img)

函数说明:识别一个图像文件,返回识别的验证码。

参数:

参数名 类型 说明
wmid 整数型 字库id(LoadDatEx返回的字库id)
img 文本型 图像文件所在全路径

返回值:

返回结果 类型 说明
验证码字符串 文本型 识别库成功,返回验证码文字
"" 文本型 识别失败

示例:

  1. import wmcode
  2. // 识别库路径
  3. Dim datPath = "d:\\demo\\辽宁-12345606.dat"
  4. // 识别库密码
  5. Dim password = "12345606"
  6. // 待识别验证码图片路径
  7. dim imgPath = "d:\\demo\\ln.bmp"
  8. // 字库标识
  9. Dim flag, vcode
  10. // 加载识别库
  11. flag = wmcode.LoadDatEx(datPath,password)
  12. If flag > -1
  13. // 识别图片
  14. vcode = wmcode.getCodeFormFileEx(flag,imgPath)
  15. TracePrint("识别库加载成功,验证码:" & vcode)
  16. else
  17. TracePrint("识别库加载失败")
  18. end if

计算数学表达式

Calculator(Expression)

函数说明:计算数学表达式。功能简单,只是用来计算那些需要填写计算结果的验证码。

参数:

参数名 类型 说明
Expression 文本型 数学表达式,只能计算加,减,乘,除,次方运算,支持小括号,中括号,大括号运算,支持负数运算

返回值:

返回结果 类型 说明
表达式计算结果 文本型 计算成功,返回结算结果
"" 文本型 识别失败

示例:

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