C#實現衝頂大會輔助工具(截圖+圖像識別+搜索)

前兩天在博客園看到 .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

1

和代碼:https://gitee.com/roytec/BaiduOCRDemo

注:本文僅限學習adb,Baidu OCR和交流之用。目前還有許多侷限性,好比從截圖到識別再到搜索大概須要4,5秒的時間,還須要快速在網頁上辨別答案,剩下供選擇的時間幾乎不多。另外有些答案直接搜索是無法搜到的,好比「下面那些景點不在北京?」

相關文章
相關標籤/搜索