赞
踩
懒人精灵是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务,节省大量人工操作的时间。懒人精灵也包含图色功能,识别屏幕上的图像,根据图像的变化自动执行相应的操作。本篇文章主要讲解下更优秀的懒人精灵TomatoOCR纯本地离线文字识别插件如何使用和集成。
目前懒人精灵推出的普通版和高级版,对应的文字识别插件也分普通版和高级版。
1、下载懒人精灵手机助手开发工具:懒人精灵官网,网站中只能下载高级版的编辑器,普通版的编辑器需在官方群中获取。
2、下载TomatoOCR纯本地离线文字识别插件
普通版和高级版的用法大同小异,下面以高级版用法为例:
1、打开懒人精灵,新建项目,双击资源.rc文件,添加文字识别插件
下载插件后,先改名为TomatoOCR.apk
2、记事本打开调用说明文件,并拷贝到项目的lua文件中,
- -- ********************************************************************************************
- -- ********欢迎使用TomatoOCR文字识别插件,加入群【469843332】可获取最新版本!!!************
- -- ********************************************************************************************
-
- import('java.io.File')
- import('java.lang.*')
- import('java.util.Arrays')
- import('android.content.Context')
- import('android.hardware.Sensor')
- import('android.hardware.SensorEvent')
- import('android.hardware.SensorEventListener')
- import('android.hardware.SensorManager')
- import('com.nx.assist.lua.LuaEngine')
-
- -- 推荐方式一,稳定;方式二,懒人精灵软件不怎么稳定,慎用,按方式一测试完成,可用方式二打包
- -------------------------引入方式-------------------------
- -- 方式一 根据实际情况选择适当的apk包,放在手机目录中,例子是放在了根目录并重命名为TomatoOCR
- --local loader = LuaEngine.loadApk("/storage/emulated/0/TomatoOCR.apk")
- -- 方式二 PC端左侧展开项目,找到资源目录,双击.rc文件,然后添加文件就可以了
- local loader = LuaEngine.loadApk("TomatoOCR.apk")
- -------------------------引入方式-------------------------
-
- local OCR = loader.loadClass("com.tomato.ocr.lr.OCRApi")
-
- local rec_type = "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":韩语
- local ocr = OCR.init(LuaEngine.getContext(), rec_type)
-
- -- license从群中获取或者网盘中获取
- local license = ""
- local flag = ocr.setLicense(license);
-
- -- ----------------------------注:以上代码全局只需写一次-------------------------------
-
-
- ocr.setRecType(rec_type) -- 如果需要切换语言,直接在这里设置即可
- ocr.setDetBoxType("rect") -- 调整检测模型检测文本参数- 默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本
- ocr.setDetUnclipRatio(1.9) -- 调整检测模型检测文本参数 - 默认1.9: 值范围1.6-2.5之间
- ocr.setRecScoreThreshold(0.3) -- 识别得分过滤 - 默认0.1,值范围0.1-0.9之间
- ocr.setReturnType("json")
- -- 返回类型 - 默认"json": 包含得分、坐标和文字;
- -- "text":纯文字;
- -- "num":纯数字;
- -- 自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容
-
- -- ocr.setBinaryThresh(135) -- 二值化设定0-255,非必须,常规情况下不需要设置,可配合群中【测试应用.apk】使用
-
-
- local type = 3;
- -- type 可传可不传
- -- type=0 : 只检测
- -- type=1 : 方向分类 + 识别
- -- type=2 : 只识别
- -- type=3 : 检测 + 识别
-
- -- 只检测文字位置:type=0
- -- 全屏识别: type=3或者不传type
- -- 截取单行文字识别:type=1或者type=2
-
- -- 注意:注意:注意:识别不到时,返回的是""空字符串,请加上 if result ~="" then
- -- 例子一
- snapShot("/mnt/sdcard/test.png",0,0,300,100)
- local result1 = ocr.ocrFile("/mnt/sdcard/test.png", type)
- printEx(result1);
-
- -- 例子二
- local bitmap = LuaEngine.snapShot(0,0,300,100)
- local result2 = ocr.ocrBitmap(bitmap, type)
- printEx(result2);
-
- -- 找字返回坐标,没有找到字返回“”空字符串,返回的是“百度”的中心点坐标
- local point = ocr.findTapPoint("百度")
- if point ~="" then
- local json_point = jsonLib.decode(point)
- local center_x = json_point[1] + x1
- local center_y = json_point[2] + y1
- end
-
-
- -- 释放
- ocr.release()

3、其中的方法说明如下
方法名 | 说明 |
init | 初始化 |
setRecType | 设置识别语言,默认ch-3.0: ch、ch-2.0、ch-3.0版可切换使用,对部分场景可适当调整 |
setDetBoxType | 调整检测模型检测文本参数-,默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本 |
setDetUnclipRatio | 调整检测模型检测文本参数,默认1.9: 值范围1.6-2.5之间,如果文字的检测框太小,可调整改参数,一般往大调整 |
setRecScoreThreshold | 设置识别得分过滤,默认0.1: 值范围0.1-0.9之间 |
setReturnType | 设置返回类型,默认"json",包含得分、坐标和文字; "text":纯文字; "num":纯数字; 自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容 |
setBinaryThresh | 对图片进行二值化处理,非必须,正常情况下可以不用写 |
ocrFile | 两个参数,图片路径和类型,一般类型传3: type=-1 : 检测 + 方向分类 + 识别 type=0 : 只检测 type=1 : 方向分类 + 识别 type=2 : 只识别(单行识别) type=3 : 检测 + 识别 只检测文字位置:type=0 全屏识别: type=3或者不传type 截取单行文字识别:type=1或者type=2 如果识别为不到时,返回的数据为“”字符串 |
findTapPoint | 找字,返回传入字的中心点坐标,方便进行点击,找不到字时,返回[-1,-1] |
release | 释放插件,只需要在停止脚本的时候调用 |
4、识别结果
以上就是所有的运行情况。
注意:高级版需要将“脚本运行在最高权限环境中”的勾去掉
相对来说,在懒人精灵进行插件开发还是比较困难的,需要会原生安卓开发,本地识别全屏会相对较慢,区域识别还是非常快,相比部署在服务器上,还可以减少了很多资源占用情况,更加方便便捷。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。