安卓按键精灵-用百度云识别通过“算数验证码”

由于百度云识别对于简单文字识别的准确率还可以,那么我们就用它识别一个算数的验证码。

验证图片的样子,如下图:

用百度云识别通过“算数验证码”

用百度云识别通过“算数验证码”

用百度云识别通过“算数验证码”

用百度云识别通过“算数验证码”

这里分别是加减乘除四则运算,分别计算每个等式的结果。

看一下运行效果~

用百度云识别通过“算数验证码”

基本原理(思路过程)

一、截图验证码图片,保存到模拟器中~

用百度云识别通过“算数验证码”

二、识别图片中的内容

45-17= ,此内容是字符串,不能直接运算

三、判断算式是加减乘除的哪一种?

通过查找加号、减号、乘号、除号,判断一下。

四、拆分提取两个数字

用了简单的分割,45-17=通过减号分割成为 “45”和“17=”

对于“17=”去掉最后一个字符,就可以得到17了。

五、对两个数做运算

根据之前判断出来的运算法则,计算出结果。

具体代码如下:

Import "xiaomu.mql"
Dim path="/sdcard/pictures/yz.png"
Dim API="填写你的api"
Dim Secret="填写你的Secret"
SnapShot path, 70, 367, 218, 413
Dim ret=xiaomu.Baiduocr(API,Secret,path)
TracePrint "计算结果是"&count(ret)
Function count(n)
Dim arr
If InStr(1, n, "+") > 0 Then
arr = Split(n, "+")
count=arr(0)+left(arr(1),len(arr(1))-1)
elseIf InStr(1, n, "-") > 0 Then
arr = Split(n, "-")
count=arr(0)-left(arr(1),len(arr(1))-1)
elseIf InStr(1, n, "*") > 0 Then
arr = Split(n, "*")
count=arr(0)*left(arr(1),len(arr(1))-1)
elseIf InStr(1, n, "÷") > 0 Then
arr = Split(n, "÷")
count= arr(0)/left(arr(1),len(arr(1))-1)
End If
End Function

 

赞 (0)