百度云通过验证码登录 (百度云实现文字识别)

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

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

百度云实现文字识别,百度云语音识别怎么用

百度云实现文字识别,百度云语音识别怎么用

百度云实现文字识别,百度云语音识别怎么用

百度云实现文字识别,百度云语音识别怎么用

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

看一下运行效果~

百度云实现文字识别,百度云语音识别怎么用

基本原理(思路过程)

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

百度云实现文字识别,百度云语音识别怎么用

二、识别图片中的内容

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