前兩天在博客園看到 .NET開發一個微信跳一跳輔助程序, 原來能夠經過C#鏈接手機操做。正好朋友圈有人分享「衝頂大會」。衝頂大會是一個在線答題APP。每次12道題,每道題有10秒鐘的答題時間,全對者瓜分1萬或10萬獎金。因而試着答了一次,大部分題目都不算難,即使不知道但經過關鍵詞搜索應該也很容易找到答案的。但限制是只有10秒鐘答題時間,基原本不及輸入問題。因而試着寫了一個答題的輔助工具,基本思路是經過adb手機截圖,而後用百度圖像識別開發包識別問題,再自動搜索。html
參考中國.NET研究協會在.NET開發一個微信跳一跳輔助程序的代碼。adb截圖命令以下:git
adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到SDCard) adb pull /sdcard/screenshot.png d:/screenshot.png(保存到電腦)shell
附adb驅動下載地址:微信
http://adbdriver.com/downloads/
adb shell下載地址:網絡
http://adbshell.com/downloads
註冊百度AI開發平臺。工具
在NuGet中搜索 Baidu.AI並安裝.代碼很簡單:學習
// 設置APPID/AK/SK var APP_ID = "你的 App ID"; var API_KEY = "你的 Api Key"; var SECRET_KEY = "你的 Secret Key"; var client = new Baidu.Aip.Ocr.Ocr(API_KEY, SECRET_KEY); public void GeneralBasicDemo() { var image = File.ReadAllBytes("圖片文件路徑"); // 調用通用文字識別, 圖片參數爲本地圖片,可能會拋出網絡等異常,請使用try/catch捕獲 var result = client.GeneralBasic(image); Console.WriteLine(result); // 若是有可選參數 var options = new Dictionary<string, object>{ {"language_type", "CHN_ENG"}, {"detect_direction", "true"}, {"detect_language", "true"}, {"probability", "true"} }; // 帶參數調用通用文字識別, 圖片參數爲本地圖片 result = client.GeneralBasic(image, options); Console.WriteLine(result); }
參考http://ai.baidu.com/docs#/OCR-Csharp-SDK/topspa
裏面的題目更多都中國「內事」,因此選擇用百度搜索。但百度搜索好像沒喲接口提供,因此使用直接打開網頁http://www.baidu.com/s?wd=關鍵字&cl=3的方式。code
最好附上效果圖htm
和代碼:https://gitee.com/roytec/BaiduOCRDemo
注:本文僅限學習adb,Baidu OCR和交流之用。目前還有許多侷限性,好比從截圖到識別再到搜索大概須要4,5秒的時間,還須要快速在網頁上辨別答案,剩下供選擇的時間幾乎不多。另外有些答案直接搜索是無法搜到的,好比「下面那些景點不在北京?」