B2B网络软件

标题: AIWROK系统安卓找字OCR___方法小结总汇集合 [打印本页]

作者: YYPOST群发软件    时间: 7 小时前
标题: AIWROK系统安卓找字OCR___方法小结总汇集合
AIWROK系统安卓找字OCR___方法小结总汇集合

  1. /*
  2. 🍎交流QQ群711841924群一,苹果内测群:528816639  
  3. 🍎🔍找字OCR___方法小结总汇集合  
  4. */  


  5. //======================== 1. 基础文字查询方法 ========================//  

  6. // 方法1:🔍findIncludeText 查询包含文字  
  7. /*  
  8. 类别        详情说明  
  9. 方法功能        查询包含指定文字的内容(单目标匹配)  
  10. 方法签名        detect findIncludeText(String arg0)  
  11. 返回值        detect(识别到的目标对象)  
  12. 参数        - String arg0:需查询的文字内容  
  13. */  
  14. // 示例:查询包含“确认”的文字  
  15. let detectObj = new ocrResult().findIncludeText("确认");  


  16. // 方法2:🔍findIncludeTexts 查询包含文字(多目标)  
  17. /*  
  18. 类别        详情说明  
  19. 方法功能        查询包含指定文字的多个结果(返回 detect 数组)  
  20. 方法签名        detect[] findIncludeTexts(String arg0)  
  21. 返回值        detect[](识别到的目标对象数组)  
  22. 参数        - String arg0:需查询的文字内容  
  23. */  
  24. // 示例:查询所有包含“按钮”的文字  
  25. let detectArray = new ocrResult().findIncludeTexts("按钮");  


  26. // 方法3:🔍findSimText 模糊查询(近似匹配)  
  27. /*  
  28. 类别        详情说明  
  29. 方法功能        模糊匹配指定文字(支持近似文本识别)  
  30. 方法签名        detect findSimText(String arg0)  
  31. 返回值        detect(识别到的模糊匹配目标)  
  32. 参数        - String arg0:需模糊查询的文字内容  
  33. */  
  34. // 示例:全屏识别后模糊查找“开心收下”  
  35. let img = screen.screenShotFull();  
  36. let ocrres = img.MLKitOcr('zh');  
  37. let detectObj = ocrres.findSimText("开心收下");  
  38. detectObj.click();  


  39. // 方法4:🔍findText 精确查询文字  
  40. /*  
  41. 类别        详情说明  
  42. 方法功能        精确查询指定文字(严格匹配)  
  43. 方法签名        detect findText(String arg0)  
  44. 返回值        detect(识别到的精确目标)  
  45. 参数        - String arg0:需精确查询的文字内容  
  46. */  
  47. // 示例:全屏识别后精确查找“开心收下”  
  48. let img = screen.screenShotFull();  
  49. let ocrres = img.MLKitOcr('zh');  
  50. let detectObj = ocrres.findText("开心收下");  
  51. detectObj.click();  


  52. // 方法5:🔍getAllDetect 获取所有识别目标  
  53. /*  
  54. 类别        详情说明  
  55. 方法功能        获取 OCR 识别到的所有目标(返回 detect 数组)  
  56. 方法签名        detect[] getAllDetect()  
  57. 返回值        detect[](所有识别目标的数组)  
  58. 参数        无  
  59. */  
  60. // 示例:获取当前 OCR 结果的所有目标  
  61. let allDetects = new ocrResult().getAllDetect();  


  62. // 方法6:🔍getAllString 获取所有识别文字  
  63. /*  
  64. 类别        详情说明  
  65. 方法功能        获取 OCR 识别到的所有文字(拼接为字符串返回)  
  66. 方法签名        String getAllString()  
  67. 返回值        String(所有识别文字的拼接结果)  
  68. 参数        无  
  69. */  
  70. // 示例:获取当前 OCR 结果的所有文字  
  71. let allText = new ocrResult().getAllString();  
  72. print.log(allText);  


  73. // 方法7:🔍getJson 获取 JSON 格式结果(ocrResult 实例方法)  
  74. /*  
  75. 类别        详情说明  
  76. 方法功能        获取 OCR 识别结果的 JSON 格式数据(字符串形式)  
  77. 方法签名        String getJson()  
  78. 返回值        String(OCR 识别结果的 JSON 字符串)  
  79. 参数        无  
  80. */  
  81. // 示例:获取并打印 OCR 结果的 JSON 数据  
  82. let ocrResult = new ocrResult();  
  83. let jsonResult = ocrResult.getJson();  
  84. print.log(jsonResult);  


  85. // 方法8:🔍getJsonString 获取 JSON 字符串(冗余方法,按需使用)  
  86. /*  
  87. 类别        详情说明  
  88. 方法功能        获取 OCR 识别结果的 JSON 字符串(与 getJson 功能一致,可能为别名)  
  89. 方法签名        String getJsonString()  
  90. 返回值        String(OCR 识别结果的 JSON 字符串)  
  91. 参数        无  
  92. */  
  93. // 示例:获取 JSON 字符串  
  94. let jsonStr = new ocrResult().getJsonString();  


  95. //======================== 2. 核心识别方法 ========================//  

  96. // 方法9:🔍MLKitOcr 文字识别(Google MLKit 引擎)  
  97. /*  
  98. 类别        详情说明  
  99. 方法功能        调用 Google MLKit 进行文字识别  
  100. 方法签名        ocrResult MLKitOcr(String arg0, int arg1)  
  101. 返回值        ocrResult(OCR 识别结果对象)  
  102. 参数        - String arg0:识别语言(默认值:"zh",中文)  
  103.         - int arg1:缩小倍数(默认值:2,即图像缩小为原来的 1/2)  
  104. */  
  105. // 示例:全屏识别中文,缩小倍数为 2  
  106. let ocrres = screen.MLKitOcr('zh', 2);  


  107. // 方法10:🔍MLKitOcrRect 文字区域识别(MLKit + 区域裁剪)  
  108. /*  
  109. 类别        详情说明  
  110. 方法功能        调用 Google MLKit 识别指定区域的文字(按百分比坐标)  
  111. 方法签名        ocrResult MLKitOcrRect(String arg0, double[] arg1)  
  112. 返回值        ocrResult(OCR 识别结果对象)  
  113. 参数        - String arg0:识别语言(默认值:"zh",中文)  
  114.         - double[] arg1:识别区域的百分比坐标(格式:[x1, y1, x2, y2],示例 [0,0,1,1] 代表全区域)  
  115. */  
  116. // 示例:识别屏幕上半区域的文字(百分比坐标 [0,0,1,0.5])  
  117. let img = screen.screenShotFull();  
  118. let ocrres = img.MLKitOcrRect('zh', [0,0,1,0.5]);  


  119. // 方法11:🔍aiworkOCR awork 文字识别  
  120. /*  
  121. 类别        详情说明  
  122. 方法功能        调用 awork 引擎进行文字识别(支持区域裁剪)  
  123. 方法签名        ocrResult aiworkOCR(int arg0, double[] arg1)  
  124. 返回值        ocrResult(OCR 识别结果对象)  
  125. 参数        - int arg0:识别尺寸(推荐值:640、320)  
  126.         - double[] arg1:识别区域的百分比坐标(格式:[x1, y1, x2, y2],示例 [0,0,1,1] 代表全区域)  
  127. */  
  128. // 示例:全屏识别,尺寸 640,查找并点击含“雷电”的目标  
  129. let img = screen.screenShotFull();  
  130. let ocrres = img.aiworkOCR(640, [0,0,1,1]);  
  131. ocrres.findIncludeText("雷电").hidClick();  


  132. // 方法12:🔍paddleOCR PaddleOCR 文字识别  
  133. /*  
  134. 类别        详情说明  
  135. 方法功能        调用 PaddleOCR 引擎进行文字识别(支持区域裁剪)  
  136. 方法签名        ocrResult paddleOCR(int arg0, double[] arg1)  
  137. 返回值        ocrResult(OCR 识别结果对象)  
  138. 参数        - int arg0:识别尺寸(推荐值:640、320)  
  139.         - double[] arg1:识别区域的百分比坐标(格式:[x1, y1, x2, y2],示例 [0,0,1,1] 代表全区域)  
  140. */  
  141. // 示例:全屏识别,尺寸 640,查找并点击含“雷电”的目标  
  142. let img = screen.screenShotFull();  
  143. let ocrres = img.paddleOCR(640, [0,0,1,1]);  
  144. ocrres.findIncludeText("雷电").hidClick();  


  145. //======================== 3. OpenCV 相关方法 ========================//  

  146. // 方法13:🔍opencv.OCR 通过训练字库识别  
  147. /*  
  148. 类别        详情说明  
  149. 方法功能        使用 OpenCV 训练的字库进行文字识别(需提前准备字库文件)  
  150. 方法签名        ocrResult OCR(Mat arg0, String arg1, double arg2, int arg3, double[] arg4)  
  151. 返回值        ocrResult(OCR 识别结果对象)  
  152. 参数        - Mat arg0:输入的图片对象(Mat 类型)  
  153.         - String arg1:字库文件路径/名称(案例中传空字符串 "")  
  154.         - double arg2:相似度阈值(案例中为 0,范围:0~1)  
  155.         - int arg3:预期识别的文字数量(案例中为 0,即不限数量)  
  156.         - double[] arg4:识别区域的百分比坐标(格式:[x1,y1,x2,y2],案例中传空数组 double[])  
  157. */  
  158. // 示例:使用默认字库识别全区域文字  
  159. let matImg = ...; // 假设已获取 Mat 类型图片  
  160. opencv.OCR(matImg, "", 0, 0, []);  


  161. // 方法14:🔍opencv.OCREx 基于 CV 文件的 OCR 识别  
  162. /*  
  163. 类别        详情说明  
  164. 方法功能        通过指定 CV 文件名进行文字识别(需提前准备 CV 配置文件)  
  165. 方法签名        ocrResult OCREx(String arg0)  
  166. 返回值        ocrResult(OCR 识别结果对象)  
  167. 参数        - String arg0:CV 文件名(案例中传入空字符串 "")  
  168. */  
  169. // 示例:使用空 CV 文件名识别(需确保配置正确)  
  170. opencv.OCREx("");  


  171. //======================== 4. TomatoOCR 完整实例演示 ========================//  

  172. /*  
  173. 🍅 功能:TomatoOCR 引擎的完整调用示例(含初始化、识别、封装方法)  
  174. 步骤:  
  175. 1. 加载插件 → 2. 导入类 → 3. 初始化 OCR → 4. 封装识别方法 → 5. 调用识别  
  176. 注意:需自行获取 license,调整模型参数(如 rec_type、检测模型等)。  
  177. */  

  178. var TM = {};  

  179. // 1. 加载插件(根据设备架构调整,如 armeabi-v7a)  
  180. rhino.loadDex('TomatoOCR.apk');  

  181. // 2. 导入类(多插件调用需确保类加载)  
  182. try {  
  183.   rhino.loadClass('com.tomato.ocr.aw.OCRApi');  
  184.   importClass(com.tomato.ocr.aw.OCRApi);  
  185. } catch (error) {  
  186.   FZ.printll(error);  
  187. }  

  188. // 3. 初始化 OCR  
  189. var ocr = new OCRApi();  
  190. let rec_type = "ch-3.0"; // 模型类型:ch/cht/japan/korean 等(3.0版为默认推荐)  
  191. ocr.setContext(context, rec_type);  

  192. // 4. 设置 license(需自行获取,试用版从群/网盘获取)  
  193. let license = "自己找作者获取";  
  194. let flag = ocr.setLicense(license);  
  195. // flag 含义:-1(无效)、0(过期)、1/到期日期(有效)  
  196. print.log("License 状态:" + flag);  

  197. // 5. 调整识别参数(可选,按需修改)  
  198. ocr.setDetBoxType("rect"); // 检测模型:rect(矩形文本,默认)/ quad(倾斜文本)  
  199. ocr.setDetUnclipRatio(1.9); // 检测扩展系数(1.6~2.5 之间,默认1.9)  
  200. ocr.setRecScoreThreshold(0.3); // 识别得分过滤(0.1~0.9 之间,默认0.3)  
  201. ocr.setReturnType("json"); // 返回格式:json(默认,含坐标+文字+得分)/ text(纯文字)/ num(纯数字)  

  202. var type = 3; // 识别模式:0(只检测)、1(方向分类+识别)、2(只识别)、3(检测+识别,默认)  


  203. // 6. 封装识别方法(带点击、坐标返回功能)  
  204. /**  
  205. * TM.tmocr识别:OCR 识别并可选点击目标  
  206. * @param {String} tmstr - 目标文字  
  207. * @param {Array} tmsize - 识别区域(百分比坐标 [x1,y1,x2,y2])  
  208. * @param {Boolean} tmclick - 是否点击目标  
  209. * @param {Number} tmcoor1 - 点击偏移最小值  
  210. * @param {Number} tmcoor2 - 点击偏移最大值  
  211. * @param {Number} tmslee - 点击后休眠时间(毫秒)  
  212. * @return {Boolean} 是否识别到目标  
  213. */  
  214. TM.tmocr识别 = function (tmstr, tmsize, tmclick, tmcoor1, tmcoor2, tmslee) {  
  215.   // 百分比坐标转真实屏幕坐标(wdh/hgt 需提前定义为屏幕宽高)  
  216.   var tma = Math.round(tmsize[0] * wdh);  
  217.   var tmb = Math.round(tmsize[1] * hgt);  

  218.   var img0 = screen.screenShotFull(); // 全屏截图  
  219.   sleep.millisecond(10); // 休眠避免资源冲突  
  220.   var img = img0.cutImagePercent(tmsize[0], tmsize[1], tmsize[2], tmsize[3]); // 裁剪识别区域  
  221.   sleep.millisecond(10);  

  222.   var result3 = ocr.ocrBase64(img.toBase64(), type); // 调用 TomatoOCR 识别  
  223.   try {  
  224.     if (result3) {  
  225.       var result3 = JSON.parse(result3); // 解析 JSON 结果  
  226.       var point = this.findStrCenter(result3, tmstr); // 查找文字中心坐标  
  227.       if (point[0] >= 0) { // 识别到目标  
  228.         FZ.printll(`找到目标文字:${tmstr}`);  
  229.         var tme = point[0] + tma; // 计算真实坐标  
  230.         var tmf = point[1] + tmb;  
  231.         if (tmclick) { // 若需点击  
  232.           hid.click(  
  233.             tme + rand.randNumber(tmcoor1, tmcoor2), // 横向偏移  
  234.             tmf + rand.randNumber(tmcoor1, tmcoor2)  // 纵向偏移  
  235.           );  
  236.           sleep.millisecond(tmslee); // 点击后休眠  
  237.         }  
  238.         img0.recycle(); // 释放图片资源  
  239.         img.recycle();  
  240.         return true;  
  241.       }  
  242.     }  
  243.   } catch (err) {  
  244.     printl(`识别异常:${err}`);  
  245.   }  
  246.   img0.recycle();  
  247.   img.recycle();  
  248.   return false;  
  249. };  


  250. /**  
  251. * TM.tmocr识别坐标:OCR 识别并返回目标坐标  
  252. * @param {String} tmstr - 目标文字  
  253. * @param {Array} tmsize - 识别区域(百分比坐标 [x1,y1,x2,y2])  
  254. * @return {Array|null} 目标坐标 [x,y],未找到则返回 null  
  255. */  
  256. TM.tmocr识别坐标 = function (tmstr, tmsize) {  
  257.   var tma = Math.round(tmsize[0] * wdh);  
  258.   var tmb = Math.round(tmsize[1] * hgt);  

  259.   var img0 = screen.screenShotFull();  
  260.   sleep.millisecond(10);  
  261.   var img = img0.cutImagePercent(tmsize[0], tmsize[1], tmsize[2], tmsize[3]);  
  262.   sleep.millisecond(10);  

  263.   var result3 = ocr.ocrBase64(img.toBase64(), type);  
  264.   try {  
  265.     if (result3) {  
  266.       var result3 = JSON.parse(result3);  
  267.       var point = this.findStrCenter(result3, tmstr);  
  268.       if (point[0] >= 0) {  
  269.         FZ.printll(`找到目标文字:${tmstr}`);  
  270.         var tme = point[0] + tma;  
  271.         var tmf = point[1] + tmb;  
  272.         img0.recycle();  
  273.         img.recycle();  
  274.         return [tme, tmf];  
  275.       }  
  276.     }  
  277.   } catch (err) {  
  278.     printl(`识别异常:${err}`);  
  279.   }  
  280.   img0.recycle();  
  281.   img.recycle();  
  282.   return null;  
  283. };  


  284. /**  
  285. * TM.findStrCenter:从 OCR 结果中查找文字中心坐标  
  286. * @param {Array} result_list - OCR 识别结果(JSON 解析后的数组,格式:[{words: "文本", location: [[x1,y1],[x2,y2],...]}])  
  287. * @param {String} data - 目标文字  
  288. * @return {Array} 中心坐标 [x,y],未找到则返回 [-1,-1]  
  289. */  
  290. TM.findStrCenter = function (result_list, data) {  
  291.   for (let i = 0; i < result_list.length; i++) {  
  292.     var words = result_list[i]["words"];  
  293.     var location = result_list[i]["location"];  
  294.     if (words.includes(data)) { // 检查文字是否包含目标  
  295.       let x1 = location[0][0];  
  296.       let y1 = location[0][1];  
  297.       let x2 = location[2][0];  
  298.       let y2 = location[2][1];  
  299.       // 计算文字中心坐标(适配多字符匹配)  
  300.       let charIndex = words.indexOf(data);  
  301.       let x = Math.floor(  
  302.         (x2 - x1) / words.length * (data.length + 2 * charIndex) / 2 + x1  
  303.       );  
  304.       let y = Math.floor((y2 - y1) / 2 + y1);  
  305.       return [x, y];  
  306.     }  
  307.   }  
  308.   return [-1, -1];  
  309. };  


  310. // 7. 调用示例(需结合实际场景,以下为伪代码)  
  311. // TM.tmocr识别("确认", [0,0,1,1], true, 5, 10, 1000); // 全屏识别“确认”并点击(带偏移)  


  312. // 8. 内存释放(可选,结束时调用)  
  313. // ocr.end();  


  314. /*  
  315. &#128204; 关键说明:  
  316. 1. **环境依赖**:需提前定义 `wdh`(屏幕宽度)、`hgt`(屏幕高度)、`rand`(随机数工具)、`hid`(点击工具)。  
  317. 2. **模型切换**:`rec_type` 支持 `ch`(v1.0)、`ch-2.0`、`ch-3.0`(推荐)、`cht`(繁体)、`japan`(日语)等。  
  318. 3. **参数优化**:  
  319.    - `setDetUnclipRatio`:值越大,检测区域越宽松(适合复杂排版)。  
  320.    - `setRecScoreThreshold`:值越高,识别精度要求越严格(需平衡召回率)。  
  321. 4. **资源释放**:长时间运行需调用 `ocr.end()` 释放内存,避免泄漏。  
  322. */
复制代码

findIncludeText查询包含文字
项目
详情
功能描述
查询包含文字
方法定义
detect findIncludeText(String arg0)
返回值
detect
参数
String arg0
:需查询的文字内容
案例
new ocrResult().findIncludeText('')
&#128269;&#128290;findIncludeTexts查询包含文字多目标
项目
详情
功能描述
查询包含文字多目标,查询包含某个文字的多个结果,返回值为 detect 数组,数组元素类型是 detect 类型
方法定义
detect[] findIncludeTexts(String arg0)
返回值
detect[]
参数
String arg0
:需查询的文字内容
案例
new ocrResult().findIncludeTexts('')
&#128269;&#128290;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();
&#128269;&#128290;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();
&#128269;&#128290;getAllDetect 获取所有目标
项目
详情
功能描述
获取所有目标
方法定义
detect[] getAllDetect()
返回值
detect[]
参数
案例
new ocrResult().getAllDetect()
&#128269;&#128290;getAllString 获取所有字符串
项目
详情
功能描述
获取所有字符串
方法定义
String getAllString()
返回值
String
参数
案例
new ocrResult().getAllString()
&#128269;&#128290;getJson 获取json对象
项目
详情
功能描述
获取 OCR 识别结果的 JSON 格式数据
方法定义
String getJson()
(ocrResult
类的实例方法)
返回值
String
:OCR 识别结果的 JSON 字符串
参数
案例
// 假设已获取OCR识别结果对象
let ocrResult = new ocrResult();// 获取JSON格式结果
let jsonResult = ocrResult.getJson();
printl(jsonResult);
&#128269;&#128290;getJsonString 获取json字符串
项目
详情
功能描述
获取 JSON 字符串形式的 OCR 识别结果
方法定义
String getJsonString()
(ocrResult
类的实例方法)
返回值
String
参数

案例
let jsonStr = new ocrResult().getJsonString();
&#128269;&#128290;MLKitOcr文字识别
项目
说明
功能
文字识别
方法签名
ocrResult MLKitOcr(String arg0, int arg1)
返回值
ocrResult
参数 1
String arg0
,语言(默认值:中文)
参数 2
int arg1
,缩小倍数(默认值:2,即缩小一半)
调用案例
screen.MLKitOcr('zh', 2)
&#128269;&#128290;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]); // 识别指定区域的文字
&#128269;&#128290;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(); // 查找并点击含"雷电"的目标
&#128269;&#128290;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(); // 查找并点击含"雷电"的目标
&#128269;&#128290;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 文件名)


AIWROK系统安卓找字OCR___方法小结总汇集合 B2B网络软件 AIWROK系统安卓找字OCR___方法小结总汇集合 B2B网络软件

完整示例:
  1. /*
  2. &#127822;交流QQ群711841924群一,苹果内测群,528816639

  3. &#127822;&#128296;&#128204;&#128296;OCR方法小结
  4. */

  5. // 第一个示例:获取屏幕截图并进行 OCR 文字识别(简体中文)
  6. var img1 = screen.screenShotFull();
  7. var ocr1 = img1.MLKitOcr('zhs');
  8. var text1 = ocr1.getAllString();
  9. printl(text1);
  10. img1.recycle();

  11. /*
  12. 说明:
  13. - 这是一个最基本的 OCR 示例。
  14. - 使用 MLKitOcr 方法通过简体中文词库识别截图中的文字。
  15. - 最终输出识别到的全文本信息。
  16. */


  17. // 第二个示例:指定区域内的 OCR 文字识别(中文)
  18. var img2 = screen.screenShotFull();
  19. var ocrRegion2 = [0, 0.2, 1, 0.6];
  20. var ocrResult2 = img2.MLKitOcrRect('zh', ocrRegion2);
  21. var recognizedText2 = ocrResult2.getAllString();
  22. printl("OCR识别结果: " + recognizedText2);
  23. img2.recycle();

  24. /*
  25. 说明:
  26. - 此示例中,OCR 定义了一个特定的屏幕区域来识别文本,避免了全屏识别的开销。
  27. - 使用 MLKitOcrRect 方法优化了识别区域。
  28. */


  29. // 第三个示例:使用 PaddleOCR 识别并查找特定文本
  30. var img3 = screen.screenShotFull();
  31. var ocrResult3 = img3.paddleOCR(640, [0, 0, 1, 1]);
  32. var target3 = ocrResult3.findIncludeText("雷电");
  33. if (target3) {
  34.     target3.hidClick();
  35.     printl("成功点击目标区域: 雷电");
  36. } else {
  37.     printl("目标区域未找到: 雷电");
  38. }
  39. img3.recycle();

  40. /*
  41. 说明:
  42. - 示例使用 PaddleOCR 技术识别文本。
  43. - 识别完成后,查找特定文本,并对找到目标进行点击操作。
  44. */


  45. // 第四个示例:全屏 OCR 查找文本内容并点击
  46. var img4 = screen.screenShotFull();
  47. var ocrResult4 = img4.paddleOCR(640, [0, 0, 1, 1]);
  48. var target4 = ocrResult4.findIncludeText("雷电");
  49. if (target4) {
  50.     target4.click();
  51. } else {
  52.     printl("未找到指定文本");
  53. }
  54. img4.recycle();

  55. /*
  56. 说明:
  57. - 该示例与第三个类似,但更高效地处理了查找和目标动作操作。
  58. */


  59. // 第五个示例:查找包含目标文字的多个区域
  60. var img5 = screen.screenShotFull();
  61. var ocrResult5 = img5.MLKitOcr('zh');
  62. var targets5 = ocrResult5.findIncludeTexts("雷电");
  63. if (targets5.length > 0) {
  64.     targets5.forEach(target => {
  65.         target.click();
  66.     });
  67. } else {
  68.     printl("未找到指定文本");
  69. }
  70. img5.recycle();

  71. /*
  72. 说明:
  73. - 查找包含目标文字的多个区域,返回所有目标的列表。
  74. - 遍历所有目标,逐一对其执行点击操作。
  75. */


  76. // 第六个示例:获取 OCR 识别到的所有文本并打印
  77. var img6 = screen.screenShotFull();
  78. var ocrResult6 = img6.paddleOCR(640, [0, 0, 1, 1]);
  79. var allText6 = ocrResult6.getAllString();
  80. if (!allText6) {
  81.     printl("未检测到任何文本");
  82. } else {
  83.     printl("检测到的文本内容: " + allText6);
  84. }
  85. img6.recycle();

  86. /*
  87. 说明:
  88. - 示例展示如何提取 OCR 识别结果中的所有字符信息。
  89. */


  90. // 第七个示例:通过 MLKitOcr 完全读出屏幕文字
  91. var img7 = screen.screenShotFull();
  92. var ocrResult7 = img7.MLKitOcr('zh');
  93. printl(ocrResult7.getAllString());
  94. img7.recycle();

  95. /*
  96. 说明:
  97. - 示例使用 MLKitOcr 在全屏范围内提取所有文本信息。
  98. */


  99. // 第八个示例:获取 JSON 格式的 OCR 识别结果
  100. var img8 = screen.screenShotFull();
  101. var ocrResult8 = img8.MLKitOcr('zh');
  102. var jsonResult8 = ocrResult8.getJson();
  103. printl(JSON.stringify(jsonResult8, null, 2));
  104. img8.recycle();

  105. /*
  106. 说明:
  107. - 此示例展示了如何将 OCR 结果以 JSON 格式获取。
  108. */


  109. // 第九个示例:获取 OCR 的 JSON 表示
  110. var img9 = screen.screenShotFull();
  111. var ocrResult9 = img9.MLKitOcr('zh');
  112. var ocrJson9 = ocrResult9.getJson();
  113. printl("OCR 结果 JSON: " + JSON.stringify(ocrJson9));
  114. img9.recycle();

  115. /*
  116. 说明:
  117. - 将 OCR 输出结果以 JSON 格式显示,便于程序进一步处理。
  118. */


  119. // 第十个示例:OpenCV OCR 使用
  120. var mat10 = screen.screenShot(720, 1280, 100).getMat();
  121. var seek10 = opencv.OCR(mat10, '点击头条输入框.ocr', 0.95, 0);
  122. if (seek10) {
  123.     printl(seek10.findIncludeText('点击'));
  124. } else {
  125.     printl("未找到了");
  126. }

  127. /*
  128. 说明:
  129. - 使用 OpenCV 库执行 OCR,匹配的置信度为 0.95。
  130. - 根据内容查找包含特定文本的区域。
  131. */


  132. // 第十一个示例:OpenCV OCR 扩展功能使用
  133. var seek11 = opencv.OCREx('关闭后台.cv');
  134. if (seek11) {
  135.     printl(seek11.findIncludeText('关闭后台.cv'));
  136. } else {
  137.     printl("未找到了");
  138. }

  139. /*
  140. 说明:
  141. - 使用 opencv.OCREx 对指定的 cv 文件进行 OCR 识别。
  142. - 扩展功能 checkColorsEx 用于进一步处理颜色匹配和文本识别结果。
  143. */
复制代码












欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2