快捷搜索:  汽车  科技

文字识别 小程序(一个简单的文字识别游戏验证)

文字识别 小程序(一个简单的文字识别游戏验证)悄(3)锦(2)邦(6)番(9)③逐个遍历4个字在9个字中的位置,如我们例子中:脚本的思路有五步:①获取每个按钮的坐标存入数组②分别识别两部分的文字,第一部分是4个字,第二部分是9个字

大家好,我是公众号3分钟学堂的郭立员~

今天在群里看到有人问怎么用脚本识别这个游戏验证,下图为我的效果图:

文字识别 小程序(一个简单的文字识别游戏验证)(1)

这个验证需要识别两部分,一是顶部的验证文字,二是每个按钮上面的文字。

对于大量文字的中文识别按键本身没啥太好的识别方式,所以要依靠第三方,我选择用百度云识别。

脚本的思路有五步:

①获取每个按钮的坐标存入数组

②分别识别两部分的文字,第一部分是4个字,第二部分是9个字

③逐个遍历4个字在9个字中的位置,如我们例子中:

悄(3)锦(2)邦(6)番(9)

④把这些位置的数字当做第一步中按钮坐标的数组下标,就可以知道这4个字的位置了。

⑤按照坐标逐个按钮点击。

具体代码如下:

Import "shanhai.lua" Dim token="填写你自己的百度token" Dim points={{169 434} {276 439} {386 438} {158 538} {261 542} {391 530} {184 616} {285 617} {381 617} {327 706}} Dim path="/sdcard/pictures/abc.png" snapshot(path 241 270 336 313) dim str1= baiduocr(token path) snapshot(path 119 409 430 671) dim str2= baiduocr(token path) TracePrint str1 str2 For i = 1 To utf8.Len(str1) TracePrint UTF8.InStr(1 str2 utf8.mid(str1 i 1)) touch points[UTF8.InStr(1 str2 UTF8.Mid(str1 i 1))][1] points[UTF8.InStr(1 str2 UTF8.Mid(str1 i 1))][2] 200 Delay 1000 Next Tap points[10][1] points[10][2] Function baiduocr(token path) Import "shanhai.lua" Dim base64=ShanHai.ReadFileBase(path) Dim 图片=shanhai.CharToUrl(base64) Dim post内容="access_token="&token&"&Content-Type=application/x-www-form-urlencoded&image="&图片&"&detect_direction=true" Dim myjson=url.post("https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic" post内容) Dim table=encode.JsonToTable(myjson) Dim ret_arr() For i = 0 To UBOUND(table["words_result"]) ret_arr(i)=table["words_result"][i 1]["words"] Next baiduocr=join(ret_arr "") End Function

好了内容就这些,觉得还行帮忙给文章点个赞。

=正文完=

猜您喜欢: