|
OpenCVͼÏñ´¦ÀíÓëʶ±ðAIWROKÈí¼þÊ®´ó¹¦Äܼ°ÆäʵÏÖ·½·¨..
- //µÚÒ»¸ö£¬opencv.checkColorsEx_¾«¼òOCRʶ±ð
- function safeOCRProcess() {
- // µÚÒ»²½£ºÏÈÑé֤Ŀ±êÇøÓòÊÇ·ñ´æÔÚ
- if (!opencv.checkColorsEx('¶àµã±ÈÉ«.cv')) {
- printl("»ù´¡ÇøÓòÑé֤δͨ¹ý");
- return;
- }
- // µÚ¶þ²½£ºÖ´ÐÐOCR²¢ÑéÖ¤·µ»ØÀàÐÍ
- var ocrResult = opencv.OCREx('¶àµã±ÈÉ«.cv');
-
- // Ë«ÖØÀàÐÍÑéÖ¤£¨Ó¦¶Ô¿ÉÄÜ·µ»ØbooleanµÄÇé¿ö£©
- if (!ocrResult || typeof ocrResult !== 'object' || typeof ocrResult.findIncludeText !== 'function') {
- printl("OCR½á¹ûÒì³£");
- return;
- }
- // µÚÈý²½£º°²È«´¦Àíʶ±ð½á¹û
- try {
- var resultText = ocrResult.findIncludeText('·ä');
- if (resultText) {
- printl("ʶ±ð³É¹¦£º" + resultText);
- // ÕâÀï¿ÉÒÔÌí¼Óµã»÷µÈºóÐø²Ù×÷
- } else {
- printl("Îı¾Î´ÕÒµ½");
- }
- } catch (e) {
- printl("½á¹û´¦ÀíÒì³££º" + e.message);
- }
- }
- // Ö´Ðд¦ÀíÁ÷³Ì
- safeOCRProcess();
- //µÚ¶þ¸ö£¬opencv.checkColorsEx_¾«¼òÇøÓòÕÒͼ
- var seek = opencv.findImagesEx('ÇøÓòÕÒͼ.cv');
- if (seek) {
- seek[0].click(); //µã»÷
- } else {
- printl("δÕÒµ½ÁË");
- }
- var seek = opencv.findImagesEx('ÇøÓòÕÒͼ.cv');
- if (seek) {
- var place = seek[0].getRealRect();
- var x = place.getCenterX();
- var y = place.getCenterY();
- printl(x+","+y)
- } else {
- printl("δÕÒµ½ÁË");
- }
- //µÚÈý¸ö£¬opencv.checkColorsEx_¾«¼ò¶àµãÕÒÉ«
- var seek = opencv.checkColorsEx('¶àµã±ÈÉ«.cv');
- if (seek) {
- printl("ÕÒµ½ÁË");
- } else {
- printl("δÕÒµ½ÁË");
- }
- if (opencv.checkColorsEx('¶àµã±ÈÉ«.cv')) {
- printl("ÕÒµ½ÁË");
- } else {
- printl("δÕÒµ½ÁË");
- }
- //µÚËĸö£¬opencv.checkColorsEx_¾«¼ò¶àµã±ÈÉ«
- var seek = opencv.checkColorsEx('¶àµã±ÈÉ«.cv');
- if (seek) {
- printl("ÕÒµ½ÁË");
- } else {
- printl("δÕÒµ½ÁË");
- }
- if (opencv.checkColorsEx('¶àµã±ÈÉ«.cv')) {
- printl("ÕÒµ½ÁË");
- } else {
- printl("δÕÒµ½ÁË");
- }
- //µÚÎå¸ö£¬opencv.checkColors_OCRʶ±ð
- var mat=screen.screenShot(720,1280,100).getMat();
- var seek = opencv.OCR(mat, 'СÖíÖí.ocr', 0.95,0);
- if (seek) {
- printl(ocr1.getAllString());
- } else {
- printl("δÕÒµ½ÁË");
- }
- var mat=screen.screenShot(720,1280,100).getMat();
- var seek = opencv.OCR(mat, 'СÖíÖí.ocr', 0.95,0);
- if (seek) {
- printl(seek.findIncludeText('СÖíÖí'))
- } else {
- printl("δÕÒµ½ÁË");
- }
- //µÚÁù¸ö£¬opencv.checkColors_¶àµã±ÈÉ«
- var mat=screen.screenShot(720,1280,100).getMat();
- var seek = opencv.checkColors(mat, ['351,452,#553E38', '368,449,#816D78'], 2, 4, 0.95);
- if (seek) {
- printl("ÕÒµ½ÁË");
- } else {
- printl("δÕÒµ½ÁË");
- }
- var mat=screen.screenShot(720,1280,100).getMat();
- if (opencv.checkColors(mat, ['351,452,#553E38', '368,449,#816D78'], 2, 4, 0.95)) {
- printl("ÕÒµ½ÁË");
- } else {
- printl("δÕÒµ½ÁË");
- }
- //µÚÆ߸ö£¬opencv.findMultiColor_¶àµãÕÒÉ«
- var mat=screen.screenShot(720,1280,100).getMat();
- var seek = opencv.findMultiColor(mat,'607,425,#264878',['601,413,#1E4276','597,428,#1E4276','591,429,#F8FBFF'],2,5,[0.80040,0.30889,0.87549,0.35667],0.95);
- if (seek) {
- seek[0].click(); //µã»÷
- } else {
- printl("δÕÒµ½ÁË");
- }
- var mat=screen.screenShot(720,1280,100).getMat();
- var seek = opencv.findMultiColor(mat,'607,425,#264878',['601,413,#1E4276','597,428,#1E4276','591,429,#F8FBFF'],2,5,[0.80040,0.30889,0.87549,0.35667],0.95);
- if (seek) {
- var place = seek[0].getRealRect();
- var x = place.getCenterX();
- var y = place.getCenterY();
- printl(x+","+y)
- } else {
- printl("δÕÒµ½ÁË");
- }
- //µÚ°Ë¸ö£¬opencv.templateMatch_ÇøÓòÕÒͼ
- var mat=screen.screenShot(720,1280,100).getMat();
- var seek = opencv.templateMatch(mat, ["ͼƬ1","ͼƬ2"],0.9, [0.03360,0.14222,0.08893,0.17667],true);
- if (seek) {
- seek[0].click(); //µã»÷
- } else {
- printl("δÕÒµ½ÁË");
- }
- var mat=screen.screenShot(720,1280,100).getMat();
- var seek = opencv.templateMatch(mat, ["ͼƬ1","ͼƬ2"],0.9, [0.03360,0.14222,0.08893,0.17667],true);
- if (seek) {
- var place = seek[0].getRealRect();
- var x = place.getCenterX();
- var y = place.getCenterY();
- printl(x+","+y)
- } else {
- printl("δÕÒµ½ÁË");
- }
- //µÚ¾Å¸ö£¬opencv.HSVÑÕÉ«±ä»»
- // ½Øͼ²¢»ñÈ¡Mat¶ÔÏó
- var mat = screen.screenShot(720, 1280, 100).getMat();
- // ʹÓÃHSV·½·¨×ª»»
- var hsvMat = opencv.HSV(mat, 0, 0, 0);
- printl("HSV ת»»Íê³É£¡");
- printl(hsvMat);
- //µÚÊ®¸ö£¬opencv.bitmapToMat(bmp)bitmapͼתmat
- importPackage(org.opencv.core);
- importPackage(org.opencv.imgproc);
- importPackage(org.opencv.android);
- importClass(android.graphics.Bitmap);
- function screenshotAndBinarize(minThreshold, maxThreshold) {
- // »ñÈ¡ÆÁÄ»½Øͼ
- var bitmap = screen.screenShot(640, 960, 100).getBitmap();
- // ½« Bitmap ת»»Îª Mat
- var mat = new Mat();
- Utils.bitmapToMat(bitmap, mat);
- // ´´½¨Ò»¸öÓÃÓÚ´æ´¢¶þÖµ»¯½á¹ûµÄ Mat
- var binaryMat = new Mat();
-
- // Ó¦ÓÃãÐÖµ´¦Àí
- Imgproc.threshold(mat, binaryMat, minThreshold, maxThreshold, Imgproc.THRESH_BINARY);
- printl(binaryMat);
- // ½«¶þÖµ»¯µÄ Mat ת»»»Ø Bitmap
- var binaryBitmap = Bitmap.createBitmap(binaryMat.cols(), binaryMat.rows(), Bitmap.Config.ARGB_8888);
- Utils.matToBitmap(binaryMat, binaryBitmap);
- return binaryBitmap;
- }
- // µ÷Óô¦Àíº¯Êý
- var resultBitmap = screenshotAndBinarize(50, 150);
- printl(resultBitmap);
¸´ÖÆ´úÂë
1. ¾«¼òOCRʶ±ð (safeOCRProcess º¯Êý)- ²½Öè1£ºÊ¹Óà opencv.checkColorsEx ¼ì²éÄ¿±êÇøÓòÊÇ·ñ´æÔÚ¡£Èç¹û²»´æÔÚ£¬Êä³öÌáʾ²¢·µ»Ø¡£
- ²½Öè2£ºÊ¹Óà opencv.OCREx ½øÐÐOCRʶ±ð£¬²¢¶Ô·µ»Ø½á¹û½øÐÐÀàÐÍÑéÖ¤£¬È·±£½á¹ûÊǶÔÏóÇÒ°üº¬ findIncludeText ·½·¨¡£
- ²½Öè3£º°²È«´¦ÀíOCR½á¹û£¬²éÕÒ°üº¬Ìض¨Îı¾£¨Èç¡°·ä¡±£©µÄÄÚÈÝ£¬²¢¸ù¾Ý½á¹û½øÐкóÐø²Ù×÷»òÊä³öÌáʾ¡£
2. ¾«¼òÇøÓòÕÒͼ- ʹÓà opencv.findImagesEx ÔÚÖ¸¶¨ÇøÓò²éÕÒͼÏñ¡£Èç¹ûÕÒµ½£¬µã»÷¸ÃͼÏñ»òÊä³öÆäÖÐÐÄ×ø±ê£»·ñÔòÊä³ö¡°Î´ÕÒµ½¡±¡£
3. ¾«¼ò¶àµãÕÒÉ«- ʹÓà opencv.checkColorsEx ¼ì²é¶àµãÑÕÉ«ÊÇ·ñ·ûºÏÔ¤ÆÚ¡£Èç¹û·ûºÏ£¬Êä³ö¡°ÕÒµ½ÁË¡±£»·ñÔòÊä³ö¡°Î´ÕÒµ½¡±¡£
4. ¾«¼ò¶àµã±ÈÉ«- ÓëµÚ3²¿·ÖÀàËÆ£¬Ê¹Óà opencv.checkColorsEx ½øÐжàµã±ÈÉ«£¬Êä³ö½á¹û¡£
5. OCRʶ±ð- ʹÓà opencv.OCR ¶ÔÆÁÄ»½Øͼ½øÐÐOCRʶ±ð¡£Èç¹ûʶ±ð³É¹¦£¬Êä³öËùÓÐ×Ö·û´®»ò²éÕÒ°üº¬Ìض¨Îı¾£¨È硰СÖíÖí¡±£©µÄÄÚÈÝ£»·ñÔòÊä³ö¡°Î´ÕÒµ½¡±¡£
6. ¶àµã±ÈÉ«- ʹÓà opencv.checkColors ¼ì²éÆÁÄ»½ØͼÖеĶàµãÑÕÉ«ÊÇ·ñ·ûºÏÔ¤ÆÚ¡£Èç¹û·ûºÏ£¬Êä³ö¡°ÕÒµ½ÁË¡±£»·ñÔòÊä³ö¡°Î´ÕÒµ½¡±¡£
7. ¶àµãÕÒÉ«- ʹÓà opencv.findMultiColor ÔÚÆÁÄ»½ØͼÖвéÕÒÌض¨ÑÕÉ«×éºÏ¡£Èç¹ûÕÒµ½£¬µã»÷¸ÃλÖûòÊä³öÆäÖÐÐÄ×ø±ê£»·ñÔòÊä³ö¡°Î´ÕÒµ½¡±¡£
8. ÇøÓòÕÒͼ- ʹÓà opencv.templateMatch ÔÚÆÁÄ»½ØͼÖвéÕÒÖ¸¶¨Í¼Ïñ¡£Èç¹ûÕÒµ½£¬µã»÷¸ÃͼÏñ»òÊä³öÆäÖÐÐÄ×ø±ê£»·ñÔòÊä³ö¡°Î´ÕÒµ½¡±¡£
9. HSVÑÕÉ«±ä»»- ʹÓà opencv.HSV ·½·¨½«ÆÁÄ»½Øͼת»»ÎªHSVÑÕÉ«¿Õ¼ä£¬²¢Êä³öת»»ºóµÄMat¶ÔÏó¡£
10. BitmapͼתMat- ʹÓà Utils.bitmapToMat ½«BitmapͼÏñת»»ÎªMat¶ÔÏó£¬È»ºó½øÐжþÖµ»¯´¦Àí£¬²¢½«½á¹ûת»»»ØBitmapÊä³ö¡£
|
|
|