自动发帖软件

标题: AIWROK软件苹果系统找图方法完整示例集合 [打印本页]

作者: 发帖软件    时间: 5 小时前
标题: AIWROK软件苹果系统找图方法完整示例集合
AIWROK软件苹果系统找图方法完整示例集合 群发软件发帖工具

AIWROK软件苹果系统找图方法完整示例集合

  1. // 苹果系统找图方法汇集示例
  2. // 交流QQ群711841924
  3. // 苹果系统找图方法完整示例集合

  4. function sleep(ms) {
  5.     return new Promise(resolve => setTimeout(resolve, ms));
  6. }

  7. function main() {
  8.     printl("========== 苹果系统找图方法汇集示例 ==========\n");

  9.     example1_findImagesEx();      // 示例1: CV文件模板匹配找图(最基础用法)
  10.     example2_findImages();        // 示例2: 多图查找(支持超时和质量设置)
  11.     example3_templateMatch();     // 示例3: 多模板匹配查找
  12.     example4_findImagesEx_multi(); // 示例4: 单CV文件查找多个目标
  13.     example5_findImages_region();  // 示例5: 指定区域找图
  14.     example6_findImages_timeout(); // 示例6: 带超时的找图
  15.     example7_templateMatch_best(); // 示例7: 只返回最佳匹配
  16.     example8_findImages_quality(); // 示例8: 不同截图质量的找图
  17.     example9_templateMatch_region(); // 示例9: 指定区域的模板匹配
  18.     example10_findImages_threshold(); // 示例10: 不同相似度阈值的找图
  19.     example11_comprehensive_flow(); // 示例11: 综合自动化流程(实战案例)

  20.     printl("\n========== 所有示例执行完毕 ==========");
  21. }

  22. // 方法一:findImagesEx - CV文件模板匹配找图(最基础用法)
  23. function example1_findImagesEx() {
  24.     printl("【示例1】findImagesEx - CV文件模板匹配找图");
  25.     printl("适用场景:查找单个图片模板,最简单直接的找图方法");
  26.     printl("演示效果:交替点击两个不同的目标");
  27.     printl("等待2秒确保屏幕加载完成...");
  28.     sleep(2000);
  29.    
  30.     try {
  31.         var detects1 = opencv.findImagesEx('图色769598.cv');
  32.         if (detects1 != null && detects1.length > 0) {
  33.             printl("✓ 找到目标1,数量: " + detects1.length);
  34.             var rect1 = detects1[0].getRect();
  35.             printl("目标1中心点: x=" + rect1.getCenterX() + ", y=" + rect1.getCenterY());
  36.             printl("点击目标1");
  37.             detects1[0].clickRandom();
  38.             sleep(1000);
  39.         } else {
  40.             printl("✗ 未找到目标1,等待1秒后重试...");
  41.             sleep(1000);
  42.             detects1 = opencv.findImagesEx('图色769598.cv');
  43.             if (detects1 != null && detects1.length > 0) {
  44.                 printl("✓ 重试后找到目标1,数量: " + detects1.length);
  45.                 var rect1 = detects1[0].getRect();
  46.                 printl("目标1中心点: x=" + rect1.getCenterX() + ", y=" + rect1.getCenterY());
  47.                 printl("点击目标1");
  48.                 detects1[0].clickRandom();
  49.                 sleep(1000);
  50.             } else {
  51.                 printl("✗ 重试后仍未找到目标1");
  52.             }
  53.         }

  54.         var detects2 = opencv.findImagesEx('图色781849.cv');
  55.         if (detects2 != null && detects2.length > 0) {
  56.             printl("✓ 找到目标2,数量: " + detects2.length);
  57.             var rect2 = detects2[0].getRect();
  58.             printl("目标2中心点: x=" + rect2.getCenterX() + ", y=" + rect2.getCenterY());
  59.             printl("点击目标2");
  60.             detects2[0].clickRandom();
  61.             sleep(1000);
  62.         } else {
  63.             printl("✗ 未找到目标2");
  64.         }
  65.     } catch (e) {
  66.         printl("错误: " + e);
  67.     }
  68.     printl("");
  69. }

  70. // 方法二:findImages - 多图查找(支持超时和质量设置)
  71. function example2_findImages() {
  72.     printl("【示例2】findImages - 多图查找");
  73.     printl("适用场景:同时查找多张相似图片,支持设置超时和截图质量");
  74.     try {
  75.         var targetImages = ['图色769598.cv', '图色769599.cv'];
  76.         var multiFindResults = opencv.findImages(targetImages, 0.7, 3000, 1, [0, 0, 1, 1]);
  77.         
  78.         if (multiFindResults != null) {
  79.             printl("多图查找成功,找到目标数量: " + multiFindResults.length);
  80.             for (var i = 0; i < Math.min(3, multiFindResults.length); i++) {
  81.                 printl("目标" + i + ": x=" + multiFindResults[i].x + ", y=" + multiFindResults[i].y);
  82.             }
  83.             
  84.             if (multiFindResults.length > 0) {
  85.                 printl("点击第一个目标");
  86.                 multiFindResults[0].clickRandom();
  87.             }
  88.         } else {
  89.             printl("多图查找超时或失败");
  90.         }
  91.     } catch (e) {
  92.         printl("错误: " + e);
  93.     }
  94.     printl("");
  95. }

  96. // 方法三:templateMatch - 多模板匹配查找目标对象
  97. function example3_templateMatch() {
  98.     printl("【示例3】templateMatch - 多模板匹配查找");
  99.     printl("适用场景:基于多个模板图片在指定图像中匹配目标,可设置匹配区域、阈值等");
  100.     try {
  101.         var image = screen.screenShotFull();
  102.         var mat = image.getMat();
  103.         
  104.         var templates = ['图色769598.cv', '图色769599.cv'];
  105.         var matchResults = opencv.templateMatch(mat, templates, 0.8, [0, 0, 1, 1], false);
  106.         
  107.         if (matchResults != null && matchResults.length > 0) {
  108.             printl("模板匹配成功,找到目标数量: " + matchResults.length);
  109.             for (var i = 0; i < Math.min(3, matchResults.length); i++) {
  110.                 printl("目标" + i + ": x=" + matchResults[i].x + ", y=" + matchResults[i].y +
  111.                       ", width=" + matchResults[i].width + ", height=" + matchResults[i].height);
  112.             }
  113.             
  114.             printl("点击第一个目标");
  115.             matchResults[0].clickRandom();
  116.         } else {
  117.             printl("模板匹配未找到目标");
  118.         }
  119.         
  120.         mat.close();
  121.         image.close();
  122.     } catch (e) {
  123.         printl("错误: " + e);
  124.     }
  125.     printl("");
  126. }

  127. // 方法四:findImagesEx - 单CV文件查找多个目标
  128. function example4_findImagesEx_multi() {
  129.     printl("【示例4】findImagesEx - 单CV文件查找多个目标");
  130.     printl("适用场景:屏幕中存在多个相同的目标,需要全部找到");
  131.     printl("注意:此示例在示例1执行后运行,屏幕状态可能已改变");
  132.     try {
  133.         var detects = opencv.findImagesEx('图色769598.cv');
  134.         if (detects != null && detects.length > 0) {
  135.             printl("找到 " + detects.length + " 个目标");
  136.             
  137.             for (var i = 0; i < detects.length; i++) {
  138.                 var rect = detects[i].getRect();
  139.                 printl("目标" + i + ": 中心点 x=" + rect.getCenterX() + ", y=" + rect.getCenterY());
  140.             }
  141.             
  142.             printl("点击所有目标");
  143.             for (var i = 0; i < detects.length; i++) {
  144.                 detects[i].clickRandom();
  145.                 sleep(500);
  146.             }
  147.         } else {
  148.             printl("未找到目标");
  149.         }
  150.     } catch (e) {
  151.         printl("错误: " + e);
  152.     }
  153.     printl("");
  154. }

  155. // 方法五:findImages - 指定区域找图
  156. function example5_findImages_region() {
  157.     printl("【示例5】findImages - 指定区域找图");
  158.     printl("适用场景:只在屏幕的特定区域查找目标,提高查找效率");
  159.     try {
  160.         var targetImages = ['图色769598.cv'];
  161.         
  162.         var region = [0.2, 0.2, 0.8, 0.8];
  163.         printl("查找区域: [" + region.join(", ") + "]");
  164.         printl("说明:区域坐标为百分比,[0.2, 0.2, 0.8, 0.8] 表示从屏幕20%位置开始查找");
  165.         
  166.         var regionResults = opencv.findImages(targetImages, 0.7, 3000, 1, region);
  167.         
  168.         if (regionResults != null) {
  169.             printl("在指定区域内找到 " + regionResults.length + " 个目标");
  170.             if (regionResults.length > 0) {
  171.                 regionResults[0].clickRandom();
  172.             }
  173.         } else {
  174.             printl("指定区域内未找到目标");
  175.         }
  176.     } catch (e) {
  177.         printl("错误: " + e);
  178.     }
  179.     printl("");
  180. }

  181. // 方法六:findImages - 带超时的找图
  182. function example6_findImages_timeout() {
  183.     printl("【示例6】findImages - 带超时的找图");
  184.     printl("适用场景:设置查找超时时间,避免长时间等待");
  185.     try {
  186.         var targetImages = ['图色769598.cv'];
  187.         
  188.         printl("开始查找,超时时间: 5000毫秒");
  189.         printl("说明:如果5000毫秒内未找到目标,将返回null");
  190.         
  191.         var timeoutResults = opencv.findImages(targetImages, 0.7, 5000, 1, [0, 0, 1, 1]);
  192.         
  193.         if (timeoutResults != null) {
  194.             printl("在超时前找到目标");
  195.             timeoutResults[0].clickRandom();
  196.         } else {
  197.             printl("查找超时,未找到目标");
  198.         }
  199.     } catch (e) {
  200.         printl("错误: " + e);
  201.     }
  202.     printl("");
  203. }

  204. // 方法七:templateMatch - 只返回最佳匹配
  205. function example7_templateMatch_best() {
  206.     printl("【示例7】templateMatch - 只返回最佳匹配");
  207.     printl("适用场景:只关心最匹配的结果,忽略其他匹配项");
  208.     try {
  209.         var image = screen.screenShotFull();
  210.         var mat = image.getMat();
  211.         
  212.         var templates = ['图色769598.cv', '图色769599.cv'];
  213.         
  214.         printl("查找最佳匹配(best=true)");
  215.         printl("说明:只返回相似度最高的一个匹配结果");
  216.         
  217.         var bestMatch = opencv.templateMatch(mat, templates, 0.8, [0, 0, 1, 1], true);
  218.         
  219.         if (bestMatch != null && bestMatch.length > 0) {
  220.             printl("找到最佳匹配: x=" + bestMatch[0].x + ", y=" + bestMatch[0].y);
  221.             bestMatch[0].clickRandom();
  222.         } else {
  223.             printl("未找到最佳匹配");
  224.         }
  225.         
  226.         mat.close();
  227.         image.close();
  228.     } catch (e) {
  229.         printl("错误: " + e);
  230.     }
  231.     printl("");
  232. }

  233. // 方法八:findImages - 不同截图质量的找图
  234. function example8_findImages_quality() {
  235.     printl("【示例8】findImages - 不同截图质量的找图");
  236.     printl("适用场景:根据需求选择不同的截图质量,平衡速度和准确度");
  237.     try {
  238.         var targetImages = ['图色769598.cv'];
  239.         
  240.         printl("测试不同截图质量:");
  241.         printl("质量0(标清):速度快,适合快速查找");
  242.         var result0 = opencv.findImages(targetImages, 0.7, 3000, 0, [0, 0, 1, 1]);
  243.         printl("  标清结果: " + (result0 != null ? "找到" : "未找到"));
  244.         
  245.         printl("质量1(高清):速度中等,适合一般场景");
  246.         var result1 = opencv.findImages(targetImages, 0.7, 3000, 1, [0, 0, 1, 1]);
  247.         printl("  高清结果: " + (result1 != null ? "找到" : "未找到"));
  248.         
  249.         printl("质量2(超清):速度慢,适合精细查找");
  250.         var result2 = opencv.findImages(targetImages, 0.7, 3000, 2, [0, 0, 1, 1]);
  251.         printl("  超清结果: " + (result2 != null ? "找到" : "未找到"));
  252.         
  253.     } catch (e) {
  254.         printl("错误: " + e);
  255.     }
  256.     printl("");
  257. }

  258. // 方法九:templateMatch - 指定区域的模板匹配
  259. function example9_templateMatch_region() {
  260.     printl("【示例9】templateMatch - 指定区域的模板匹配");
  261.     printl("适用场景:在屏幕的特定区域内进行模板匹配");
  262.     try {
  263.         var image = screen.screenShotFull();
  264.         var mat = image.getMat();
  265.         
  266.         var templates = ['图色769598.cv'];
  267.         var region = [0.3, 0.3, 0.7, 0.7];
  268.         
  269.         printl("在区域 [" + region.join(", ") + "] 内进行模板匹配");
  270.         printl("说明:只在屏幕中央区域查找,提高效率");
  271.         
  272.         var matchResults = opencv.templateMatch(mat, templates, 0.8, region, false);
  273.         
  274.         if (matchResults != null && matchResults.length > 0) {
  275.             printl("在指定区域内找到 " + matchResults.length + " 个目标");
  276.             matchResults[0].clickRandom();
  277.         } else {
  278.             printl("指定区域内未找到目标");
  279.         }
  280.         
  281.         mat.close();
  282.         image.close();
  283.     } catch (e) {
  284.         printl("错误: " + e);
  285.     }
  286.     printl("");
  287. }

  288. // 方法十:findImages - 不同相似度阈值的找图
  289. function example10_findImages_threshold() {
  290.     printl("【示例10】findImages - 不同相似度阈值的找图");
  291.     printl("适用场景:根据需求调整相似度阈值,平衡精确度和召回率");
  292.     try {
  293.         var targetImages = ['图色769598.cv'];
  294.         
  295.         printl("测试不同相似度阈值:");
  296.         printl("阈值0.5(宽松):容易找到,但可能误匹配");
  297.         var result05 = opencv.findImages(targetImages, 0.5, 3000, 1, [0, 0, 1, 1]);
  298.         printl("  阈值0.5结果: " + (result05 != null ? result05.length + "个" : "未找到"));
  299.         
  300.         printl("阈值0.7(中等):平衡精确度和召回率");
  301.         var result07 = opencv.findImages(targetImages, 0.7, 3000, 1, [0, 0, 1, 1]);
  302.         printl("  阈值0.7结果: " + (result07 != null ? result07.length + "个" : "未找到"));
  303.         
  304.         printl("阈值0.9(严格):只匹配非常相似的目标");
  305.         var result09 = opencv.findImages(targetImages, 0.9, 3000, 1, [0, 0, 1, 1]);
  306.         printl("  阈值0.9结果: " + (result09 != null ? result09.length + "个" : "未找到"));
  307.         
  308.     } catch (e) {
  309.         printl("错误: " + e);
  310.     }
  311.     printl("");
  312. }

  313. // 方法十一:综合自动化流程 - 完整的自动化操作流程(实战案例)
  314. function example11_comprehensive_flow() {
  315.     printl("【示例11】综合自动化流程 - 实战案例");
  316.     printl("适用场景:完整的自动化操作流程,模拟实际应用");
  317.     try {
  318.         printl("========== 步骤1: 使用findImagesEx查找第一个目标 ==========");
  319.         var detects1 = opencv.findImagesEx('图色769598.cv');
  320.         if (detects1 != null && detects1.length > 0) {
  321.             printl("✓ 找到目标1,点击");
  322.             printl("  位置: x=" + detects1[0].x + ", y=" + detects1[0].y);
  323.             detects1[0].clickRandom();
  324.             sleep(2000);
  325.             
  326.             printl("\n========== 步骤2: 使用findImages查找多个目标 ==========");
  327.             var targetImages = ['图色769598.cv', '图色769599.cv'];
  328.             printl("查找图片列表: " + targetImages.join(", "));
  329.             var multiResults = opencv.findImages(targetImages, 0.7, 3000, 1, [0, 0, 1, 1]);
  330.             
  331.             if (multiResults != null) {
  332.                 printl("✓ 找到 " + multiResults.length + " 个目标");
  333.                 if (multiResults.length > 0) {
  334.                     printl("✓ 点击第一个目标");
  335.                     multiResults[0].clickRandom();
  336.                     sleep(2000);
  337.                 }
  338.                
  339.                 printl("\n========== 步骤3: 使用templateMatch在指定区域查找 ==========");
  340.                 var image = screen.screenShotFull();
  341.                 var mat = image.getMat();
  342.                 var templates = ['图色769598.cv'];
  343.                 var region = [0.3, 0.3, 0.7, 0.7];
  344.                
  345.                 printl("在区域 [" + region.join(", ") + "] 内查找");
  346.                 printl("说明:只在屏幕中央区域查找,提高效率");
  347.                 var matchResults = opencv.templateMatch(mat, templates, 0.8, region, true);
  348.                
  349.                 if (matchResults != null && matchResults.length > 0) {
  350.                     printl("✓ 在指定区域内找到目标");
  351.                     printl("  位置: x=" + matchResults[0].x + ", y=" + matchResults[0].y);
  352.                     matchResults[0].clickRandom();
  353.                 } else {
  354.                     printl("✗ 指定区域内未找到目标");
  355.                 }
  356.                
  357.                 mat.close();
  358.                 image.close();
  359.                
  360.                 printl("\n========== 步骤4: 查找所有相同目标并批量点击 ==========");
  361.                 var allDetects = opencv.findImagesEx('图色769598.cv');
  362.                 if (allDetects != null && allDetects.length > 0) {
  363.                     printl("✓ 找到 " + allDetects.length + " 个相同目标");
  364.                     printl("开始批量点击...");
  365.                     for (var i = 0; i < allDetects.length; i++) {
  366.                         printl("  点击目标 " + (i + 1) + "/" + allDetects.length);
  367.                         allDetects[i].clickRandom();
  368.                         sleep(300);
  369.                     }
  370.                     printl("✓ 批量点击完成");
  371.                 } else {
  372.                     printl("✗ 未找到目标");
  373.                 }
  374.             } else {
  375.                 printl("✗ 多图查找失败");
  376.             }
  377.         } else {
  378.             printl("✗ 未找到目标1");
  379.         }
  380.         
  381.         printl("\n========== 综合流程执行完成 ==========");
  382.     } catch (e) {
  383.         printl("综合流程错误: " + e);
  384.     }
  385.     printl("");
  386. }

  387. // ========== 实用辅助函数集合 ==========

  388. // 辅助函数1:安全找图(带重试机制)
  389. function safeFindImage(cvFile, maxRetries) {
  390.     printl("【辅助函数】safeFindImage - 安全找图(带重试机制)");
  391.     for (var retry = 0; retry < maxRetries; retry++) {
  392.         try {
  393.             printl("查找图片: " + cvFile + " (尝试 " + (retry + 1) + "/" + maxRetries + ")");
  394.             var detects = opencv.findImagesEx(cvFile);
  395.             
  396.             if (detects != null && detects.length > 0) {
  397.                 printl("✓ 找到目标");
  398.                 return detects;
  399.             }
  400.             
  401.             if (retry < maxRetries - 1) {
  402.                 printl("未找到,等待重试...");
  403.                 sleep(1000);
  404.             }
  405.         } catch (error) {
  406.             printl("查找出错: " + error);
  407.             if (retry < maxRetries - 1) {
  408.                 sleep(2000);
  409.             }
  410.         }
  411.     }
  412.     printl("✗ 未找到图片: " + cvFile);
  413.     return null;
  414. }

  415. // 辅助函数2:批量点击所有匹配目标
  416. function clickAllTargets(detects) {
  417.     printl("【辅助函数】clickAllTargets - 批量点击所有匹配目标");
  418.     if (detects == null || detects.length === 0) {
  419.         printl("没有可点击的目标");
  420.         return;
  421.     }
  422.    
  423.     printl("准备点击 " + detects.length + " 个目标");
  424.     for (var i = 0; i < detects.length; i++) {
  425.         printl("点击目标 " + (i + 1) + ": x=" + detects[i].x + ", y=" + detects[i].y);
  426.         detects[i].clickRandom();
  427.         sleep(300);
  428.     }
  429.     printl("✓ 所有目标点击完成");
  430. }

  431. // 辅助函数3:获取目标中心点
  432. function getTargetCenter(detect) {
  433.     printl("【辅助函数】getTargetCenter - 获取目标中心点");
  434.     if (detect == null) {
  435.         return null;
  436.     }
  437.     var center = {
  438.         x: detect.x + detect.width / 2,
  439.         y: detect.y + detect.height / 2
  440.     };
  441.     printl("目标中心点: x=" + center.x + ", y=" + center.y);
  442.     return center;
  443. }

  444. // 辅助函数4:判断目标是否在指定区域内
  445. function isTargetInRegion(detect, region) {
  446.     printl("【辅助函数】isTargetInRegion - 判断目标是否在指定区域内");
  447.     if (detect == null) {
  448.         return false;
  449.     }
  450.     var centerX = detect.x + detect.width / 2;
  451.     var centerY = detect.y + detect.height / 2;
  452.     var inRegion = centerX >= region[0] && centerX <= region[2] &&
  453.                    centerY >= region[1] && centerY <= region[3];
  454.     printl("目标中心点(" + centerX + ", " + centerY + ") " +
  455.            (inRegion ? "在" : "不在") + "区域内");
  456.     return inRegion;
  457. }

  458. // 辅助函数5:查找并点击最接近指定坐标的目标
  459. function findAndClickNearestTarget(cvFile, targetX, targetY) {
  460.     printl("【辅助函数】findAndClickNearestTarget - 查找并点击最接近指定坐标的目标");
  461.     try {
  462.         var detects = opencv.findImagesEx(cvFile);
  463.         if (detects == null || detects.length === 0) {
  464.             printl("未找到目标");
  465.             return false;
  466.         }
  467.         
  468.         var nearestIndex = 0;
  469.         var minDistance = Number.MAX_VALUE;
  470.         
  471.         for (var i = 0; i < detects.length; i++) {
  472.             var centerX = detects[i].x + detects[i].width / 2;
  473.             var centerY = detects[i].y + detects[i].height / 2;
  474.             var distance = Math.sqrt(Math.pow(centerX - targetX, 2) + Math.pow(centerY - targetY, 2));
  475.             
  476.             if (distance < minDistance) {
  477.                 minDistance = distance;
  478.                 nearestIndex = i;
  479.             }
  480.         }
  481.         
  482.         printl("找到最近的目标,距离: " + minDistance.toFixed(2));
  483.         detects[nearestIndex].clickRandom();
  484.         return true;
  485.     } catch (e) {
  486.         printl("错误: " + e);
  487.         return false;
  488.     }
  489. }

  490. // 辅助函数6:查找并点击最相似的目标
  491. function findAndClickBestMatch(cvFile, threshold) {
  492.     printl("【辅助函数】findAndClickBestMatch - 查找并点击最相似的目标");
  493.     try {
  494.         var detects = opencv.findImagesEx(cvFile);
  495.         if (detects == null || detects.length === 0) {
  496.             printl("未找到目标");
  497.             return false;
  498.         }
  499.         
  500.         printl("找到 " + detects.length + " 个目标");
  501.         printl("点击第一个目标(通常是最相似的)");
  502.         detects[0].clickRandom();
  503.         return true;
  504.     } catch (e) {
  505.         printl("错误: " + e);
  506.         return false;
  507.     }
  508. }

  509. // 辅助函数7:等待目标出现并点击
  510. function waitForTargetAndClick(cvFile, maxWaitTime) {
  511.     printl("【辅助函数】waitForTargetAndClick - 等待目标出现并点击");
  512.     printl("最大等待时间: " + maxWaitTime + "毫秒");
  513.    
  514.     var startTime = Date.now();
  515.     while (Date.now() - startTime < maxWaitTime) {
  516.         try {
  517.             var detects = opencv.findImagesEx(cvFile);
  518.             if (detects != null && detects.length > 0) {
  519.                 printl("✓ 目标已出现,点击");
  520.                 detects[0].clickRandom();
  521.                 return true;
  522.             }
  523.             sleep(500);
  524.         } catch (e) {
  525.             printl("查找出错: " + e);
  526.         }
  527.     }
  528.    
  529.     printl("✗ 超时,目标未出现");
  530.     return false;
  531. }

  532. // ========== 方法使用建议 ==========

  533. function printUsageTips() {
  534.     printl("========== 找图方法使用建议 ==========");
  535.     printl("");
  536.     printl("1. 方法选择建议:");
  537.     printl("   - 单图找图 → opencv.findImagesEx(最简单直接)");
  538.     printl("   - 多图查找 → opencv.findImages(支持超时和质量设置)");
  539.     printl("   - 自定义匹配 → opencv.templateMatch(最灵活)");
  540.     printl("");
  541.     printl("2. 性能优化建议:");
  542.     printl("   - 提高相似度阈值(如0.8-0.9)可减少误匹配");
  543.     printl("   - 使用区域参数限定查找范围可提高速度");
  544.     printl("   - 设置合理的超时时间避免长时间等待");
  545.     printl("   - 根据需求选择合适的截图质量(0/1/2)");
  546.     printl("");
  547.     printl("3. 资源管理建议:");
  548.     printl("   - 使用templateMatch时记得调用mat.close()和image.close()");
  549.     printl("   - 避免在循环中频繁截图,可使用OCR.lockOCR()锁定缓存");
  550.     printl("");
  551.     printl("4. 实战技巧:");
  552.     printl("   - 使用safeFindImage()实现带重试的找图");
  553.     printl("   - 使用clickAllTargets()批量点击所有目标");
  554.     printl("   - 使用waitForTargetAndClick()等待目标出现");
  555.     printl("   - 使用findAndClickNearestTarget()点击最近的目标");
  556.     printl("");
  557.     printl("========== 使用建议结束 ==========");
  558. }

  559. // 运行主函数
  560. main();

  561. // 打印使用建议
  562. printUsageTips();
复制代码







欢迎光临 自动发帖软件 (http://www.fatiegongju.com/) Powered by Discuz! X3.2