C#实现冲顶大会辅助工具 (截图+图像识别+搜索)

 行业动态     |      2019-08-29 14:18

前两天在博客园看到 .NET开发一个微信跳一跳辅助程序, 原来可以通过C#连接手机操作。正好朋友圈有人分享“冲顶大会”。冲顶大会是一个在线答题APP。每次12道题,每道题有10秒钟的答题时间,全对者瓜分1万或10万奖金。于是试着答了一次,大部分题目都不算难,即便不知道但通过关键词搜索应该也很容易找到答案的。但限制是只有10秒钟答题时间,基本来不及输入问题。于是试着写了一个答题的辅助工具,基本思路是通过adb手机截图,然后用百度图像识别开发包识别问题,再自动搜索。

参考中国.NET研究协会在.NET开发一个微信跳一跳辅助程序的代码。adb截图命令如下:

adb shell /system/bin/screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png d:/screenshot.png

附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;
public void GeneralBasicDemo {
 var image = File.ReadAllBytes;
 // 调用通用文字识别, 图片参数为本地图片,可能会抛出网络等异常,请使用try/catch捕获
 var result = client.GeneralBasic;
 Console.WriteLine;
 // 如果有可选参数
 var options = new Dictionary string, object {
 {"language_type", "CHN_ENG"},
 {"detect_direction", "true"},
 {"detect_language", "true"},
 {"probability", "true"}
 // 带参数调用通用文字识别, 图片参数为本地图片
 result = client.GeneralBasic;
 Console.WriteLine;
}

参考http://ai.baidu.com/docs#/OCR-Csharp-SDK/top

里面的题目更多都中国“内事”,所以选择用百度搜索。但百度搜索好像没哟接口提供,所以使用直接打开网页http://www.baidu.com/s?wd=关键字 cl=3的方式。

 

最好附上效果图

1

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

注:本文仅限学习adb,Baidu OCR和交流之用。目前还有许多局限性,比如从截图到识别再到搜索大概需要4,5秒的时间,还需要快速在网页上辨别答案,剩下供选择的时间几乎很少。另外有些答案直接搜索是没法搜到的,比如“下面那些景点不在北京?”

如有同学想下载APP试玩的请加邀请码580805,你和我都会多一次复活机会。