目的
按键精灵是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务,节省大量人工操作的时间。但按键精灵是不包含图色功能,无法识别屏幕上的图像,根据图像的变化自动执行相应的操作。本篇文章主要讲解下按键精灵TomatoOCR纯本地离线文字识别插件如何使用和集成。
当然除了iOS版的,安卓端也有相应的文字识别插件:按键精灵安卓版纯本地离线文字识别插件
准备工作
1、下载按键精灵手机助手开发工具:按键精灵 (myanjian.com)
2、下载TomatoOCR纯本地离线文字识别插件
- 目前插件支持中英文、繁体字、日语、韩语识别;
- 支持小图、区域图和单行文字识别,准确率高达99%;
- 支持多种返回格式,json\文本\数字\自定义;
- 支持二值化;
- 支持找字返回坐标并点击;
- 超高的稳定性,速度快;
- 不联网、不联网、不联网;
插件集成
1、插件并解压,打开按键精灵,将TomatoOCR.luae文件,导入到按键精灵助手的插件命令中(点击插件命令,右键导入TomatoOCR.luae文件)
2、将ios目录下的TomatoOCR文件和资源文件目录下的opt结尾的4个文件,添加到按键精灵助手中附件中,繁体字等多语言opt文件可以不用拷贝
3、将脚本txt中的内容导入手机助手中
//******************************************************************************
//******欢迎使用TomatoOCR文字识别插件,加入群【469843332】可获取最新版本!!******
//******************************************************************************
Import "TomatoOCR.luae"
dim tmp = GetTempDir()
TomatoOCR.clear(tmp) // 清除已释放的附件资源
TomatoOCR.init(tmp)
TomatoOCR.setRecType ("ch-3.0")
// 注:ch、ch-2.0、ch-3.0版可切换使用,对部分场景可适当调整
// "ch":普通中英文识别,1.0版模型
// "ch-2.0":普通中英文识别,2.0版模型
// "ch-3.0":普通中英文识别,3.0版模型
// "cht":繁体,"japan":日语,"korean":韩语
TomatoOCR.setDetBoxType("rect") // 调整检测模型检测文本参数- 默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本
TomatoOCR.setDetUnclipRatio (1.8) // 调整检测模型检测文本参数 - 默认1.9: 值范围1.6-2.5之间
TomatoOCR.setRecScoreThreshold (0.5) // 识别得分过滤 - 默认0.1,值范围0.1-0.9之间
TomatoOCR.setReturnType("json")
// 返回类型 - 默认"json": 包含得分、坐标和文字;
// "text":纯文字;
// "num":纯数字;
// 自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容
TomatoOCR.setBinaryThresh(100) // 二值化设定,非必须
// type=-1 : 检测 + 方向分类 + 识别
// type=0 : 只检测
// type=1 : 方向分类 + 识别
// type=2 : 单行识别
// type=3 : 检测 + 识别
// 只检测文字位置:type=0
// 全屏识别: type=3或者不传type
// 截取单行文字识别:type=1或者t
Do
SnapShot tmp & "test.png", 0, 0, 300, 100
dim t = TickCount()
TracePrint TomatoOCR.ocrFile(tmp & "test.png", 3) // 识别为空时,返回的是“”字符串
TracePrint "间隔:"&TickCount() - t&"毫秒"
Delay 500
Loop
// 查找文本并点击,只有type=3、setDetBoxType为”rect“才生效
dim p = Tom.findTapPoint("扫码脚本")
TracePrint p(0),p(1),p(2)
If p(0) Then
Tap p(1),p(2) // 点击
End If
4、运行
以上就是所有的运行情况。
完毕
相对来说,在按键精灵进行插件开发还是比较困难的,官方提供的lua语言功能太少,原生插件集成无法采用直连的方式,但相比部署在服务器上,还是减少了很多资源占用情况,更加方便便捷。