 | |  |  | AIWROK系统安卓找字OCR___方法小结总汇集合
- /*
- 🍎交流QQ群711841924群一,苹果内测群:528816639
- 🍎🔍找字OCR___方法小结总汇集合
- */
- //======================== 1. 基础文字查询方法 ========================//
- // 方法1:🔍findIncludeText 查询包含文字
- /*
- 类别 详情说明
- 方法功能 查询包含指定文字的内容(单目标匹配)
- 方法签名 detect findIncludeText(String arg0)
- 返回值 detect(识别到的目标对象)
- 参数 - String arg0:需查询的文字内容
- */
- // 示例:查询包含“确认”的文字
- let detectObj = new ocrResult().findIncludeText("确认");
- // 方法2:🔍findIncludeTexts 查询包含文字(多目标)
- /*
- 类别 详情说明
- 方法功能 查询包含指定文字的多个结果(返回 detect 数组)
- 方法签名 detect[] findIncludeTexts(String arg0)
- 返回值 detect[](识别到的目标对象数组)
- 参数 - String arg0:需查询的文字内容
- */
- // 示例:查询所有包含“按钮”的文字
- let detectArray = new ocrResult().findIncludeTexts("按钮");
- // 方法3:🔍findSimText 模糊查询(近似匹配)
- /*
- 类别 详情说明
- 方法功能 模糊匹配指定文字(支持近似文本识别)
- 方法签名 detect findSimText(String arg0)
- 返回值 detect(识别到的模糊匹配目标)
- 参数 - String arg0:需模糊查询的文字内容
- */
- // 示例:全屏识别后模糊查找“开心收下”
- let img = screen.screenShotFull();
- let ocrres = img.MLKitOcr('zh');
- let detectObj = ocrres.findSimText("开心收下");
- detectObj.click();
- // 方法4:🔍findText 精确查询文字
- /*
- 类别 详情说明
- 方法功能 精确查询指定文字(严格匹配)
- 方法签名 detect findText(String arg0)
- 返回值 detect(识别到的精确目标)
- 参数 - String arg0:需精确查询的文字内容
- */
- // 示例:全屏识别后精确查找“开心收下”
- let img = screen.screenShotFull();
- let ocrres = img.MLKitOcr('zh');
- let detectObj = ocrres.findText("开心收下");
- detectObj.click();
- // 方法5:🔍getAllDetect 获取所有识别目标
- /*
- 类别 详情说明
- 方法功能 获取 OCR 识别到的所有目标(返回 detect 数组)
- 方法签名 detect[] getAllDetect()
- 返回值 detect[](所有识别目标的数组)
- 参数 无
- */
- // 示例:获取当前 OCR 结果的所有目标
- let allDetects = new ocrResult().getAllDetect();
- // 方法6:🔍getAllString 获取所有识别文字
- /*
- 类别 详情说明
- 方法功能 获取 OCR 识别到的所有文字(拼接为字符串返回)
- 方法签名 String getAllString()
- 返回值 String(所有识别文字的拼接结果)
- 参数 无
- */
- // 示例:获取当前 OCR 结果的所有文字
- let allText = new ocrResult().getAllString();
- print.log(allText);
- // 方法7:🔍getJson 获取 JSON 格式结果(ocrResult 实例方法)
- /*
- 类别 详情说明
- 方法功能 获取 OCR 识别结果的 JSON 格式数据(字符串形式)
- 方法签名 String getJson()
- 返回值 String(OCR 识别结果的 JSON 字符串)
- 参数 无
- */
- // 示例:获取并打印 OCR 结果的 JSON 数据
- let ocrResult = new ocrResult();
- let jsonResult = ocrResult.getJson();
- print.log(jsonResult);
- // 方法8:🔍getJsonString 获取 JSON 字符串(冗余方法,按需使用)
- /*
- 类别 详情说明
- 方法功能 获取 OCR 识别结果的 JSON 字符串(与 getJson 功能一致,可能为别名)
- 方法签名 String getJsonString()
- 返回值 String(OCR 识别结果的 JSON 字符串)
- 参数 无
- */
- // 示例:获取 JSON 字符串
- let jsonStr = new ocrResult().getJsonString();
- //======================== 2. 核心识别方法 ========================//
- // 方法9:🔍MLKitOcr 文字识别(Google MLKit 引擎)
- /*
- 类别 详情说明
- 方法功能 调用 Google MLKit 进行文字识别
- 方法签名 ocrResult MLKitOcr(String arg0, int arg1)
- 返回值 ocrResult(OCR 识别结果对象)
- 参数 - String arg0:识别语言(默认值:"zh",中文)
- - int arg1:缩小倍数(默认值:2,即图像缩小为原来的 1/2)
- */
- // 示例:全屏识别中文,缩小倍数为 2
- let ocrres = screen.MLKitOcr('zh', 2);
- // 方法10:🔍MLKitOcrRect 文字区域识别(MLKit + 区域裁剪)
- /*
- 类别 详情说明
- 方法功能 调用 Google MLKit 识别指定区域的文字(按百分比坐标)
- 方法签名 ocrResult MLKitOcrRect(String arg0, double[] arg1)
- 返回值 ocrResult(OCR 识别结果对象)
- 参数 - String arg0:识别语言(默认值:"zh",中文)
- - double[] arg1:识别区域的百分比坐标(格式:[x1, y1, x2, y2],示例 [0,0,1,1] 代表全区域)
- */
- // 示例:识别屏幕上半区域的文字(百分比坐标 [0,0,1,0.5])
- let img = screen.screenShotFull();
- let ocrres = img.MLKitOcrRect('zh', [0,0,1,0.5]);
- // 方法11:🔍aiworkOCR awork 文字识别
- /*
- 类别 详情说明
- 方法功能 调用 awork 引擎进行文字识别(支持区域裁剪)
- 方法签名 ocrResult aiworkOCR(int arg0, double[] arg1)
- 返回值 ocrResult(OCR 识别结果对象)
- 参数 - int arg0:识别尺寸(推荐值:640、320)
- - double[] arg1:识别区域的百分比坐标(格式:[x1, y1, x2, y2],示例 [0,0,1,1] 代表全区域)
- */
- // 示例:全屏识别,尺寸 640,查找并点击含“雷电”的目标
- let img = screen.screenShotFull();
- let ocrres = img.aiworkOCR(640, [0,0,1,1]);
- ocrres.findIncludeText("雷电").hidClick();
- // 方法12:🔍paddleOCR PaddleOCR 文字识别
- /*
- 类别 详情说明
- 方法功能 调用 PaddleOCR 引擎进行文字识别(支持区域裁剪)
- 方法签名 ocrResult paddleOCR(int arg0, double[] arg1)
- 返回值 ocrResult(OCR 识别结果对象)
- 参数 - int arg0:识别尺寸(推荐值:640、320)
- - double[] arg1:识别区域的百分比坐标(格式:[x1, y1, x2, y2],示例 [0,0,1,1] 代表全区域)
- */
- // 示例:全屏识别,尺寸 640,查找并点击含“雷电”的目标
- let img = screen.screenShotFull();
- let ocrres = img.paddleOCR(640, [0,0,1,1]);
- ocrres.findIncludeText("雷电").hidClick();
- //======================== 3. OpenCV 相关方法 ========================//
- // 方法13:🔍opencv.OCR 通过训练字库识别
- /*
- 类别 详情说明
- 方法功能 使用 OpenCV 训练的字库进行文字识别(需提前准备字库文件)
- 方法签名 ocrResult OCR(Mat arg0, String arg1, double arg2, int arg3, double[] arg4)
- 返回值 ocrResult(OCR 识别结果对象)
- 参数 - Mat arg0:输入的图片对象(Mat 类型)
- - String arg1:字库文件路径/名称(案例中传空字符串 "")
- - double arg2:相似度阈值(案例中为 0,范围:0~1)
- - int arg3:预期识别的文字数量(案例中为 0,即不限数量)
- - double[] arg4:识别区域的百分比坐标(格式:[x1,y1,x2,y2],案例中传空数组 double[])
- */
- // 示例:使用默认字库识别全区域文字
- let matImg = ...; // 假设已获取 Mat 类型图片
- opencv.OCR(matImg, "", 0, 0, []);
- // 方法14:🔍opencv.OCREx 基于 CV 文件的 OCR 识别
- /*
- 类别 详情说明
- 方法功能 通过指定 CV 文件名进行文字识别(需提前准备 CV 配置文件)
- 方法签名 ocrResult OCREx(String arg0)
- 返回值 ocrResult(OCR 识别结果对象)
- 参数 - String arg0:CV 文件名(案例中传入空字符串 "")
- */
- // 示例:使用空 CV 文件名识别(需确保配置正确)
- opencv.OCREx("");
- //======================== 4. TomatoOCR 完整实例演示 ========================//
- /*
- 🍅 功能:TomatoOCR 引擎的完整调用示例(含初始化、识别、封装方法)
- 步骤:
- 1. 加载插件 → 2. 导入类 → 3. 初始化 OCR → 4. 封装识别方法 → 5. 调用识别
- 注意:需自行获取 license,调整模型参数(如 rec_type、检测模型等)。
- */
- var TM = {};
- // 1. 加载插件(根据设备架构调整,如 armeabi-v7a)
- rhino.loadDex('TomatoOCR.apk');
- // 2. 导入类(多插件调用需确保类加载)
- try {
- rhino.loadClass('com.tomato.ocr.aw.OCRApi');
- importClass(com.tomato.ocr.aw.OCRApi);
- } catch (error) {
- FZ.printll(error);
- }
- // 3. 初始化 OCR
- var ocr = new OCRApi();
- let rec_type = "ch-3.0"; // 模型类型:ch/cht/japan/korean 等(3.0版为默认推荐)
- ocr.setContext(context, rec_type);
- // 4. 设置 license(需自行获取,试用版从群/网盘获取)
- let license = "自己找作者获取";
- let flag = ocr.setLicense(license);
- // flag 含义:-1(无效)、0(过期)、1/到期日期(有效)
- print.log("License 状态:" + flag);
- // 5. 调整识别参数(可选,按需修改)
- ocr.setDetBoxType("rect"); // 检测模型:rect(矩形文本,默认)/ quad(倾斜文本)
- ocr.setDetUnclipRatio(1.9); // 检测扩展系数(1.6~2.5 之间,默认1.9)
- ocr.setRecScoreThreshold(0.3); // 识别得分过滤(0.1~0.9 之间,默认0.3)
- ocr.setReturnType("json"); // 返回格式:json(默认,含坐标+文字+得分)/ text(纯文字)/ num(纯数字)
- var type = 3; // 识别模式:0(只检测)、1(方向分类+识别)、2(只识别)、3(检测+识别,默认)
- // 6. 封装识别方法(带点击、坐标返回功能)
- /**
- * TM.tmocr识别:OCR 识别并可选点击目标
- * @param {String} tmstr - 目标文字
- * @param {Array} tmsize - 识别区域(百分比坐标 [x1,y1,x2,y2])
- * @param {Boolean} tmclick - 是否点击目标
- * @param {Number} tmcoor1 - 点击偏移最小值
- * @param {Number} tmcoor2 - 点击偏移最大值
- * @param {Number} tmslee - 点击后休眠时间(毫秒)
- * @return {Boolean} 是否识别到目标
- */
- TM.tmocr识别 = function (tmstr, tmsize, tmclick, tmcoor1, tmcoor2, tmslee) {
- // 百分比坐标转真实屏幕坐标(wdh/hgt 需提前定义为屏幕宽高)
- var tma = Math.round(tmsize[0] * wdh);
- var tmb = Math.round(tmsize[1] * hgt);
- var img0 = screen.screenShotFull(); // 全屏截图
- sleep.millisecond(10); // 休眠避免资源冲突
- var img = img0.cutImagePercent(tmsize[0], tmsize[1], tmsize[2], tmsize[3]); // 裁剪识别区域
- sleep.millisecond(10);
- var result3 = ocr.ocrBase64(img.toBase64(), type); // 调用 TomatoOCR 识别
- try {
- if (result3) {
- var result3 = JSON.parse(result3); // 解析 JSON 结果
- var point = this.findStrCenter(result3, tmstr); // 查找文字中心坐标
- if (point[0] >= 0) { // 识别到目标
- FZ.printll(`找到目标文字:${tmstr}`);
- var tme = point[0] + tma; // 计算真实坐标
- var tmf = point[1] + tmb;
- if (tmclick) { // 若需点击
- hid.click(
- tme + rand.randNumber(tmcoor1, tmcoor2), // 横向偏移
- tmf + rand.randNumber(tmcoor1, tmcoor2) // 纵向偏移
- );
- sleep.millisecond(tmslee); // 点击后休眠
- }
- img0.recycle(); // 释放图片资源
- img.recycle();
- return true;
- }
- }
- } catch (err) {
- printl(`识别异常:${err}`);
- }
- img0.recycle();
- img.recycle();
- return false;
- };
- /**
- * TM.tmocr识别坐标:OCR 识别并返回目标坐标
- * @param {String} tmstr - 目标文字
- * @param {Array} tmsize - 识别区域(百分比坐标 [x1,y1,x2,y2])
- * @return {Array|null} 目标坐标 [x,y],未找到则返回 null
- */
- TM.tmocr识别坐标 = function (tmstr, tmsize) {
- var tma = Math.round(tmsize[0] * wdh);
- var tmb = Math.round(tmsize[1] * hgt);
- var img0 = screen.screenShotFull();
- sleep.millisecond(10);
- var img = img0.cutImagePercent(tmsize[0], tmsize[1], tmsize[2], tmsize[3]);
- sleep.millisecond(10);
- var result3 = ocr.ocrBase64(img.toBase64(), type);
- try {
- if (result3) {
- var result3 = JSON.parse(result3);
- var point = this.findStrCenter(result3, tmstr);
- if (point[0] >= 0) {
- FZ.printll(`找到目标文字:${tmstr}`);
- var tme = point[0] + tma;
- var tmf = point[1] + tmb;
- img0.recycle();
- img.recycle();
- return [tme, tmf];
- }
- }
- } catch (err) {
- printl(`识别异常:${err}`);
- }
- img0.recycle();
- img.recycle();
- return null;
- };
- /**
- * TM.findStrCenter:从 OCR 结果中查找文字中心坐标
- * @param {Array} result_list - OCR 识别结果(JSON 解析后的数组,格式:[{words: "文本", location: [[x1,y1],[x2,y2],...]}])
- * @param {String} data - 目标文字
- * @return {Array} 中心坐标 [x,y],未找到则返回 [-1,-1]
- */
- TM.findStrCenter = function (result_list, data) {
- for (let i = 0; i < result_list.length; i++) {
- var words = result_list[i]["words"];
- var location = result_list[i]["location"];
- if (words.includes(data)) { // 检查文字是否包含目标
- let x1 = location[0][0];
- let y1 = location[0][1];
- let x2 = location[2][0];
- let y2 = location[2][1];
- // 计算文字中心坐标(适配多字符匹配)
- let charIndex = words.indexOf(data);
- let x = Math.floor(
- (x2 - x1) / words.length * (data.length + 2 * charIndex) / 2 + x1
- );
- let y = Math.floor((y2 - y1) / 2 + y1);
- return [x, y];
- }
- }
- return [-1, -1];
- };
- // 7. 调用示例(需结合实际场景,以下为伪代码)
- // TM.tmocr识别("确认", [0,0,1,1], true, 5, 10, 1000); // 全屏识别“确认”并点击(带偏移)
- // 8. 内存释放(可选,结束时调用)
- // ocr.end();
- /*
- 📌 关键说明:
- 1. **环境依赖**:需提前定义 `wdh`(屏幕宽度)、`hgt`(屏幕高度)、`rand`(随机数工具)、`hid`(点击工具)。
- 2. **模型切换**:`rec_type` 支持 `ch`(v1.0)、`ch-2.0`、`ch-3.0`(推荐)、`cht`(繁体)、`japan`(日语)等。
- 3. **参数优化**:
- - `setDetUnclipRatio`:值越大,检测区域越宽松(适合复杂排版)。
- - `setRecScoreThreshold`:值越高,识别精度要求越严格(需平衡召回率)。
- 4. **资源释放**:长时间运行需调用 `ocr.end()` 释放内存,避免泄漏。
- */
复制代码findIncludeText查询包含文字 项目 | 详情 | 功能描述 | 查询包含文字 | 方法定义 | detect findIncludeText(String arg0) | 返回值 | detect | 参数 | String arg0 :需查询的文字内容 | 案例 | new ocrResult().findIncludeText('') |
🔍🔢findIncludeTexts查询包含文字多目标 项目 | 详情 | 功能描述 | 查询包含文字多目标,查询包含某个文字的多个结果,返回值为 detect 数组,数组元素类型是 detect 类型 | 方法定义 | detect[] findIncludeTexts(String arg0) | 返回值 | detect[] | 参数 | String arg0 :需查询的文字内容 | 案例 | new ocrResult().findIncludeTexts('') |
🔍🔢findSimilarText模糊查询 项目 | 详情 | 功能描述 | 模糊查询 | 方法定义 | detect findSimilarText(String arg0) | 返回值 | detect | 参数 | String arg0 :需进行模糊查询的文字内容 | 案例 | // 全屏截图 let img = screen.screenShotFull()// 中文(zh)识别 OCR let ocrres = img.MLKitOcr('zh');// 查找目标 let d = ocrres.findSimText("开心收下");// 点击目标 d.click(); |
🔍🔢findText查询文字 项目 | 详情 | 功能描述 | 查询文字 | 方法定义 | detect findText(String arg0) | 返回值 | detect | 参数 | String arg0 :语言(注:案例中实际传入文字内容,推测文档参数描述可能存在误差) | 案例 | // 全屏截图 let img = screen.screenShotFull() // 中文(zh)识别 OCR let ocrres = img.MLKitOcr('zh'); // 查找目标 let d = ocrres.findText("开心收下"); // 点击目标 d.click(); |
🔍🔢getAllDetect 获取所有目标 项目 | 详情 | 功能描述 | 获取所有目标 | 方法定义 | detect[] getAllDetect() | 返回值 | detect[] | 参数 | 无 | 案例 | new ocrResult().getAllDetect() |
🔍🔢getAllString 获取所有字符串 项目 | 详情 | 功能描述 | 获取所有字符串 | 方法定义 | String getAllString() | 返回值 | String | 参数 | 无 | 案例 | new ocrResult().getAllString() |
🔍🔢getJson 获取json对象 项目 | 详情 | 功能描述 | 获取 OCR 识别结果的 JSON 格式数据 | 方法定义 | String getJson() (ocrResult 类的实例方法) | 返回值 | String :OCR 识别结果的 JSON 字符串 | 参数 | 无 | 案例 | // 假设已获取OCR识别结果对象 let ocrResult = new ocrResult();// 获取JSON格式结果 let jsonResult = ocrResult.getJson(); printl(jsonResult); |
🔍🔢getJsonString 获取json字符串 项目
| 详情
| 功能描述
| 获取 JSON 字符串形式的 OCR 识别结果
| 方法定义
| String getJsonString()
(ocrResult
类的实例方法)
| 返回值
| String
| 参数
| 无
| 案例
| let jsonStr = new ocrResult().getJsonString();
|
🔍🔢MLKitOcr文字识别 项目 | 说明 | 功能 | 文字识别 | 方法签名 | ocrResult MLKitOcr(String arg0, int arg1) | 返回值 | ocrResult | 参数 1 | String arg0 ,语言(默认值:中文) | 参数 2 | int arg1 ,缩小倍数(默认值:2,即缩小一半) | 调用案例 | screen.MLKitOcr('zh', 2) |
🔍🔢MLKitOcrRect 文字区域识别 项目 | 详情 | 功能描述 | 文字区域识别 | 方法定义 | ocrResult MLKitOcrRect(String arg0, double[] arg1) | 返回值 | ocrResult | 参数 | - String arg0 :识别语言,默认值为 zh (中文)
- double[] arg1 :识别区域的百分比坐标,格式为 [x1, y1, x2, y2] (示例:[0,0,1,1] 代表全区域) | 案例 | let img = screen.screenShotFull(); // 全屏截图 let ocrres = img.MLKitOcrRect('zh', [0,0,1,1]); // 识别指定区域的文字 |
🔍🔢aiworkOCR awork文字识别 项目 | 详情 | 功能描述 | awork 文字识别 | 方法定义 | ocrResult aiworkOCR(int arg0, double[] arg1) | 返回值 | ocrResult | 参数 | - int arg0 :识别尺寸(推荐值:640、320)
- double[] arg1 :识别区域的百分比坐标(格式:[x1, y1, x2, y2] ,示例 [0,0,1,1] 代表全区域) | 案例 | let img = screen.screenShotFull(); // 全屏截图 let ocrres = img.aiworkOCR(640, [0,0,1,1]); // 调用 awork 文字识别 ocrres.findIncludeText("雷电").hidClick(); // 查找并点击含"雷电"的目标 |
🔍🔢paddleOCR paddle文字识别 项目 | 详情 | 功能描述 | paddle 文字识别 | 方法定义 | ocrResult paddleOCR(int arg0, double[] arg1) | 返回值 | ocrResult | 参数 | - int arg0 :识别尺寸(推荐值:640、320)
- double[] arg1 :识别区域的百分比坐标(格式为 [x1, y1, x2, y2] ,示例 [0,0,1,1] 代表全区域) | 案例 | let img = screen.screenShotFull(); // 全屏截图 let ocrres = img.paddleOCR(640, [0,0,1,1]); // 调用 paddle 文字识别 ocrres.findIncludeText("雷电").hidClick(); // 查找并点击含"雷电"的目标 |
🔍🔢opencv.OCR通过训练字库识别 OCR 文字 项目 | 详情 | 功能描述 | 通过训练字库识别 OCR 文字 | 方法定义 | ocrResult OCR(Mat arg0, String arg1, double arg2, int arg3, double[] arg4) | 返回值 | ocrResult | 参数 | - Mat arg0 :输入的图片对象(Mat 类型)
- String arg1 :字库文件(路径 / 名称,案例中传空字符串 "" )
- double arg2 :相似度阈值(案例中为 0 )
- int arg3 :预期识别的文字数量(案例中为 0 )
- double[] arg4 :识别区域的百分比坐标(格式 [x1,y1,x2,y2] ,案例中传空数组 double[] ) | 案例 | opencv.OCR(Mat, "", 0, 0, double[]); // 调用示例(字库、区域等参数按案例默认值传入) |
opencv基于 CV 文件的 OCR 识别(通过指定 CV 文件名进行文字识别) 项目 | 详情 | 功能描述 | 基于 CV 文件的 OCR 识别(通过指定 CV 文件名进行文字识别) | 方法定义 | ocrResult OCREx(String arg0) (opencv 类的方法,案例中调用形式:opencv.OCREx("") ) | 返回值 | ocrResult | 参数 | String arg0 :CV 文件名(案例中传入空字符串 "" ) | 案例 | opencv.OCREx(""); // 调用示例(传入空 CV 文件名) |
- /*
- 🍎交流QQ群711841924群一,苹果内测群,528816639
- 🍎🔨📌🔨OCR方法小结
- */
- // 第一个示例:获取屏幕截图并进行 OCR 文字识别(简体中文)
- var img1 = screen.screenShotFull();
- var ocr1 = img1.MLKitOcr('zhs');
- var text1 = ocr1.getAllString();
- printl(text1);
- img1.recycle();
- /*
- 说明:
- - 这是一个最基本的 OCR 示例。
- - 使用 MLKitOcr 方法通过简体中文词库识别截图中的文字。
- - 最终输出识别到的全文本信息。
- */
- // 第二个示例:指定区域内的 OCR 文字识别(中文)
- var img2 = screen.screenShotFull();
- var ocrRegion2 = [0, 0.2, 1, 0.6];
- var ocrResult2 = img2.MLKitOcrRect('zh', ocrRegion2);
- var recognizedText2 = ocrResult2.getAllString();
- printl("OCR识别结果: " + recognizedText2);
- img2.recycle();
- /*
- 说明:
- - 此示例中,OCR 定义了一个特定的屏幕区域来识别文本,避免了全屏识别的开销。
- - 使用 MLKitOcrRect 方法优化了识别区域。
- */
- // 第三个示例:使用 PaddleOCR 识别并查找特定文本
- var img3 = screen.screenShotFull();
- var ocrResult3 = img3.paddleOCR(640, [0, 0, 1, 1]);
- var target3 = ocrResult3.findIncludeText("雷电");
- if (target3) {
- target3.hidClick();
- printl("成功点击目标区域: 雷电");
- } else {
- printl("目标区域未找到: 雷电");
- }
- img3.recycle();
- /*
- 说明:
- - 示例使用 PaddleOCR 技术识别文本。
- - 识别完成后,查找特定文本,并对找到目标进行点击操作。
- */
- // 第四个示例:全屏 OCR 查找文本内容并点击
- var img4 = screen.screenShotFull();
- var ocrResult4 = img4.paddleOCR(640, [0, 0, 1, 1]);
- var target4 = ocrResult4.findIncludeText("雷电");
- if (target4) {
- target4.click();
- } else {
- printl("未找到指定文本");
- }
- img4.recycle();
- /*
- 说明:
- - 该示例与第三个类似,但更高效地处理了查找和目标动作操作。
- */
- // 第五个示例:查找包含目标文字的多个区域
- var img5 = screen.screenShotFull();
- var ocrResult5 = img5.MLKitOcr('zh');
- var targets5 = ocrResult5.findIncludeTexts("雷电");
- if (targets5.length > 0) {
- targets5.forEach(target => {
- target.click();
- });
- } else {
- printl("未找到指定文本");
- }
- img5.recycle();
- /*
- 说明:
- - 查找包含目标文字的多个区域,返回所有目标的列表。
- - 遍历所有目标,逐一对其执行点击操作。
- */
- // 第六个示例:获取 OCR 识别到的所有文本并打印
- var img6 = screen.screenShotFull();
- var ocrResult6 = img6.paddleOCR(640, [0, 0, 1, 1]);
- var allText6 = ocrResult6.getAllString();
- if (!allText6) {
- printl("未检测到任何文本");
- } else {
- printl("检测到的文本内容: " + allText6);
- }
- img6.recycle();
- /*
- 说明:
- - 示例展示如何提取 OCR 识别结果中的所有字符信息。
- */
- // 第七个示例:通过 MLKitOcr 完全读出屏幕文字
- var img7 = screen.screenShotFull();
- var ocrResult7 = img7.MLKitOcr('zh');
- printl(ocrResult7.getAllString());
- img7.recycle();
- /*
- 说明:
- - 示例使用 MLKitOcr 在全屏范围内提取所有文本信息。
- */
- // 第八个示例:获取 JSON 格式的 OCR 识别结果
- var img8 = screen.screenShotFull();
- var ocrResult8 = img8.MLKitOcr('zh');
- var jsonResult8 = ocrResult8.getJson();
- printl(JSON.stringify(jsonResult8, null, 2));
- img8.recycle();
- /*
- 说明:
- - 此示例展示了如何将 OCR 结果以 JSON 格式获取。
- */
- // 第九个示例:获取 OCR 的 JSON 表示
- var img9 = screen.screenShotFull();
- var ocrResult9 = img9.MLKitOcr('zh');
- var ocrJson9 = ocrResult9.getJson();
- printl("OCR 结果 JSON: " + JSON.stringify(ocrJson9));
- img9.recycle();
- /*
- 说明:
- - 将 OCR 输出结果以 JSON 格式显示,便于程序进一步处理。
- */
- // 第十个示例:OpenCV OCR 使用
- var mat10 = screen.screenShot(720, 1280, 100).getMat();
- var seek10 = opencv.OCR(mat10, '点击头条输入框.ocr', 0.95, 0);
- if (seek10) {
- printl(seek10.findIncludeText('点击'));
- } else {
- printl("未找到了");
- }
- /*
- 说明:
- - 使用 OpenCV 库执行 OCR,匹配的置信度为 0.95。
- - 根据内容查找包含特定文本的区域。
- */
- // 第十一个示例:OpenCV OCR 扩展功能使用
- var seek11 = opencv.OCREx('关闭后台.cv');
- if (seek11) {
- printl(seek11.findIncludeText('关闭后台.cv'));
- } else {
- printl("未找到了");
- }
- /*
- 说明:
- - 使用 opencv.OCREx 对指定的 cv 文件进行 OCR 识别。
- - 扩展功能 checkColorsEx 用于进一步处理颜色匹配和文本识别结果。
- */
复制代码
| |  | |  |
|