马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
目标
cheese主动化平台是一款可以模拟鼠标和键盘利用的主动化工具。它可以资助用户主动完成一些重复的、繁琐的使命,节省大量人工利用的时间。可以采取Vscode、IDEA编写,支持Java、Python、nodejs、GO、Rust、Lua。cheese也包罗图色功能,辨认屏幕上的图像,根据图像的变革主动实验相应的利用。本篇文章紧张解说下更良好的cheese平台TomatoOCR纯当地离线笔墨辨认插件怎样使用和集成。
预备工作
1、搭建cheese的idea开发环境:
2、下载TomatoOCR纯当地离线笔墨辨认插件:点击下载插件
- 现在插件支持中英文、繁体字、日语、韩语辨认;
- 支持小图、地域图和单行笔墨辨认,精确率高达99%;
- 支持多种返回格式,json\文本\数字\自界说;
- 支持加强版二值化;
- 支持懒人的多线程;
- 支持找字返回坐标并点击;
- 超高的稳固性,速率快;
- 不联网、不联网、不联网;
插件集成
1、打开idea开发工具,新建项目,在工程assets目次下添加笔墨辨认插件
下载插件后,先改名为TomatoOCR.apk
2、拷贝js中的代码
留意:loadDex("TomatoOCR.apk"); //该行必须写在main方法下,否则无非正常加载
- // ********************************************************************************************
- // ********欢迎使用TomatoOCR文字识别插件,加入群【469843332】可获取最新版本!!!************
- // ********************************************************************************************
- import core from 'cheese-core';
- const base = core.base;
- const assets = core.assets;
- const recordscreen = core.recordScreen;
- const plugins = core.plugins;
- const cls = core.cls;
- var tomato_ocr;
- let 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":韩语
- function ocr_image() {
- tomato_ocr.setRecType(rec_type) // 如果需要切换语言,直接在这里设置即可
- tomato_ocr.setDetBoxType("rect") // 调整检测模型检测文本参数- 默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本
- tomato_ocr.setDetUnclipRatio(1.9) // 调整检测模型检测文本参数 - 默认1.9: 值范围1.8-2.5之间,可调整文本检测框大小
- tomato_ocr.setRecScoreThreshold(0.3) // 识别得分过滤 - 默认0.1,值范围0.1-0.9之间
- tomato_ocr.setReturnType("json")
- // 返回类型 - 默认"json": 包含得分、坐标和文字;
- //"text":纯文字;
- //"num":纯数字;
- //自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容
- let type = 3;
- // type 可传可不传
- // type=0 : 只检测
- // type=1 : 方向分类 + 识别
- // type=2 : 只识别
- // type=3 : 检测 + 识别
- // 只检测文字位置:type=0
- // 全屏识别: type=3或者不传type
- // 截取单行文字识别:type=1或者type=2
- // 注意:注意:注意:识别不到时,返回的是""空字符串,请加上 if (result != "") 进行判断
- // returnType为“json”时,返回的是json字符串,需要使用JSON.parse进行解析
- // 例子一
- let result1 = tomato_ocr.ocrFile("/storage/emulated/0/test.png", type);
- console.log(result1);
- // 例子二
- let bitmap = recordscreen.captureScreen(3, 0, 0, 300, 300)
- let result2 = tomato_ocr.ocrBitmap(bitmap, type);
- console.log(result2);
- // 找字返回坐标,没有找到字返回“”空字符串,返回的是“百度”的中心点坐标
- var point = tomato_ocr.findTapPoint("百度")
- if (point != "") {
- var json_point = JSON.parse(point)
- var center_x = json_point[0] + x1
- var center_y = json_point[1] + y1
- }
- }
- function run() {
- if (recordscreen.requestPermission(3)) {
- console.log("请求成功")
- }
- if (assets.copy("TomatoOCR.apk", "/storage/emulated/0/TomatoOCR.apk")) {
- console.log("复制成功");
- } else {
- console.log("复制失败");
- }
- if (plugins.install("/storage/emulated/0/TomatoOCR.apk")) {
- plugins.loadLibrary("ocr")
- var tmo = cls.findClass("com.tomato.ocr.cheese.OCRApi")
- tomato_ocr = tmo.new().obj
- tomato_ocr.init(plugins.createContext(), rec_type)
- // 试用版license从群中获取或者网盘中获取
- var flag = tomato_ocr.setLicense("")
- // flag= -1: 无效license
- // flag= 0 : 过期license
- // flag= 1 或 到期日期 : 试用license或正式license
- console.log(flag);
- console.log("插件加载成功")
- }
- ocr_image();
- }
- run()
复制代码 3、此中的方法阐明如下
| 方法名 | 阐明 | | init | 初始化 | | 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":韩语
| | setDetBoxType | 调解检测模子检测文本参数-,默认"rect":
由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可精确检测倾斜文本
| | - 调整检测模型检测文本参数,默认1.9:
- 值范围1.6-2.5之间,如果文字的检测框太小,可调整改参数,一般往大调整
复制代码 | | - 设置识别得分过滤,默认0.1:
- 值范围0.1-0.9之间
复制代码 | | - 设置返回类型,默认"json",包含得分、坐标和文字;
- "text":纯文字;
- "num":纯数字;
- 自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容
复制代码 | | - 对图片进行二值化处理,非必须,正常情况下可以不用写
复制代码 | | 两个参数,图片路径和范例,一样平常范例传3:
- type=-1 : 检测 + 方向分类 + 识别
- type=0 : 只检测
- type=1 : 方向分类 + 识别
- type=2 : 只识别(单行识别)
- type=3 : 检测 + 识别
- 只检测文字位置:type=0
- 全屏识别: type=3或者不传type
- 截取单行文字识别:type=1或者type=2
复制代码 假如辨以为不到时,返回的数据为“”字符串
| | 找字,返回传入字的中央点坐标,方便举行点击,找不到字时,返回“”空字符串
| | end | 开释插件,只必要在克制脚本的时间调用 | 4、辨认效果
以上就是全部的运行环境。
完毕
相对来说,在cheese举行插件开发还是比力困难的,必要会原生安卓开发,当地辨认全屏会相对较慢,地域辨认还是非常快,相比摆设在服务器上,还可以淘汰了很多资源占用环境,更加方便便捷。
|