完美验证码识别系统,验证码插件使用帮助文档

时间:2019-12-11
本文章向大家介绍完美验证码识别系统,验证码插件使用帮助文档,主要包括完美验证码识别系统,验证码插件使用帮助文档使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

  该验证码插件为《完美验证码识别系统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] 返回方式
OptionIndexOptionValue默认值说明
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] 识别方式

可以进行分割的验证码,建议优先使用分割识别,因为分割后不仅能提高识别率,而且还能提高识别速度

OptionIndexOptionValue默认值说明
2 0 0 整体识别
2 1 0 连通分割识别
2 2 0 纵分割识别
2 3 0 横分割识别
2 4 0 横纵分割识别
  • [x] 识别模式

识图模式指的是背景白色视为透明不进行对比,识字模式指的是白色不视为透明,也加入对比。
绝大多数我们都是使用识图模式,但是有少数部分验证码,使用识字模式更佳。

OptionIndexOptionValue默认值说明
3 0 0 识图模式
3 1 0 识字模式
  • [x] 识别加速

一般建议开启加速功能,开启后对识别率几乎不影响。而且能提高3-5倍识别速度。

OptionIndexOptionValue默认值说明
4 0 0 不加速
4 1 0 使用加速
  • [x] 加速返回

使用加速返回一般用在粗体字识别的时候,可以大大提高识别速度,但是使用后,会稍微影响识别率。识别率有所下降。一般不是粗体字比较耗时的验证码,一般不用开启

OptionIndexOptionValue默认值说明
5 0 0 不加速返回
5 1 0 使用加速返回
  • [x] 最小相似度
OptionIndexOptionValue默认值说明
6 0~100 90 相似度值,值越大越严格
  • [x] 字符间隙

如果字符重叠,根据实际情况填写。如:-3允许重叠3像素;如果不重叠的话,直接写0。
注意:重叠和粘连概念不一样,粘连的话,其实字符间隙为0。

OptionIndexOptionValue默认值说明
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] 返回方式
OptionIndexOptionValue默认值说明
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] 识别方式

可以进行分割的验证码,建议优先使用分割识别,因为分割后不仅能提高识别率,而且还能提高识别速度

OptionIndexOptionValue默认值说明
2 0 0 整体识别
2 1 0 连通分割识别
2 2 0 纵分割识别
2 3 0 横分割识别
2 4 0 横纵分割识别
  • [x] 识别模式

识图模式指的是背景白色视为透明不进行对比,识字模式指的是白色不视为透明,也加入对比。
绝大多数我们都是使用识图模式,但是有少数部分验证码,使用识字模式更佳。

OptionIndexOptionValue默认值说明
3 0 0 识图模式
3 1 0 识字模式
  • [x] 识别加速

一般建议开启加速功能,开启后对识别率几乎不影响。而且能提高3-5倍识别速度。

OptionIndexOptionValue默认值说明
4 0 0 不加速
4 1 0 使用加速
  • [x] 加速返回

使用加速返回一般用在粗体字识别的时候,可以大大提高识别速度,但是使用后,会稍微影响识别率。识别率有所下降。一般不是粗体字比较耗时的验证码,一般不用开启

OptionIndexOptionValue默认值说明
5 0 0 不加速返回
5 1 0 使用加速返回
  • [x] 最小相似度
OptionIndexOptionValue默认值说明
6 0~100 90 相似度值,值越大越严格
  • [x] 字符间隙

如果字符重叠,根据实际情况填写。如:-3允许重叠3像素;如果不重叠的话,直接写0。
注意:重叠和粘连概念不一样,粘连的话,其实字符间隙为0。

OptionIndexOptionValue默认值说明
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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/huangcong/p/12021688.html