|
AIWROKÕæÕýÄܰü´òÌìϵÄÈýÖÖ²éÕÒËæ»ú·½·¨// ͼƬÎÄ×Öʶ±ðÏà¹Ø·½·¨
// ʹÓÃopencvµÄOCR½øÐÐÎÄ×Öʶ±ð²¢Ëæ»úµã»÷ function ÕÒ×ÖËæ»úµã»÷() { var ocr = opencv.OCREx('½ñÈÕÍ·Ìõ¼«ËÙ°æ8.cv'); if(!ocr) return; var target = ocr.findIncludeText('½ñÈÕÍ·Ìõ¼«ËÙ°æ'); if(target) { var rect = target.rect; var screenWidth = screen.getScreenWidth(); var screenHeight = screen.getScreenHeight(); // »ù´¡ÖÐÐÄµã¼ÆËã var centerX = (rect.left + rect.right)/2 * screenWidth; var centerY = (rect.top + rect.bottom)/2 * screenHeight; // ÔÚÄ¿±êÇøÓòÄÚÌí¼ÓËæ»úÆ«ÒÆ(·¶Î§50%ÇøÓò´óС) var randomRangeX = (rect.right - rect.left) * screenWidth * 0.5; var randomRangeY = (rect.bottom - rect.top) * screenHeight * 0.5; // ¼ÆËã×îÖÕËæ»úµã»÷λÖà var clickX = Math.round(centerX + (Math.random() - 0.5) * randomRangeX); var clickY = Math.round(centerY + (Math.random() - 0.5) * randomRangeY); auto.clickPoint(clickX, clickY); console.log('Ëæ»úµã»÷×ø±ê:', clickX, clickY); } else { console.log('δÕÒµ½Ä¿±ê'); } }
// ʾÀý ÕÒ×ÖËæ»úµã»÷(); // ¸Ã·½·¨Ê¹ÓÃopencvµÄOCR¹¦ÄÜÔÚÖ¸¶¨µÄͼÏñÎļþÖвéÕÒ°üº¬Ìض¨ÎÄ×ÖµÄÄ¿±ê£¬²¢ÔÚÆäÇøÓòÄÚËæ»úµã»÷¡£
// ʹÓÃTomatoOCR½øÐÐÎÄ×Öʶ±ð²¢µã»÷ function tomatoOcrClickText(target) { // OCR³õʼ»¯ rhino.loadDex('TomatoOCR.apk'); importClass(com.tomato.ocr.aw.OCRApi); var ocr = new OCRApi(); ocr.setContext(context, "ch-3.0"); ocr.setLicense("gAAAAABmeECYAAAAAGhay4AivnvqQn93I-ul15o53Bz_Xx6T_TlyeioUnjwgf4NuxPykjcq1syE8bN6XqW44SmBoKEcqLZaAVIFUkB8"); // OCRÎÄ×Ö¾«È·µã»÷·½·¨ function clickText(ocrResult, target) { var items = JSON.parse(ocrResult); for (var i = 0; i < items.length; i++) { var item = items; if (item.words.indexOf(target) >= 0) { var loc = item.location; var x1 = loc[0][0], y1 = loc[0][1]; var x2 = loc[1][0], y2 = loc[2][1]; auto.clickPoint(Math.round((x1 + x2) / 2), Math.round((y1 + y2) / 2)); console.log("Òѵã»÷" + target + "£¬×ø±ê: " + Math.round((x1 + x2) / 2) + "," + Math.round((y1 + y2) / 2)); return true; } } console.log("δÕÒµ½ÎÄ×Ö: " + target); return false; }
// ʹÓÃʾÀý var result = ocr.ocrBase64(screen.screenShotFull().toBase64(), 3); console.log("ʶ±ð½á¹û: " + result); clickText(result, target); }
// ʾÀý tomatoOcrClickText("À×µçÓÎÏ·ÖÐÐÄ"); // ¸Ã·½·¨Ê¹ÓÃTomatoOCR½øÐÐÎÄ×Öʶ±ð£¬²¢ÔÚÕÒµ½°üº¬Ìض¨ÎÄ×ÖµÄÄ¿±êºóµã»÷¸ÃÄ¿±êµÄÖÐÐÄλÖá£
// ʹÓÃMLKitOCR½øÐÐÎÄ×Öʶ±ð²¢Ëæ»úµã»÷ function mlKitOcrClickText(target) { // ½ØÍ¼²¢OCRʶ±ð var img = screen.screenShotFull(); var ocrRes = img.MLKitOcr('zh'); console.log(ocrRes);
// ²éÕÒÄ¿±ê var dect = ocrRes.findIncludeText(target); if (dect != null) { console.log('ÕÒµ½Ä¿±ê'); // »ñȡĿ±êÇøÓò var rect = dect.rect; // ¼ÆËãÖÐÐĵã×ø±ê£¨rect×ø±êÒѾÊÇÏñËØÖµ£© var centerX = (rect.left + rect.right) / 2; var centerY = (rect.top + rect.bottom) / 2; // ÔÚÄ¿±êÇøÓòÄÚÌí¼ÓËæ»úÆ«ÒÆ(·¶Î§50%) var randomX = (Math.random() - 0.5) * (rect.right - rect.left) * 0.5; var randomY = (Math.random() - 0.5) * (rect.bottom - rect.top) * 0.5; // Ö´ÐÐËæ»úµã»÷ auto.clickPoint( Math.round(centerX + randomX), Math.round(centerY + randomY) ); console.log('Ëæ»úµã»÷×ø±ê:', Math.round(centerX + randomX), Math.round(centerY + randomY)); } else { console.log('δÕÒµ½Ä¿±ê'); } }
// ʾÀý mlKitOcrClickText("СÓÎÏ·"); // ¸Ã·½·¨Ê¹ÓÃMLKitOCR½øÐÐÎÄ×Öʶ±ð£¬²¢ÔÚÕÒµ½°üº¬Ìض¨ÎÄ×ÖµÄÄ¿±êºóÔÚÆäÇøÓòÄÚËæ»úµã»÷¡£
// ͼƬ²éÕÒÏà¹Ø·½·¨
// ʹÓÃopencv²éÕÒͼÏñ²¢Ëæ»úµã»÷ function findImageAndClick(imagePath) { var detects = opencv.findImagesEx(imagePath); if (detects != null) { console.log(detects); // »ñÈ¡»ñÈ¡½á¹ûµÄ¾ØÐÎÇøÓò var rectStr = detects[0].getRect().toString(); var coords = rectStr.match(/[\d\.]+/g); // ÌáÈ¡×ø±êÊý×Ö if (coords && coords.length >= 4) { var x1 = parseFloat(coords[0]); var y1 = parseFloat(coords[1]); var x2 = parseFloat(coords[2]); var y2 = parseFloat(coords[3]); // ¼ÆËãËæ»ú×ø±ê var randomX = x1 + Math.random() * (x2 - x1); var randomY = y1 + Math.random() * (y2 - y1); // Ö´ÐÐËæ»úµã»÷ //hid.click(randomX, randomY); //ÎÞ°Ëæ»úµã»÷ auto.clickPercent(randomX, randomY); console.log('Ëæ»úµã»÷×ø±ê:', randomX, randomY); } else { // Èç¹ûûÓÐ×ø±êÐÅÏ¢£¬Ö´ÐÐĬÈϵã»÷ auto.clickPercent(0, 0); console.log('δ»ñÈ¡µ½×ø±êÐÅÏ¢£¬µã»÷ĬÈÏλÖÃ'); } } else { console.log('δÕÒµ½Í¼Ïñ'); } }
// ʾÀý findImageAndClick('ͼɫ489633.cv'); // ¸Ã·½·¨Ê¹ÓÃopencv²éÕÒÖ¸¶¨Â·¾¶µÄͼÏñÎļþ£¬²¢ÔÚÆäÇøÓòÄÚËæ»úµã»÷¡£
// ʹÓýڵã²éÕÒ²¢Ëæ»úµã»÷ function nodeSearchAndClickText(target) { var nodesObj = auto.nodeSearch(3000).text(target);
if (nodesObj != '') { var nodeObj = nodesObj.getNode(0); console.log(nodeObj); // ½âÎö½ÚµãboundsÊôÐÔ "¾ØÐÎÇøÓò:left,top,right,bottom" var boundsStr = nodeObj.bounds.toString(); var coords = boundsStr.match(/[\d.]+/g); var left = parseFloat(coords[0]); var top = parseFloat(coords[1]); var right = parseFloat(coords[2]); var bottom = parseFloat(coords[3]); // ¼ÆËãÖÐÐĵãºÍËæ»úÆ«ÒÆ(·¶Î§30%) var centerX = (left + right) / 2; var centerY = (top + bottom) / 2; var randomX = (Math.random() - 0.5) * (right - left) * 0.3; var randomY = (Math.random() - 0.5) * (bottom - top) * 0.3; // ¼ÆËã×îÖÕµã»÷λÖà var x = Math.round(centerX + randomX); var y = Math.round(centerY + randomY); console.log('Ëæ»úµã»÷×ø±ê:', x, y); auto.clickPoint(x, y); console.log('µã»÷Íê³É ×ø±ê:', x, y); } else { console.log('δÕÒµ½½Úµã'); } }
// ʾÀý nodeSearchAndClickText("СÓÎÏ·"); // ¸Ã·½·¨Ê¹Óýڵã²éÕÒ¹¦ÄÜÔÚµ±Ç°½çÃæÖвéÕÒ°üº¬Ìض¨ÎÄ×ֵĽڵ㣬²¢ÔÚÆäÇøÓòÄÚËæ»úµã»÷¡£
|
|