按鍵精靈安卓版ocr只能自己制作字庫,准確率實在是低,而且對於大量漢字的識別沒有辦法
按鍵精靈通過調用百度識別ocr可以實現快速准確的識別漢字
首先需要注冊百度開放ai賬號
選擇文字識別,創建應用
應用名稱,類型,描述隨便寫,包名不需要
創建之后記住API Key和Secret Key,一會要用
瀏覽器訪問
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度雲應用的API Key】&client_secret=【百度雲應用的Secret Key】
得到 access_token
然后就可以使用了,下面是示例代碼
Function 百度識別(x,y,z,w)//x,y,z,w為利用按鍵精靈抓抓獲取的范圍
Import "ShanHai.lua"
Import "Cjson.lua"
Delay 1000
SnapShot "/sdcard/test.png",x,y,z,w//保存范圍截圖
Dim bs64,urlcode
bs64 = ShanHai.ReadFileBase("/sdcard/test.png")//先進行base64轉碼
urlcode=ShanHai.CharToUrl(bs64)//再進行urlcode轉碼
Dim 請求地址,Post數據,返回值,token,table//下面構造post
token="111111111111111111111111111111111111111111111"//這個就是accesstoken
請求地址 ="https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?"//注意最后有一個問號
Post數據 = "access_token=" & token & "&image=" & urlcode
返回值 = URL.Post(請求地址, Post數據)//返回值是json
TracePrint 返回值
table = Cjson.Decode(返回值)//轉換為鍵表
If IsNull(table["words_result"][1]) = False Then //如果結果不為空,程序返回識別結果
百度識別 = table["words_result"][1]["words"]
End If
End Function
有時候會存在失敗情況,主要原因可能是截圖問題,建議截圖前加入延時
20200712
腳本以后可能寫的很少了,但還是想把自己的一些 感想記錄一下,現在也懶得系統整理了,就寫一下我理想中的腳本吧
腳本運行的過程是從一個狀態轉移到另一個狀態的過程,曾經寫逆水寒的一個腳本,寫了很多,后面才發現其實任務開始后只要兩個狀態就可以完美的進行下去,所以在些游戲腳本時應該將腳本過程划分為不同的狀態,不同狀態之間可能可以合並,減少代碼量。
判斷狀態時一般有 兩種方法,一種是標志出現,一種是標志消失。標志出現方法即判斷該狀態特定的標志是否出現,這種方法容易出現漏判的情況,但是比較好的方法,能夠有效的防止狀態轉移錯誤。標志消失方法是判斷舊狀態的標志是否消失,這種方法會遇到錯誤進入狀態的情況,使用需要警惕。
寒假寫了一個小游戲的腳本,看似簡單,但版本也迭代了很多很多次,每一次迭代都都感覺天衣無縫,又都會出現新的問題。但需要注意的是腳本要盡量減少一些敏感操作,對於小游戲來說就是右上角的點擊和返回、主頁的按鍵模擬需要小心,這些按鍵可能造成游戲的停止,其他操作萬一誤操作造成的影響較小。