这两天冲顶大会之类的直播答题 APP 突然火了起来,萌生了使用截图,文字识别,搜索来玩答题的想法。
因为截图时间、搜索结果等限制,使用文字识别搜索,能提供的辅助作用有限。
非常感谢关注,欢迎大家 PR 更多有趣的想法和优化。
目录
config/configure.conf
中ADB 获取手机截屏
adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png .
OCR 识别题目与选项文字
两个方法:
搜索判断
以下为两个示例结果
参考了 I Hacked HQ Trivia But Here’s How They Can Stop Me
windows
下载地址:https://adb.clockworkmod.com/ ,并配置环境变量
Mac
使用 brew 进行安装 brew cask install android-platform-tools
安装完后插入安卓设备且安卓已打开 USB 调试模式,终端输入 adb devices
,显示设备号则表示成功。我手上的机子是坚果 pro1,第一次不成功,查看设备管理器有叹号,使用 handshaker 加载驱动后成功,也可以使用豌豆荚之类的试试。
List of devices attached
6934dc33 device
若不成功,可以参考Android 和 iOS 操作步骤进行修改
命令行:
pip install -r requirements.txt
或者
pip install pytesseract
pip install pillow
pip install requests
pip install colorama
pip install baidu-aip
Windows下链接: 推荐使用安装版,在安装时选择增加中文简体语言包
tessdata
目录下其他系统: https://github.com/tesseract-ocr/tesseract/wiki
config/configure.conf
中相应参数信息[region]
# 题目与选项区域
question_region = 50, 350, 1000, 560
choices_region = 75, 535, 1000, 1200
# 题目和选项一起的区域
combine_region = 50, 350, 1000, 1200
[tesseract]
# windows
# tesseract 安装路径
tesseract_cmd = C:\\Program Files (x86)\\Tesseract-OCR\\tesseract
# 语言包目录和参数
tessdata_dir_config = --tessdata-dir "C:\\Program Files (x86)\\Tesseract-OCR\\tessdata" --psm 6
# mac 环境, 文件夹分割请使用 / 代替 \\ 如 '/usr/local/Cellar/tesseract/3.05.01/bin/tesseract'
注: 可以用 GetImgTool.py
调整题目截取位置
可以到这里查看部分手机截图设置
python GetQuestionAndroid.py
会自动识别文字并打开浏览器
部分朋友成功
python GetQuestionIos.py
在百度平台上创建应用申请 API Key 和 Secret Key
安装所需 python 包
命令行:
pip install -r requirements.txt
或者
pip install pytesseract
pip install pillow
pip install requests
pip install colorama
pip install baidu-aip
在 config/configure.conf
中加入相应 key, 并设置截取区域
[region]
# 题目和选项一起的区域
combine_region = 50, 350, 1000, 1200
[baidu_api]
APP_ID =
API_KEY =
SECRET_KEY =
在GetQuestionAndroid.py
中切换识别方法
#ocr_img: 需要分别截取题目和选项区域,使用 Tesseract
#ocr_img_tess: 题目和选项一起截,使用 Tesseract
#ocr_img_baidu: 题目和选项一起截,使用 baidu ocr,需配置 key
# question, choices = ocr.ocr_img(img, config)
# question, choices = ocr.ocr_img_tess(img, config)
question, choices = ocr.ocr_img_baidu(img, config)
其它环境配置与 Tesseract 步骤相同
运行脚本
安卓: python GetQuestionAndroid.py
Tesseract 参数,若识别有问题可以更改参数解决 https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc
结果分析三种方法可以选择,可以加#
注释掉只保留一个方法
windows 命令行有很多乱码问题,建议使用 cmder 作为命令工具,可以支持 linux 命令
版本说明
最新版本:本目录
有了 ADB 截图,能玩出更多花样。python 写小脚本真的很方便。