由于百度云识别对于简单文字识别的准确率还可以,那么我们就用它识别一个算数的验证码。
验证图片的样子,如下图:
这里分别是加减乘除四则运算,分别计算每个等式的结果。
看一下运行效果~
基本原理(思路过程)
一、截图验证码图片,保存到模拟器中~
二、识别图片中的内容
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