|
|
AIWROKÈí¼þ°²×¿×ܽáͼÏñÊÓ¾õ´¦Àí[opencv]·½·¨
·½·¨1£ºgetcolorNum£º»ñÈ¡ÇøÓòÑÕÉ«ÊýÁ¿ [size=1em]
Àà±ð[size=1em]
| ÄÚÈÝ[size=1em]
| ¹¦ÄÜ˵Ã÷[size=1em]
| ´ÓͼÏñÖбéÀú²éÕÒËùÓеÄ×ø±êºÍ¶ÔÓ¦µÄÑÕÉ«ÊÇ·ñ·ûºÏ²¢·µ»ØÕÒµ½ÑÕÉ«µÄÊýÁ¿[size=1em]
| º¯Êý¶¨Òå[size=1em]
| int getcolorNum(Mat arg0, String[] arg1, double arg2, double[] arg3)[size=1em]
| ·µ»ØÖµ[size=1em]
| int[size=1em]
| ²ÎÊý[size=1em]
| -Mat arg0: mat ¸ñʽͼƬ-String[] arg1: ÑÕÉ«Êý×飬ʾÀý['10,9,#123233','9,9,#434323']-double arg2: ÏàËÆ¶È-double[] arg3: ÇøÓò±ÈÀý£¬Ê¾Àý[0,0,1,1][size=1em]
| °¸Àý[size=1em]
| var mat=screen.screenShot(432,768,100).getMat(); var num=opencv.getcolorNum(mat,['#AE5454','#AE5454'],0.90,[0.0799,0.3008,0.9167,0.8242]); printl(num) [size=1em]
| ·½·¨2£ºgradientProcessing£º¼ÆËãÌÝ¶È [size=1em]
Àà±ð[size=1em]
| ÄÚÈÝ[size=1em]
| ¹¦ÄÜ˵Ã÷[size=1em]
| ¼ÆËãÌݶÈ[size=1em]
| º¯Êý¶¨Òå[size=1em]
| Mat gradientProcessing(Mat arg0)[size=1em]
| ·µ»ØÖµ[size=1em]
| Mat[size=1em]
| ²ÎÊý[size=1em]
| Mat arg0[size=1em]
£ºÊäÈëµÄ mat ¸ñʽͼƬ[size=1em]
| °¸Àý[size=1em]
| // Ìݶȴ¦ÀíʾÀýº¯Êýfunction gradientProcessingExample() {printl("¿ªÊ¼Ö´ÐÐÌݶȴ¦ÀíʾÀý");// 1. ½ØÈ¡ÆÁÄ»ÇøÓò²¢×ª»»ÎªMat¸ñʽ// ʹÓÃ432x768·Ö±æÂÊ£¬100ÖÊÁ¿µÄ½ØÍ¼var mat = screen.screenShot(432, 768, 100).getMat();// ÑéÖ¤Mat¶ÔÏóÊÇ·ñ³É¹¦´´½¨printl("½ØÍ¼³É¹¦£¬Mat³ß´ç: " + mat.width() + "x" + mat.height());// 2. µ÷ÓÃgradientProcessing·½·¨¼ÆËãÌݶÈ// ¸ù¾ÝAPIÎĵµ£¬¸Ã·½·¨½ÓÊÕÒ»¸öMat²ÎÊý²¢·µ»Ø´¦ÀíºóµÄMatvar gradientMat = null;// Ö´ÐÐÌݶȴ¦ÀígradientMat = opencv.gradientProcessing(mat);// Êä³ö´¦Àí½á¹ûprintl("Ìݶȴ¦ÀíÍê³É");printl("ÌݶÈͼÏñ³ß´ç: " + gradientMat.width() + "x" + gradientMat.height());// ÊÍ·ÅÔʼͼÏñ×ÊÔ´mat = null;// 3. ´¦Àí½á¹ûÊä³ö// Êä³öÌݶÈͼÏñÐÅÏ¢printl("ÌݶÈͼÏñÀàÐÍ: " + gradientMat.type());// ÊÍ·ÅÌݶÈͼÏñ×ÊÔ´gradientMat = null;printl("Ìݶȴ¦ÀíʾÀýÖ´ÐÐÍê±Ï");}// Ö÷º¯Êý£ºÔËÐÐʾÀýfunction main() {printl("=== Ìݶȴ¦Àí¹¦ÄÜʾÀý ===");// Ö´ÐÐÌݶȴ¦ÀíʾÀýgradientProcessingExample();printl("=== ʾÀýÖ´ÐÐÍê±Ï ===");}// Á¢¼´Ö´ÐÐÖ÷º¯Êýmain(); [size=1em]
| ·½·¨3£ºinvertColor£ºÑÕÉ«·×ª [size=1em]
Àà±ð[size=1em]
| ÄÚÈÝ[size=1em]
| ¹¦ÄÜ˵Ã÷[size=1em]
| ÑÕÉ«·×ª[size=1em]
| º¯Êý¶¨Òå[size=1em]
| Mat invertColor(Mat arg0)[size=1em]
| ·µ»ØÖµ[size=1em]
| Mat[size=1em]
| ²ÎÊý[size=1em]
| Mat arg0[size=1em]
£ºÊäÈëµÄ mat ¸ñʽͼƬ[size=1em]
| °¸Àý[size=1em]
| let mat:Mat=ͼɫ973264();printl(mat);function ͼɫ973264(){//½ØÆÁ²¢×ª³Émat¸ñʽvar mat=screen.screenShot(900,1600,100).getMat();//ÑÕÉ«·×ªopencv.invertColor(mat)return mat;} [size=1em]
| ·½·¨4£ºopenImg£º¿ªÔËËã [size=1em]
Àà±ð[size=1em]
| ÄÚÈÝ[size=1em]
| ¹¦ÄÜ˵Ã÷[size=1em]
| ¿ªÔËËã[size=1em]
| º¯Êý¶¨Òå[size=1em]
| Mat openImg(Mat arg0, int arg1)[size=1em]
| ·µ»ØÖµ[size=1em]
| Mat[size=1em]
| ²ÎÊý[size=1em]
| - Mat arg0[size=1em]
£ºÊäÈëͼƬ- int arg1[size=1em]
£ººË´óС[size=1em]
| °¸Àý[size=1em]
| // ¿ªÔËË㹦ÄÜʾÀý// ¸ÃʾÀýÑÝʾÈçºÎʹÓÃOpenCVµÄopenImgº¯Êý½øÐÐͼÏñ¿ªÔËËã²Ù×÷/** * ¿ªÔËË㺯Êý * ¹¦ÄÜ£ºÖ´ÐÐͼÏñ¿ªÔËËã²Ù×÷£¨Ïȸ¯Ê´ºóÅòÕÍ£© * ²ÎÊý˵Ã÷£º * - Mat arg0: ÊäÈëͼÏñ¾ØÕó * - int arg1: ºË´óС£¨½á¹¹ÔªËØ´óС£©- ×¢Ò⣺ºË´óС²»ÄÜΪ0 * ·µ»ØÖµ£º¿ªÔËËã´¦ÀíºóµÄMatͼÏñ * * ¿ªÔËËãÔÀí£º * ¿ªÔËËã = ¸¯Ê´ + ÅòÕÍ * Ö÷ÒªÓÃÓÚ£º * 1. È¥³ýСµÄÔëµãºÍСÎïÌå * 2. ·ÖÀëÎïÌå * 3. ƽ»¬±ß½ç * 4. ±£ÁôÎïÌåµÄÕûÌåÐÎ×´ºÍ´óС */// ʾÀý1£º»ù±¾¿ªÔËËãʾÀý - ¾¹ý²âÊÔ¿ÉÕý³£¹¤×÷function basicOpenImgExample() {printl("¿ªÊ¼»ù±¾¿ªÔËËãʾÀý");try {// ½ØÈ¡ÆÁĻͼÏñ²¢×ª»»ÎªMat¸ñʽvar mat = screen.screenShot(432, 768, 100).getMat();printl("½ØÆÁ³É¹¦£¬ÔʼͼÏñ³ß´ç: " + mat.width() + "x" + mat.height());// µ÷ÓÿªÔËË㺯Êý£¬ºË´óСΪ3£¨ÓÐЧ²ÎÊý£©var openedMat = opencv.openImg(mat, 3);printl("¿ªÔËËãÍê³É£¬ºË´óС: 3");// Êä³ö½á¹ûÐÅÏ¢printl("¿ªÔËËã½á¹ûMat³ß´ç: " + openedMat.width() + "x" + openedMat.height());printl(openedMat);// ÊÍ·Å×ÊÔ´mat = null;if (openedMat != null) {openedMat = null;}printl("»ù±¾¿ªÔËËãʾÀýÍê³É");returntrue;} catch (e) {printl("Ö´ÐпªÔËËãʱ·¢Éú´íÎó: " + String(e));returnfalse;}}// ʾÀý2£º¼ò»¯µÄºË´óС¶Ô±ÈʾÀý£¨±ÜÃâʹÓú˴óС0£©function simpleKernelCompareExample() {printl("¿ªÊ¼¼ò»¯µÄºË´óС¶Ô±ÈʾÀý");try {// 1. »ñÈ¡ÆÁĻͼÏñvar originalMat = screen.screenShot(432, 768, 100).getMat();printl("ÔʼͼÏñ³ß´ç: " + originalMat.width() + "x" + originalMat.height());// 2. ʹÓÃÓÐЧºË´óС½øÐпªÔËË㣨±ÜÃâʹÓÃ0£©var kernelSizes = [1, 3, 5];for (var i = 0; i < kernelSizes.length; i++) {var kernelSize = kernelSizes;printl("ÕýÔÚ²âÊԺ˴óС: " + kernelSize);try {var openedMat = opencv.openImg(originalMat, kernelSize);printl("ºË´óС " + kernelSize + " µÄ¿ªÔËËãÍê³É");printl(openedMat);// ÊÍ·Å×ÊÔ´openedMat = null;} catch (e) {printl("ºË´óС " + kernelSize + " ´¦Àíʧ°Ü: " + String(e));}}// ÊÍ·Å×ÊÔ´originalMat = null;printl("¼ò»¯µÄºË´óС¶Ô±ÈʾÀýÍê³É");returntrue;} catch (e) {printl("Ö´ÐпªÔËËã¶Ô±Èʱ·¢Éú´íÎó: " + String(e));returnfalse;}}// ·â×°º¯ÊýʽʾÀý£¨¼ò½à°æ£©- ÐÞ¸´°æfunction ¿ªÔËËã´¦Àí(mat, kernelSize) {// ÑéÖ¤²ÎÊýÓÐЧÐÔif (kernelSize <= 0) {printl("¾¯¸æ£ººË´óС±ØÐë´óÓÚ0£¬ÒÑ×Ô¶¯µ÷ÕûΪ1");kernelSize = 1;}// Ö´ÐпªÔËËãreturn opencv.openImg(mat, kernelSize);}// ʹÓ÷â×°º¯ÊýµÄʾÀý - ÐÞ¸´°æfunction encapsulatedOpenImgExample() {printl("¿ªÊ¼Ê¹Ó÷â×°º¯ÊýµÄ¿ªÔËËãʾÀý");try {// »ñȡͼÏñvar mat = screen.screenShot(432, 768, 100).getMat();// ʹÓÃÓÐЧºË´óС3´úÌæ0var resultMat = ¿ªÔËËã´¦Àí(mat, 3);printl("·â×°º¯Êý¿ªÔËËã½á¹û:");printl(resultMat);// ÊÍ·Å×ÊÔ´mat = null;resultMat = null;printl("·â×°º¯Êý¿ªÔËËãʾÀýÍê³É");returntrue;} catch (e) {printl("Ö´Ðзâ×°º¯Êý¿ªÔËËãʱ·¢Éú´íÎó: " + String(e));returnfalse;}}// Ö÷º¯Êý£ºÔËÐÐÓÐЧµÄ¿ªÔËËãʾÀýfunction runAllOpenImgExamples() {printl("\n===== ¿ªÊ¼ÔËÐпªÔËËãʾÀý =====\n");// ÔËÐлù±¾Ê¾ÀýbasicOpenImgExample();printl("\n------------------------------------\n");// ÔËÐмò»¯µÄºË´óС¶Ô±ÈʾÀýsimpleKernelCompareExample();printl("\n------------------------------------\n");// ÔËÐÐÐÞ¸´ºóµÄ·â×°º¯ÊýʾÀýencapsulatedOpenImgExample();printl("\n===== ¿ªÔËËãʾÀýÔËÐÐÍê³É =====\n");}// ÔËÐÐʾÀýrunAllOpenImgExamples(); [size=1em]
| ·½·¨5£ºremoveSmallObjects£ºÈ¥ÔÓµã [size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| È¥ÔÓµã[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| Mat removeSmallObjects(Mat arg0, double arg1)[size=1em]
| ·µ»ØÖµ[size=1em]
| Mat[size=1em]
| ²ÎÊý 1[size=1em]
| Mat arg0[size=1em]
: mat ͼƬ[size=1em]
| ²ÎÊý 2[size=1em]
| double arg1[size=1em]
: Ãæ»ýСÓÚ£¨Ö¸¶¨Ãæ»ýãÐÖµ£¬Ãæ»ýСÓÚ¸ÃÖµµÄ¶ÔÏó»á±»ÒƳý£©[size=1em]
| °¸Àý[size=1em]
| // removeSmallObjectsº¯ÊýʵÓÃʾÀý - È¥Ôӵ㹦ÄÜ/** * ʹÓÃremoveSmallObjectsº¯ÊýÈ¥³ýͼÏñÖеÄСÔÓµã * @returns ´¦ÀíºóµÄMat¶ÔÏó */ function È¥³ýͼÏñÔÓµã() { // 1. »ñÈ¡ÆÁÄ»½ØÍ¼²¢×ª»»ÎªMat¶ÔÏó var mat = screen.screenShot(900, 1600, 100).getMat(); printl("ÒÑ»ñÈ¡ÆÁÄ»½ØÍ¼"); // 2. ½«²ÊɫͼÏñת»»Îª»Ò¶ÈͼÏñ // ¸ù¾Ý´íÎóÐÅÏ¢£¬removeSmallObjectsº¯ÊýÒªÇóÊäÈëͼÏñ±ØÐëÊÇCV_8UC1¸ñʽ(»Ò¶Èͼ) var grayMat = new Mat(); opencv.cvtColor(mat, grayMat, opencv.COLOR_BGR2GRAY); printl(grayMat); // 3. ʹÓÃremoveSmallObjectsº¯ÊýÈ¥³ýСÔÓµã // ²ÎÊý2ÉèÖÃΪ100£¬±íÊ¾ÒÆ³ýÃæ»ýСÓÚ100µÄ¶ÔÏó var resultMat = opencv.removeSmallObjects(grayMat, 100); printl(resultMat); // 4. ·µ»Ø´¦ÀíºóµÄͼÏñ return resultMat; } // Ö÷³ÌÐòµ÷ÓÃʾÀý function Ö÷³ÌÐò() { try { // µ÷ÓÃÈ¥Ôӵ㺯Êý var processedMat = È¥³ýͼÏñÔÓµã(); // ÏÔʾ´¦Àí½á¹û printl(processedMat); printl("Mat³ß´ç: " + processedMat.width() + "x" + processedMat.height()); // Èç¹ûÐèÒª±£´æ½á¹ûµ½Îļþ // opencv.imwrite("/sdcard/´¦ÀíºóͼÏñ.jpg", processedMat); return processedMat; } catch (e) { printl("´¦Àí¹ý³ÌÖгö´í: " + e); returnnull; } } // ÔËÐÐÖ÷³ÌÐò Ö÷³ÌÐò(); [size=1em]
| ·½·¨7£ºshapeSplit£º·Ö¸ôÌáÈ¡ [size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| ÏÈͨ¹ýÂ˾µ°ÑͼƬ´¦Àí³ÉºÚ°×ͼ£¬È»ºóÌáÈ¡ºÚɫͼÐΣ¨·Ö¸ôÌáÈ¡£©[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| detect[] shapeSplit(Mat arg0, int arg1, int arg2)[size=1em]
| ·µ»ØÖµ[size=1em]
| detect[][size=1em]
| ²ÎÊý 1[size=1em]
| Mat arg0[size=1em]
: mat ¸ñʽͼƬ[size=1em]
| ²ÎÊý 2[size=1em]
| int arg1[size=1em]
: ½á¹ûÅÅÐò£¨0 Æðµã Y ×ø±êÅÅÐò£»1 Æðµã X ×ø±êÅÅÐò£»2 Ãæ»ýÅÅÐò£©[size=1em]
| ²ÎÊý 3[size=1em]
| int arg2[size=1em]
: ÅÅÐò¹æÔò£¨0 ÕýÐò£»1 µ¹Ðò£©[size=1em]
| °¸Àý[size=1em]
| var result:detect[]=ͼɫ141387();if(result!=null){result[0].click();}else{print.err('²éÕÒͼɫ141387ʧ°Ü')}function ͼɫ141387(){//½ØÆÁ²¢×ª³Émat¸ñʽvar mat=screen.screenShot(900,1600,100).getMat();//·Ö¸ôÌáÈ¡return opencv.shapeSplit(mat,0,0)} [size=1em]
| ·½·¨8£ºshapeSplitEx£ºcv Îļþ·Ö¸ôÌáÈ¡ [size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| cv Îļþ·Ö¸ôÌáÈ¡[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| detect[] shapeSplitEx(String arg0)[size=1em]
| ·µ»ØÖµ[size=1em]
| detect[][size=1em]
| ²ÎÊý[size=1em]
| String arg0[size=1em]
: cv ÎļþÃû[size=1em]
| °¸Àý[size=1em]
| //·µ»ØÄ¿±êÊý×é[size=1em]
var detects=opencv.shapeSplitEx('ͼɫ710035.cv');[size=1em]
if(detects!=null){[size=1em]
printl(detects);[size=1em]
detects[0].click();[size=1em]
}[size=1em]
| [size=1em]
·½·¨9£ºtemplateMatch£ºÄ£°åÆ¥Åä [size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| ͨ¹ý¶àÄ£°åÆ¥Å䶨λĿ±ê£¬·µ»ØÖµÊÇÒ»¸öÄ¿±êÊý×飨ģ°åÆ¥Å䣩[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| detect[] templateMatch(Mat arg0, String[] arg1, double arg2, double[] arg3, boolean arg4)[size=1em]
| ·µ»ØÖµ[size=1em]
| detect[][size=1em]
| ²ÎÊý 1[size=1em]
| Mat arg0[size=1em]
: ͼƬ[size=1em]
| ²ÎÊý 2[size=1em]
| String[] arg1[size=1em]
: Ä£°åͼƬ base64 Êý×é[size=1em]
| ²ÎÊý 3[size=1em]
| double arg2[size=1em]
: ÏàËÆ¶ÈãÐÖµ[size=1em]
| ²ÎÊý 4[size=1em]
| double[] arg3[size=1em]
: °Ù·Ö±ÈÇøÓò[size=1em]
| ²ÎÊý 5[size=1em]
| boolean arg4[size=1em]
: Ö»·µ»Ø×îÓÅÖµ[size=1em]
| °¸Àý[size=1em]
| printl('ͼɫ419496');[size=1em]
var detects = auto.findImages([64λͼ], 0.8, 5000, 1, [0,0,1,1]);[size=1em]
if(detects!=null){[size=1em]
detects[0].click();[size=1em]
}[size=1em]
| [size=1em]
·½·¨10£ºthreshold£º¶þÖµ»¯ [size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| ãÐÖµÇø¼äÄÚµÄת³ÉºÚÉ«£¬ãÐÖµÇø¼äÍâµÄת³É°×É«£¨¶þÖµ»¯£©[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| Mat threshold(Mat arg0, int arg1, int arg2)[size=1em]
| ·µ»ØÖµ[size=1em]
| Mat[size=1em]
| ²ÎÊý 1[size=1em]
| Mat arg0[size=1em]
: Òª´¦ÀíµÄͼƬ[size=1em]
| ²ÎÊý 2[size=1em]
| int arg1[size=1em]
: ×îСãÐÖµ[size=1em]
| ²ÎÊý 3[size=1em]
| int arg2[size=1em]
: ×î´óãÐÖµ[size=1em]
| °¸Àý[size=1em]
| let mat:Mat=ͼɫ718883();printl(mat);function ͼɫ718883(){//½ØÆÁ²¢×ª³Émat¸ñʽvar mat=screen.screenShot(900,1600,100).getMat();//¶þÖµ»¯opencv.threshold(mat,53,150);return mat;} [size=1em]
| [size=1em]
·½·¨11£ºtoGray£º×ª»Ò¶Èͼ [size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| ת»Ò¶Èͼ[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| Mat toGray(Mat arg0)[size=1em]
| ·µ»ØÖµ[size=1em]
| Mat[size=1em]
| ²ÎÊý[size=1em]
| Mat arg0[size=1em]
: mat ¸ñʽͼÏñ[size=1em]
| °¸Àý[size=1em]
| [size=1em]
let mat:Mat=ͼɫ676235();[size=1em]
printl(mat);[size=1em]
[size=1em]
[size=1em]
[size=1em]
function ͼɫ676235(){[size=1em]
//½ØÆÁ²¢×ª³Émat¸ñʽ[size=1em]
var mat=screen.screenShot(900,1600,100).getMat();[size=1em]
[size=1em]
//ת»Ò¶Èͼ[size=1em]
opencv.toGray(mat);[size=1em]
return mat;[size=1em]
[size=1em]
}[size=1em]
| ·½·¨12£ºtoHSV£º×ª HSV[size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| ת HSV[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| Mat toHSV(Mat arg0)[size=1em]
| ·µ»ØÖµ[size=1em]
| Mat[size=1em]
| ²ÎÊý[size=1em]
| Mat arg0[size=1em]
: mat ¸ñʽͼÏñ[size=1em]
| °¸Àý[size=1em]
| [size=1em]
let mat:Mat=ͼɫ136443();[size=1em]
printl(mat);[size=1em]
[size=1em]
[size=1em]
[size=1em]
function ͼɫ136443(){[size=1em]
//½ØÆÁ²¢×ª³Émat¸ñʽ[size=1em]
var mat=screen.screenShot(900,1600,100).getMat();[size=1em]
[size=1em]
//HSVÑÕÉ«±ä»»[size=1em]
opencv.HSV(mat,0,0,0)[size=1em]
return mat;[size=1em]
[size=1em]
}[size=1em]
| ·½·¨13£ºmat.ToBase64()·½·¨[size=1em]
ÏîÄ¿[size=1em]
| ˵Ã÷[size=1em]
| º¯Êý¹¦ÄÜ[size=1em]
| ת base64 ×Ö·û´®[size=1em]
| º¯ÊýÉùÃ÷[size=1em]
| String ToBase64()[size=1em]
| ·µ»ØÖµ[size=1em]
| String[size=1em]
| ²ÎÊý[size=1em]
| ÎÞ[size=1em]
| °¸Àý[size=1em]
| /** * Mat¶ÔÏótoStringºÍToBase64·½·¨Ê¹ÓÃʾÀý * ÑÝʾÈçºÎʹÓÃMat¶ÔÏóµÄtoString()ºÍToBase64()·½·¨ */// Ö÷º¯Êýfunction main() {printl("=== Mat toStringºÍToBase64·½·¨Ê¾Àý ===");// »ñÈ¡ÆÁÄ»½ØÍ¼²¢×ª»»ÎªMat¶ÔÏóvar mat = screen.screenShot(900, 1600, 100).getMat();printl("ÒÑ»ñÈ¡Mat¶ÔÏ󣬳ߴç: " + mat.width() + "x" + mat.height());// ʹÓÃtoString()·½·¨»ñÈ¡×Ö·û´®±íʾvar strResult = mat.toString();printl("Mat¶ÔÏó×Ö·û´®±íʾ: " + strResult);// ʹÓÃToBase64()·½·¨»ñÈ¡Base64±àÂëvar base64Result = mat.ToBase64();printl("Mat¶ÔÏóBase64±àÂë: " + base64Result);// ÑéÖ¤½á¹ûÊÇ·ñÓÐЧprintl("³É¹¦»ñÈ¡Mat¶ÔÏóµÄ×Ö·û´®ºÍBase64±íʾ");printl("=== ʾÀýÖ´ÐÐÍê±Ï ===");}// ÔËÐÐÖ÷³ÌÐòmain(); [size=1em]
| [size=1em]
- //🍎½»Á÷ QQ Ⱥ 711841924 Ⱥһ£¬Æ»¹ûÄÚ²âȺ£¬528816639
- //ÊÊÓñ¾ÎĵµES5ϵͳ°²×¿ JavaScriptÒýÇæRhino
- // ·½·¨1£º»ñÈ¡ÇøÓòÑÕÉ«ÊýÁ¿ (getcolorNum)
- /**
- * ¹¦ÄÜ£º´ÓͼÏñÖ¸¶¨ÇøÓòÖУ¬Í³¼Æ·ûºÏÄ¿±êÑÕÉ«£¨º¬ÏàËÆ¶È£©µÄÏñËØÊýÁ¿
- * ·µ»ØÖµ£ºint - Æ¥Åäµ½µÄÑÕÉ«ÊýÁ¿
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- * arg1: String[] - Ä¿±êÑÕÉ«Êý×飨¸ñʽÈç['#AE5454', '10,9,#123233']£©
- * arg2: double - ÑÕÉ«ÏàËÆ¶È£¨0.0~1.0£©
- * arg3: double[] - ¼ì²âÇøÓò±ÈÀý£¨[×ó,ÉÏ,ÓÒ,ÏÂ]£¬·¶Î§0.0~1.0£©
- */
- function getColorCountDemo() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- var matchNum = opencv.getcolorNum(mat, ['#AE5454', '#AE5454'], 0.90, [0.0799, 0.3008, 0.9167, 0.8242]);
- printl("Æ¥ÅäÑÕÉ«ÊýÁ¿£º" + matchNum);
- mat = null;
- }
- // ·½·¨2£º¼ÆËãÌÝ¶È (gradientProcessing)
- /**
- * ¹¦ÄÜ£º¼ÆËãͼÏñÌݶȣ¬Í»³ö±ßÔµÐÅÏ¢
- * ·µ»ØÖµ£ºMat - Ìݶȴ¦ÀíºóµÄͼÏñ
- * ²ÎÊý£ºarg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- */
- function gradientDemo() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- var gradientMat = opencv.gradientProcessing(mat);
- printl("ÌݶÈͼÏñ³ß´ç£º" + gradientMat.width() + "x" + gradientMat.height());
- mat = null;
- gradientMat = null;
- }
- // ·½·¨3£ºÑÕÉ«·×ª (invertColor)
- /**
- * ¹¦ÄÜ£º·×ªÍ¼ÏñÏñËØÑÕÉ«£¨ÀàËÆµ×ƬЧ¹û£©
- * ·µ»ØÖµ£ºMat - ÑÕÉ«·×ªºóµÄͼÏñ
- * ²ÎÊý£ºarg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- */
- function invertColorDemo() {
- function getInvertedMat() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- opencv.invertColor(mat);
- return mat;
- }
- let invertedMat = getInvertedMat();
- printl("ÑÕÉ«·×ªºóMat£º" + invertedMat);
- }
- // ·½·¨4£º¿ªÔËËã (openImg)
- /**
- * ¹¦ÄÜ£ºÏȸ¯Ê´ºóÅòÕÍ£¬È¥³ýСÔëµã¡¢Æ½»¬±ß½ç
- * ·µ»ØÖµ£ºMat - ¿ªÔËËãºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- * arg1: int - ºË´óС£¨±ØÐë>0£©
- */
- function openImgDemo() {
- function openImageProcess(mat, kernelSize) {
- kernelSize = kernelSize <= 0 ? 1 : kernelSize;
- return opencv.openImg(mat, kernelSize);
- }
- var mat = screen.screenShot(432, 768, 100).getMat();
- var resultMat = openImageProcess(mat, 3);
- printl("¿ªÔËËã½á¹û³ß´ç£º" + resultMat.width() + "x" + resultMat.height());
- mat = null;
- resultMat = null;
- }
- // ·½·¨5£ºÈ¥ÔÓµã (removeSmallObjects)
- /**
- * ¹¦ÄÜ£ºÒƳýÃæ»ýСÓÚãÐÖµµÄСÎïÌ壨ÐèÊäÈë»Ò¶Èͼ£©
- * ·µ»ØÖµ£ºMat - È¥ÔÓµãºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄ»Ò¶ÈmatͼƬ£¨CV_8UC1£©
- * arg1: double - Ãæ»ýãÐÖµ£¨<¸ÃÖµµÄÎïÌå±»ÒÆ³ý£©
- */
- function removeSmallObjectsDemo() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- var grayMat = new Mat();
- opencv.cvtColor(mat, grayMat, opencv.COLOR_BGR2GRAY);
- var resultMat = opencv.removeSmallObjects(grayMat, 100);
- printl("È¥ÔÓµãºóMat£º" + resultMat);
- mat = null;
- grayMat = null;
- resultMat = null;
- }
- // ·½·¨6£º·Ö¸ôÌáÈ¡ (shapeSplit)
- /**
- * ¹¦ÄÜ£º×ªºÚ°×ͼºóÌáÈ¡ºÚɫͼÐΣ¬·µ»ØÍ¼ÐÎÊý×é
- * ·µ»ØÖµ£ºdetect[] - ͼÐÎÊý×飨º¬×ø±ê¡¢Ãæ»ýµÈ£¬Ö§³Öclick()£©
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- * arg1: int - ÅÅÐò·½Ê½£¨0=Y×ø±ê£¬1=X×ø±ê£¬2=Ãæ»ý£©
- * arg2: int - ÅÅÐò¹æÔò£¨0=ÕýÐò£¬1=µ¹Ðò£©
- */
- function shapeSplitDemo() {
- function extractShapes() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- var detects = opencv.shapeSplit(mat, 0, 0);
- mat = null;
- return detects;
- }
- var shapes = extractShapes();
- if (shapes) shapes[0]?.click();
- }
- // ·½·¨7£ºCVÎļþ·Ö¸ôÌáÈ¡ (shapeSplitEx)
- /**
- * ¹¦ÄÜ£º´ÓCVÎļþÌáȡͼÐÎ
- * ·µ»ØÖµ£ºdetect[] - ͼÐÎÊý×飨֧³Öclick()£©
- * ²ÎÊý£ºarg0: String - CVÎļþÃû£¨Èç"ͼɫ710035.cv"£©
- */
- function shapeSplitExDemo() {
- var detects = opencv.shapeSplitEx('ͼɫ710035.cv');
- if (detects) detects[0]?.click();
- }
- // ·½·¨8£ºÄ£°åÆ¥Åä (templateMatch)
- /**
- * ¹¦ÄÜ£º¶àÄ£°åÆ¥Å䶨λĿ±ê£¬·µ»ØÆ¥Åä½á¹ûÊý×é
- * ·µ»ØÖµ£ºdetect[] - Æ¥Åä½á¹ûÊý×é
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëͼƬ
- * arg1: String[] - Ä£°åBase64Êý×é
- * arg2: double - ÏàËÆ¶ÈãÐÖµ
- * arg3: double[] - ÇøÓò±ÈÀý£¨[×ó,ÉÏ,ÓÒ,ÏÂ]£©
- * arg4: boolean - ÊÇ·ñÖ»·µ»Ø×îÓÅÖµ
- */
- function templateMatchDemo() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- var templates = [64λͼµÄBase64±àÂë]; // Ìæ»»ÎªÊµ¼ÊÄ£°å
- var results = opencv.templateMatch(mat, templates, 0.8, [0,0,1,1], false);
- if (results) results[0]?.click();
- mat = null;
- }
- // ·½·¨9£º¶þÖµ»¯ (threshold)
- /**
- * ¹¦ÄÜ£ºãÐÖµÄÚתºÚÉ«£¬ãÐÖµÍâת°×É«
- * ·µ»ØÖµ£ºMat - ¶þÖµ»¯ºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëͼƬ
- * arg1: int - ×îСãÐÖµ
- * arg2: int - ×î´óãÐÖµ
- */
- function thresholdDemo() {
- function getBinaryMat() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- opencv.threshold(mat, 53, 150);
- return mat;
- }
- let binaryMat = getBinaryMat();
- printl("¶þÖµ»¯Mat£º" + binaryMat);
- }
- // ·½·¨10£º×ª»Ò¶Èͼ (toGray)
- /**
- * ¹¦ÄÜ£º²Êɫͼת»Ò¶Èͼ£¨µ¥Í¨µÀ£©
- * ·µ»ØÖµ£ºMat - »Ò¶Èͼ
- * ²ÎÊý£ºarg0: Mat - ÊäÈëµÄ²ÊÉ«matͼƬ
- */
- function toGrayDemo() {
- function getGrayMat() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- opencv.toGray(mat);
- return mat;
- }
- let grayMat = getGrayMat();
- printl("»Ò¶ÈͼÀàÐÍ£º" + grayMat.type());
- }
- // ·½·¨11£º×ªHSV (toHSV)
- /**
- * ¹¦ÄÜ£ºBGRÑÕÉ«¿Õ¼äתHSV
- * ·µ»ØÖµ£ºMat - HSVͼÏñ
- * ²ÎÊý£ºarg0: Mat - ÊäÈëµÄ²ÊÉ«matͼƬ
- */
- function toHSVDemo() {
- function getHSVMat() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- opencv.toHSV(mat);
- return mat;
- }
- let hsvMat = getHSVMat();
- printl("HSV Mat£º" + hsvMat);
- }
- // ·½·¨12£ºMatתBase64 (mat.ToBase64())
- /**
- * ¹¦ÄÜ£ºMatͼÏñתBase64×Ö·û´®
- * ·µ»ØÖµ£ºString - Base64±àÂë
- * µ÷ÓãºMat¶ÔÏóÖ±½Óµ÷Óã¨ÎÞ²ÎÊý£©
- */
- function matToBase64Demo() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- var base64 = mat.ToBase64();
- printl("Base64ǰ50×Ö·û£º" + base64.substring(0, 50) + "...");
- mat = null;
- }
- // ·½·¨13£ºfindImageOneSift£¨SIFTËã·¨ÕÒͼ£©
- /**
- * ¹¦ÄÜ£º»ùÓÚSIFTËã·¨²éÕÒͼÏñÆ¥ÅäÇøÓò
- * ·µ»ØÖµ£ºdetect[] - Æ¥Åä½á¹ûÊý×é
- * ²ÎÊý£º£¨·½·¨Ç©Ãû´ýÈ·ÈÏ£¬ÒÔÏÂΪʾÀý²ÎÊý£©
- * arg0: Mat - ´óͼ£¨´ýËÑË÷ͼÏñ£©
- * arg1: Mat - Сͼ£¨Ä£°åͼÏñ£©
- * arg2: int - Æ¥ÅäãÐÖµ1
- * arg3: int - Æ¥ÅäãÐÖµ2
- * arg4: float[] - ¼ì²âÇøÓò±ÈÀý
- */
- function findImageOneSiftDemo() {
- printl("¿ªÊ¼SIFTËã·¨ÕÒͼʾÀý");
- try {
- // ½ØÈ¡´óͼºÍСͼ
- var bigMat = screen.screenShot(900, 1600, 100).getMat();
- var smallMat = screen.screenShot(300, 300, 100).getMat();
-
- // ×¢Ò⣺·½·¨Ç©Ãû¿ÉÄÜÐèµ÷Õû£¨ÔʾÀý´æÔÚµ÷ÓôíÎó£©
- // var results = opencv.findImageOneSift(bigMat, smallMat, 60, 50, [0,0,1,1]);
- printl("SIFTÕÒͼÐèÈ·ÈÏ·½·¨Ç©Ãûºóµ÷ÓÃ");
-
- // ÊÍ·Å×ÊÔ´
- bigMat = null;
- smallMat = null;
- } catch (e) {
- printl("SIFTÕÒͼ´íÎó£º" + e);
- }
- }
- // ·½·¨14£ºfindImagesEx£¨cvÎļþÕÒͼ£©
- /**
- * ¹¦ÄÜ£º´ÓÖ¸¶¨CVÎļþÖвéÕÒÆ¥ÅäͼÐÎ
- * ·µ»ØÖµ£ºdetect[] - Æ¥Åä½á¹ûÊý×飨֧³Öclick()£©
- * ²ÎÊý£ºarg0: String - CVÎļþÃû£¨Èç"ͼɫ564976.cv"£©
- */
- function findImagesExDemo() {
- // ´ÓCVÎļþÕÒͼ
- var detects = opencv.findImagesEx('ͼɫ564976.cv');
- if (detects && detects.length > 0) {
- printl("ÕÒµ½" + detects.length + "¸öÆ¥ÅäͼÐÎ");
- detects[0].click(); // µã»÷µÚÒ»¸ö½á¹û
- } else {
- printl("δÕÒµ½Æ¥ÅäͼÐÎ");
- }
- }
- // ·½·¨15£ºfindMultiColor£¨¶àµãÕÒÉ«£©
- /**
- * ¹¦ÄÜ£º¸ù¾Ý»ùµãºÍ¶à¸öÑÕÉ«µã²éÕÒÆ¥ÅäÇøÓò
- * ·µ»ØÖµ£ºdetect[] - Æ¥Åä½á¹ûÊý×飨֧³Öclick()£©
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëͼƬ
- * arg1: String - »ùµã£¨¸ñʽ"x,y,#ɫֵ"£¬Èç"546,325,#51752F"£©
- * arg2: String[] - ¶àÉ«µãÊý×飨ͬ»ùµã¸ñʽ£©
- * arg3: int - ƫɫãÐÖµ
- * arg4: int - Æ«ÒÆãÐÖµ
- * arg5: float[] - ¼ì²âÇøÓò±ÈÀý£¨[×ó,ÉÏ,ÓÒ,ÏÂ]£©
- * arg6: double - ÏàËÆ¶È
- */
- function findMultiColorDemo() {
- function ͼɫ850610() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // »ùµã+¶àÉ«µãÕÒÉ«
- return opencv.findMultiColor(mat, '546,325,#51752F', ['552,355,#429D60', '534,367,#63FA87'], 2, 5, [0,0,1,1], 0.95);
- }
- var result = ͼɫ850610();
- if (result) {
- result[0].click();
- } else {
- print.err('²éÕÒͼɫ850610ʧ°Ü');
- }
- }
- // ·½·¨16£ºfindMultiColorEx£¨cvÎļþ¶àµãÕÒÉ«£©
- /**
- * ¹¦ÄÜ£º´ÓÖ¸¶¨CVÎļþÖÐÖ´ÐжàµãÕÒÉ«
- * ·µ»ØÖµ£ºdetect[] - Æ¥Åä½á¹ûÊý×飨֧³Öclick()£©
- * ²ÎÊý£ºarg0: String - CVÎļþÃû£¨Èç"ͼɫ850610.cv"£©
- */
- function findMultiColorExDemo() {
- // ´ÓCVÎļþÖ´ÐжàµãÕÒÉ«
- var detects = opencv.findMultiColorEx('ͼɫ850610.cv');
- if (detects && detects.length > 0) {
- printl("ÕÒµ½" + detects.length + "¸öÑÕɫƥÅäµã");
- detects[0].click(); // µã»÷µÚÒ»¸ö½á¹û
- } else {
- printl("δÕÒµ½ÑÕɫƥÅäµã");
- }
- }
- // ·½·¨17£ºgaussianBlur£¨¸ß˹Â˲¨£©
- /**
- * ¹¦ÄÜ£º¶ÔͼÏñ½øÐиß˹Â˲¨£¬Æ½»¬±ßÔµ¡¢È¥³ýÔëµã
- * ·µ»ØÖµ£ºMat - Â˲¨ºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëͼÏñ
- * arg1: int - ¾í»ýºË´óС£¨Ó°ÏìÆ½»¬³Ì¶È£©
- */
- function gaussianBlurDemo() {
- function ͼɫ770562() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // ¸ß˹Â˲¨£¨¾í»ýºË5£©
- opencv.gaussianBlur(mat, 5);
- return mat;
- }
- let mat = ͼɫ770562();
- printl("¸ß˹Â˲¨ºóMat£º" + mat);
- mat = null;
- }
- // ·½·¨18£ºgetAllShap£¨»ñÈ¡ËùÓÐShape£©
- /**
- * ¹¦ÄÜ£º´ÓͼÏñÖÐÌáÈ¡ËùÓÐÐÎ×´£¨Shape£©
- * ·µ»ØÖµ£ºArrayList - °üº¬ËùÓÐÐÎ×´µÄÁбí
- * ²ÎÊý£ºarg0: Mat - ÊäÈëͼÏñ£¨½¨ÒéÏÈת»Ò¶Èͼ£©
- */
- function getAllShapDemo() {
- printl("¿ªÊ¼»ñÈ¡ËùÓÐShapeʾÀý");
- try {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // ת»Ò¶ÈͼԤ´¦Àí
- var grayMat = new Mat();
- opencv.cvtColor(mat, grayMat, opencv.COLOR_RGB2GRAY);
-
- // »ñÈ¡ËùÓÐShape
- var shapes = opencv.getAllShap(grayMat);
- if (shapes) {
- printl("¹²»ñÈ¡µ½" + shapes.size() + "¸öShape");
- } else {
- printl("δ»ñÈ¡µ½Shape");
- }
-
- // ÊÍ·Å×ÊÔ´
- mat = null;
- grayMat = null;
- shapes = null;
- } catch (e) {
- printl("»ñÈ¡Shape´íÎó£º" + e);
- }
- }
- // ·½·¨19£ºgetContours£¨»ñÈ¡ÂÖÀªÍ¼£©
- /**
- * ¹¦ÄÜ£º´ÓͼÏñÖÐÌáÈ¡ÂÖÀª²¢·µ»ØÂÖÀªÍ¼
- * ·µ»ØÖµ£ºMat - °üº¬ÂÖÀªµÄͼÏñ
- * ²ÎÊý£ºarg0: Mat - ÊäÈëͼÏñ£¨½¨ÒéÏÈת»Ò¶Èͼ£©
- */
- function getContoursDemo() {
- printl("¿ªÊ¼»ñÈ¡ÂÖÀªÍ¼Ê¾Àý");
- try {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // ת»Ò¶ÈͼԤ´¦Àí
- var grayMat = new Mat();
- opencv.cvtColor(mat, grayMat, opencv.COLOR_RGB2GRAY);
-
- // »ñÈ¡ÂÖÀª
- var contoursMat = opencv.getContours(grayMat);
- if (contoursMat) {
- printl("ÂÖÀªÍ¼³ß´ç£º" + contoursMat.width() + "x" + contoursMat.height());
- } else {
- printl("δ»ñÈ¡µ½ÂÖÀª");
- }
-
- // ÊÍ·Å×ÊÔ´
- mat = null;
- grayMat = null;
- contoursMat = null;
- } catch (e) {
- printl("»ñÈ¡ÂÖÀª´íÎó£º" + e);
- }
- }
- // ·½·¨20£ºcoverageArea£¨Í¼Æ¬Ä¨³ý£©
- /**
- * ¹¦ÄÜ£º¶ÔͼÏñÖ¸¶¨ÇøÓò½øÐÐĨ³ý£¨Ìî³äÖ¸¶¨»Ò¶ÈÖµ£©
- * ·µ»ØÖµ£ºMat - Ĩ³ýºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- * arg1: double - Ìî³ä»Ò¶ÈÖµ£¨0~255£¬0ΪºÚÉ«£¬255Ϊ°×É«£©
- * arg2: int[] - Ĩ³ýÇøÓò±ÈÀý£¨[×ó,ÉÏ,ÓÒ,ÏÂ]£¬·¶Î§0~1£¬Èç[0,0,1,1]±íʾȫͼ£©
- */
- function coverageAreaDemo() {
- printl("¿ªÊ¼Í¼Æ¬Ä¨³ýʾÀý");
- try {
- // ½ØÈ¡400x400ÆÁÄ»ÇøÓòתMat
- var mat = screen.screenShot(400, 400, 100).getMat();
- printl("ÔʼͼÏñ³ß´ç£º" + mat.width() + "x" + mat.height());
-
- // ¶¨ÒåĨ³ýÇøÓò£¨È«Í¼£©
- var eraseRegion = [0, 0, 1, 1];
- // Ö´ÐÐĨ³ý£¨Ìî³ä»Ò¶ÈÖµ0£¬¼´ºÚÉ«£©
- var resultMat = opencv.coverageArea(mat, 0, eraseRegion);
-
- printl("Ĩ³ýºóͼÏñÐÅÏ¢£º" + resultMat);
- // ÊÍ·Å×ÊÔ´
- mat = null;
- resultMat = null;
- } catch (e) {
- printl("ͼƬĨ³ý´íÎó£º" + e);
- }
- printl("ͼƬĨ³ýʾÀý½áÊø");
- }
- // ·½·¨21£ºdilateImage£¨Í¼ÏñÅòÕÍ£©
- /**
- * ¹¦ÄÜ£º¶ÔͼÏñ½øÐÐÅòÕÍ´¦Àí£¬À©´óÁÁÇø¡¢Á¬½Ó¶ÏÁÑÇøÓò
- * ·µ»ØÖµ£ºMat - ÅòÕͺóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- * arg1: int - ˮƽÅòÕÍϵÊý£¨ÖµÔ½´ó£¬Ë®Æ½·½ÏòÅòÕÍÔ½Ã÷ÏÔ£©
- * arg2: int - ÊúÖ±ÅòÕÍϵÊý£¨ÖµÔ½´ó£¬ÊúÖ±·½ÏòÅòÕÍÔ½Ã÷ÏÔ£©
- */
- function dilateImageDemo() {
- // ·â×°½ØÍ¼+ÅòÕÍ´¦Àíº¯Êý
- function ͼɫ930021() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // ˮƽ+ÊúÖ±ÅòÕÍϵÊý¾ùΪ4
- opencv.dilateImage(mat, 4, 4);
- return mat;
- }
- // Ö´ÐÐÅòÕͲ¢Êä³ö½á¹û
- let matDilate = ͼɫ930021();
- printl("ͼÏñÅòÕͺóÐÅÏ¢£º" + matDilate);
- matDilate = null;
- }
- // ·½·¨22£ºdrawRect£¨Shape»æÖÆ£©
- /**
- * ¹¦ÄÜ£ºÔÚͼÏñÉÏ»æÖƾØÐÎShape£¨²ÎÊýÓ뺯ÊýÉùÃ÷´ý²¹³ä£¬ÒÔÏÂΪ³£¼û¹¦ÄÜʾÀý£©
- * ·µ»ØÖµ£ºMat - »æÖƺóµÄͼÏñ£¨ÍƲ⣩
- * ²ÎÊý£º£¨ÍƲ⣬Ðè¸ù¾Ýʵ¼Ê½Ó¿Úµ÷Õû£©
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- * arg1: int[] - ¾ØÐÎ×ø±ê£¨Èç[x1,y1,x2,y2]£¬×óÉϽÇÓëÓÒϽÇ×ø±ê£©
- * arg2: int[] - ÏßÌõÑÕÉ«£¨Èç[B,G,R]£¬Ä¬ÈÏ¿ÉÄÜΪºìÉ«£©
- * arg3: int - ÏßÌõ¿í¶È£¨Ä¬ÈÏ¿ÉÄÜΪ1£©
- */
- function drawRectDemo() {
- printl("¿ªÊ¼Shape¾ØÐλæÖÆÊ¾Àý£¨²ÎÊý´ýÈ·ÈÏ£©");
- try {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // ÍÆ²â²ÎÊý£ºÍ¼Ïñ¡¢¾ØÐÎ×ø±ê[100,100,300,300]¡¢ºìÉ«[0,0,255]¡¢ÏßÌõ¿í¶È2
- // ×¢Ò⣺ʵ¼Êº¯ÊýÃûÓë²ÎÊýÐè°´ÕæÊµ½Ó¿Úµ÷Õû
- // opencv.drawRect(mat, [100,100,300,300], [0,0,255], 2);
- printl("¾ØÐλæÖÆÐ谴ʵ¼Êº¯Êý½Ó¿Úµ÷Õû²ÎÊý");
- mat = null;
- } catch (e) {
- printl("Shape»æÖÆ´íÎó£º" + e);
- }
- }
- // ·½·¨23£ºerodeImage£¨Í¼Ïñ¸¯Ê´£©
- /**
- * ¹¦ÄÜ£º¶ÔͼÏñ½øÐи¯Ê´´¦Àí£¬ËõСÁÁÇø¡¢È¥³ýСÔëµã
- * ·µ»ØÖµ£ºMat - ¸¯Ê´ºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼƬ
- * arg1: int - ˮƽ¸¯Ê´ÏµÊý£¨ÖµÔ½´ó£¬Ë®Æ½·½Ïò¸¯Ê´Ô½Ã÷ÏÔ£©
- * arg2: int - ÊúÖ±¸¯Ê´ÏµÊý£¨ÖµÔ½´ó£¬ÊúÖ±·½Ïò¸¯Ê´Ô½Ã÷ÏÔ£©
- */
- function erodeImageDemo() {
- // ·â×°½ØÍ¼+¸¯Ê´´¦Àíº¯Êý
- function ͼɫ152593() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // ˮƽ+ÊúÖ±¸¯Ê´ÏµÊý¾ùΪ4
- opencv.erodeImage(mat, 4, 4);
- return mat;
- }
- // Ö´Ðи¯Ê´²¢Êä³ö½á¹û
- let matErode = ͼɫ152593();
- printl("ͼÏñ¸¯Ê´ºóÐÅÏ¢£º" + matErode);
- matErode = null;
- }
- // ·½·¨24£ºfiltersEx£¨cvÎļþÂ˾µ£©
- /**
- * ¹¦ÄÜ£º¼ÓÔØÖ¸¶¨CVÎļþÖеÄÂ˾µÅäÖ㬶ÔͼÏñÓ¦ÓÃÂ˾µÐ§¹û
- * ·µ»ØÖµ£ºMat - Ó¦ÓÃÂ˾µºóµÄͼÏñ
- * ²ÎÊý£ºarg0: String - CVÂ˾µÎļþÃû£¨Èç"ͼɫ358384.cv"£¬ÐèÈ·±£Îļþ·¾¶ÕýÈ·£©
- */
- function filtersExDemo() {
- // ¼ÓÔØCVÎļþÂ˾µ²¢Ó¦ÓÃ
- var matFilter = opencv.filtersEx('ͼɫ358384.cv');
- if (matFilter) {
- printl("Â˾µÓ¦ÓúóͼÏñ³ß´ç£º" + matFilter.width() + "x" + matFilter.height());
- printl("Â˾µÍ¼ÏñÐÅÏ¢£º" + matFilter);
- } else {
- printl("CVÎļþÂ˾µ¼ÓÔØÊ§°Ü");
- }
- matFilter = null;
- }
- // ·½·¨25£ºfindImageOneKAZE£¨KAZEËã·¨ÕÒͼ£©
- /**
- * ¹¦ÄÜ£º»ùÓÚKAZEËã·¨²éÕÒͼÏñÆ¥ÅäÇøÓò£¨±ÈSIFT¸üÎȶ¨£¬ÎÞÐèרÀûÊÚȨ£©
- * ·µ»ØÖµ£ºdetect - µ¥¸öÆ¥Åä½á¹û£¨º¬×ø±ê¡¢ÏàËÆ¶ÈµÈ£©
- * ²ÎÊý£º
- * arg0: Mat - ´óͼ£¨´ýËÑË÷µÄÄ¿±êͼÏñ£©
- * arg1: Mat - Сͼ£¨Ä£°åͼÏñ£©
- * arg2: Mat - ½á¹û´æ´¢Mat£¨ÓÃÓÚ¸¨Öú¼ÆËã£¬ÍÆ²â£©
- */
- function findImageOneKAZEDemo() {
- printl("¿ªÊ¼KAZEËã·¨ÕÒͼʾÀý");
- try {
- // ¶ÁÈ¡±¾µØÄ£°åͼºÍÄ¿±êͼ£¨Â·¾¶Ðè¸ù¾Ýʵ¼Ê´æ´¢µ÷Õû£©
- var templateImg = new image();
- templateImg.read("sdcard/auto/1.jpg"); // Сͼ£¨Ä£°å£©
- var targetImg = new image();
- targetImg.read("sdcard/auto/2.jpg"); // ´óͼ£¨Ä¿±ê£©
-
- // ´´½¨¸¨Öú½á¹ûMat
- var resultMat = new Mat();
- // Ö´ÐÐKAZEÕÒͼ
- var resKAZE = opencv.findImageOneKAZE(targetImg.getMat(), templateImg.getMat(), resultMat);
-
- if (resKAZE) {
- printl("KAZEÕÒͼ½á¹û£º" + resKAZE);
- } else {
- printl("KAZEÕÒͼδƥÅ䵽Ŀ±ê");
- }
-
- // ÊÍ·Å×ÊÔ´
- templateImg = null;
- targetImg = null;
- resultMat = null;
- } catch (e) {
- printl("KAZEÕÒͼ´íÎó£º" + e);
- }
- }
- // ·½·¨26£ºHSVÑÕÉ«±ä»»£¨HSVͨµÀµ÷Õû£©
- /**
- * ¹¦ÄÜ£º¶ÔͼÏñ½øÐÐHSVͨµÀÑÕÉ«±ä»»£¬µ÷ÕûÉ«Ïà¡¢±¥ºÍ¶È¡¢¶Ô±È¶È
- * ·µ»ØÖµ£ºMat - ´¦ÀíºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: int - É«Ïà²ÎÊý£¨µ÷ÕûÑÕÉ«»ùµ÷£©
- * arg2: int - ±¥ºÍ¶È²ÎÊý£¨µ÷ÕûÑÕÉ«ÏÊÑ޳̶ȣ©
- * arg3: int - ¶Ô±È¶È²ÎÊý£¨µ÷ÕûÃ÷°µ¶Ô±È£©
- */
- function hsvTransformDemo() {
- function hsvTransform() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // µ÷ÕûÉ«Ïà17¡¢±¥ºÍ¶È17¡¢¶Ô±È¶È17
- opencv.HSV(mat, 17, 17, 17);
- printl("HSV±ä»»ºóͼÏñ£º" + mat);
- return mat;
- }
- let hsvResult = hsvTransform();
- hsvResult = null;
- }
- // ·½·¨27£º¶Ô±È¶Èµ÷Õû£¨adjustContrast£©
- /**
- * ¹¦ÄÜ£ºµ÷ÕûͼÏñ¶Ô±È¶È£¬ãÐÖµ¿ØÖÆÇ¿Èõ£¨ÖµÔ½´ó¶Ô±È¶ÈԽǿ£©
- * ·µ»ØÖµ£ºMat - µ÷ÕûºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: double - ¶Ô±È¶ÈãÐÖµ£¨>1ÔöÇ¿£¬<1¼õÈõ£¬1²»±ä£©
- */
- function adjustContrastDemo() {
- function adjustContrast() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // ½µµÍ¶Ô±È¶È£¨ãÐÖµ0.5£©
- opencv.adjustContrast(mat, 0.5);
- printl("¶Ô±È¶Èµ÷ÕûºóͼÏñ£º" + mat);
- return mat;
- }
- let contrastResult = adjustContrast();
- contrastResult = null;
- }
- // ·½·¨28£ºBitmapתMat£¨bitmapToMat£©
- /**
- * ¹¦ÄÜ£º½«Bitmap¸ñʽͼÏñת»»ÎªOpenCV´¦ÀíÓõÄMat¸ñʽ
- * ·µ»ØÖµ£ºMat - ת»»ºóµÄͼÏñ
- * ²ÎÊý£ºarg0: Bitmap - ÊäÈëµÄBitmap¸ñʽͼÏñ
- */
- function bitmapToMatDemo() {
- function bitmapToMat() {
- // »ñÈ¡ÆÁÄ»½ØÍ¼µÄBitmap
- var screenshot = screen.screenShot(432, 768, 100);
- var bmp = screenshot.getBitmap();
- // ת»»ÎªMat
- var mat = opencv.bitmapToMat(bmp);
- printl("BitmapתMat½á¹û£º" + mat);
- return mat;
- }
- let matFromBmp = bitmapToMat();
- matFromBmp = null;
- }
- // ·½·¨29£ºÑÕÉ«¹ýÂË£¨colorFilter£©
- /**
- * ¹¦ÄÜ£º±£ÁôÉ趨µÄÄ¿±êÑÕÉ«£¬¹ýÂËÆäËûÑÕÉ«£¨ÊÊÓÃÓڹ̶¨ÑÕɫĿ±êɸѡ£©
- * ·µ»ØÖµ£ºMat - ¹ýÂ˺óµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: String[] - Ä¿±êÑÕÉ«Êý×飨¸ñʽ["#RRGGBB",...]£©
- * arg2: int - Æ¥ÅäãÐÖµ£¨ÔÊÐíµÄÑÕɫƫ²î£¬ÖµÔ½´óÈÝ´íÐÔԽǿ£©
- */
- function colorFilterDemo() {
- function colorFilter() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // Ä¿±êÑÕÉ«£ºÍÁ»Æ¡¢½ð»ÆµÈ
- var colors = ["#615018", "#D9C15D", "#010000", "#F4C51F"];
- // ¹ýÂËÑÕÉ«£¨ãÐÖµ2£¬ÔÊÐíÇá΢ƫ²î£©
- mat = opencv.colorFilter(mat, colors, 2);
- printl("ÑÕÉ«¹ýÂ˺óͼÏñ£º" + mat);
- return mat;
- }
- let filterResult = colorFilter();
- filterResult = null;
- }
- // ·½·¨30£ºÇøÓò½ØÍ¼£¨extractRegion£©
- /**
- * ¹¦ÄÜ£º°´°Ù·Ö±È²Ã¼ôͼÏñ»ò±£ÁôÖ¸¶¨ÇøÓò£¨ÇøÓòÍâ±ä°×£©
- * ·µ»ØÖµ£ºMat - ´¦ÀíºóµÄÇøÓòͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: double[] - ÇøÓò·¶Î§£¨[×óÉϽÇx%,×óÉϽÇy%,ÓÒϽÇx%,ÓÒϽÇy%]£¬·¶Î§0~1£©
- * arg2: boolean - ÊÇ·ñ²Ã¼ô£¨true=²Ã¼ôÎªÇøÓò´óС£¬false=ÇøÓòÍâ±ä°×±£ÁôÔͼ´óС£©
- */
- function extractRegionDemo() {
- function extractRegion() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // ÇøÓò£º×óÉϽÇ(3.935%,16.406%)µ½ÓÒϽÇ(53.472%,63.281%)
- var region = [0.03935, 0.16406, 0.53472, 0.63281];
- // ÇøÓòÍâ±ä°×£¨²»²Ã¼ô£©
- opencv.extractRegion(mat, region, false);
- printl("ÇøÓò´¦ÀíºóͼÏñ£º" + mat);
- return mat;
- }
- let regionResult = extractRegion();
- regionResult = null;
- }
- // ·½·¨31£ºÃæ»ý¹ýÂË£¨inArea£©
- /**
- * ¹¦ÄÜ£º±£ÁôͼÏñÖÐÃæ»ýÔÚÖ¸¶¨·¶Î§ÄÚµÄÇøÓò£¬¹ýÂ˹ýС/¹ý´óÇøÓò
- * ·µ»ØÖµ£ºMat - ¹ýÂ˺óµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: double - ×îÐ¡Ãæ»ý£¨±£Áô¡Ý¸ÃÖµµÄÇøÓò£©
- * arg2: double - ×î´óÃæ»ý£¨±£Áô¡Ü¸ÃÖµµÄÇøÓò£©
- */
- function inAreaDemo() {
- function inArea() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // ±£ÁôÃæ»ý1~10000µÄÇøÓò
- opencv.inArea(mat, 1, 10000);
- printl("Ãæ»ý¹ýÂ˺óͼÏñ£º" + mat);
- return mat;
- }
- let areaResult = inArea();
- areaResult = null;
- }
- // ·½·¨32£º±ßÔµÌáÈ¡£¨Canny£©
- /**
- * ¹¦ÄÜ£º»ùÓÚCannyËã·¨ÌáȡͼÏñ±ßÔµ£¨¸ßãÐֵͨ³£ÎªµÍãÐÖµ2~3±¶£©
- * ·µ»ØÖµ£ºMat - ±ßÔµÌáÈ¡ºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: double - µÍãÐÖµ£¨¿ØÖÆÈõ±ßÔµ¼ì²â£©
- * arg2: double - ¸ßãÐÖµ£¨¿ØÖÆÇ¿±ßÔµ¼ì²â£¬Í¨³£ÎªµÍãÐÖµ2~3±¶£©
- */
- function cannyEdgeDemo() {
- function cannyEdge() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // µÍãÐÖµ50£¬¸ßãÐÖµ100£¨·ûºÏ2±¶¹ØÏµ£©
- opencv.Canny(mat, 50, 100);
- printl("±ßÔµÌáÈ¡ºóͼÏñ£º" + mat);
- return mat;
- }
- let cannyResult = cannyEdge();
- cannyResult = null;
- }
- // ·½·¨33£ºOCRʶ±ð£¨OCR£©
- /**
- * ¹¦ÄÜ£ºÍ¨¹ýѵÁ·×Ö¿âʶ±ðÖ¸¶¨ÇøÓòÎÄ×Ö£¬·µ»ØÊ¶±ð½á¹û
- * ·µ»ØÖµ£ºocrResult - º¬Ê¶±ðÎÄ×Ö¼°Î»ÖÃÐÅÏ¢µÄ¶ÔÏó
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: String - ×Ö¿â·¾¶£¨Èç"ͼɫ976442.ocr"£©
- * arg2: double - ÏàËÆ¶È£¨0~1£¬ÖµÔ½¸ßÆ¥ÅäÔ½Ñϸñ£©
- * arg3: int - Ô¤ÆÚÎÄ×ÖÊý£¨0±íʾ²»ÏÞÖÆ£©
- * arg4: double[] - ʶ±ðÇøÓò£¨[×ó,ÉÏ,ÓÒ,ÏÂ]±ÈÀý£¬0~1£©
- */
- function ocrDemo() {
- function ocr() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // ʶ±ðÇøÓò£ºÈ«Í¼
- var ocrRegion = [0, 0, 1, 1];
- // µ÷ÓÃOCR£º×Ö¿â"ͼɫ976442.ocr"£¬ÏàËÆ¶È0.8
- var ocrRes = opencv.OCR(mat, 'ͼɫ976442.ocr', 0.8, 0, ocrRegion);
- ocrRes ? printl("OCRʶ±ð½á¹û£º" + ocrRes.getAllString()) : print.err('OCRʶ±ðʧ°Ü');
- return ocrRes;
- }
- let ocrResult = ocr();
- ocrResult = null;
- }
- // ·½·¨34£ºCVÎļþOCR£¨OCREx£©
- /**
- * ¹¦ÄÜ£ºÍ¨¹ýÔ¤¶¨ÒåµÄCVÎļþ£¨º¬×Ö¿âºÍÇøÓò£©½øÐÐOCRʶ±ð
- * ·µ»ØÖµ£ºocrResult - º¬Ê¶±ð½á¹ûµÄ¶ÔÏó
- * ²ÎÊý£ºarg0: String - CVÎļþ·¾¶£¨Èç"ͼɫ598321.cv"£©
- */
- function ocrExDemo() {
- function ocrEx() {
- // ¶ÁÈ¡CVÎļþ²¢Ê¶±ð
- var ocrExRes = opencv.OCREx('ͼɫ598321.cv');
- ocrExRes ? printl("CVÎļþOCR½á¹û£º" + ocrExRes.getAllString()) : print.err('CVÎļþOCRʧ°Ü');
- return ocrExRes;
- }
- let cvOcrResult = ocrEx();
- cvOcrResult = null;
- }
- // ·½·¨35£ºÍ¼Ïñƽ»¬£¨Smooth£©
- /**
- * ¹¦ÄÜ£º¼õÉÙͼÏñÔëÉù¡¢Ä£ºýͼÏñ£¨Í¨¹ýÂ˲¨ºÍȥë±ßʵÏÖ£©
- * ·µ»ØÖµ£ºMat - ƽ»¬ºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: int - Â˲¨Öµ£¨ÖµÔ½´óƽ»¬Ð§¹ûԽǿ£©
- * arg2: int - ȥë±ß´óС£¨¿ØÖƱßԵƽ»¬³Ì¶È£©
- */
- function smoothDemo() {
- function smooth() {
- var mat = screen.screenShot(432, 768, 100).getMat();
- // Â˲¨Öµ3£¬È¥Ã«±ß2
- var smoothMat = opencv.Smooth(mat, 3, 2);
- printl("ƽ»¬´¦ÀíºóͼÏñ£º" + smoothMat);
- return smoothMat;
- }
- let smoothResult = smooth();
- smoothResult = null;
- }
- // ·½·¨36£º¶àµã±ÈÉ«£¨checkColors£©
- /**
- * ¹¦ÄÜ£ºÑé֤ͼÏñÖжà¸öÖ¸¶¨×ø±êµÄÑÕÉ«ÊÇ·ñ·ûºÏÔ¤ÆÚ£¨È«Æ¥Åä·µ»Øtrue£©
- * ·µ»ØÖµ£ºboolean - ÊÇ·ñȫƥÅä
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: String[] - Ä¿±êµãÊý×飨¸ñʽ"x,y,#RRGGBB"£¬Èç"325,317,#F4C51F"£©
- * arg2: int - ÑÕÉ«Îó²î£¨ÔÊÐíµÄɫֵƫ²î£©
- * arg3: int - ×ø±êÎó²î£¨ÔÊÐíµÄλÖÃÆ«²î£©
- * arg4: double - ÏàËÆ¶È£¨0~1£¬Æ¥ÅäÑϸñ³Ì¶È£©
- */
- function checkColorsDemo() {
- function checkColors() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // Ä¿±êµã£º×ø±ê+ÑÕÉ«
- var points = ['325,317,#F4C51F', '357,364,#070200', '336,345,#100500', '356,386,#F4C51F'];
- // ÑÕÉ«Îó²î2£¬×ø±êÎó²î5£¬ÏàËÆ¶È0.95
- var isMatch = opencv.checkColors(mat, points, 2, 5, 0.95);
- isMatch ? printl('¶àµã±ÈÉ«³É¹¦') : print.err('¶àµã±Èɫʧ°Ü');
- return isMatch;
- }
- let colorCheckResult = checkColors();
- }
- // ·½·¨37£ºCVÎļþ¶àµã±ÈÉ«£¨checkColorsEx£©
- /**
- * ¹¦ÄÜ£ºÍ¨¹ýÔ¤¶¨ÒåµÄCVÎļþ£¨º¬¶àµã×ø±êºÍÑÕÉ«£©Ñé֤ƥÅä
- * ·µ»ØÖµ£ºboolean - ÊÇ·ñÆ¥Åä³É¹¦
- * ²ÎÊý£ºarg0: String - CVÎļþ·¾¶£¨Èç"ͼɫ246814.cv"£©
- */
- function checkColorsExDemo() {
- function checkColorsEx() {
- // »ùÓÚCVÎļþÑéÖ¤¶àµã±ÈÉ«
- var isExMatch = opencv.checkColorsEx('ͼɫ246814.cv');
- isExMatch ? printl('CVÎļþ¶àµã±ÈÉ«³É¹¦') : printl('CVÎļþ¶àµã±Èɫʧ°Ü');
- return isExMatch;
- }
- let cvColorCheckResult = checkColorsEx();
- }
- // ·½·¨38£º±ÕÔËË㣨closeImg£©
- /**
- * ¹¦ÄÜ£ºÏÈÅòÕͺó¸¯Ê´£¬ÓÃÓÚÌî³äͼÏñС¿×¡¢Á¬½ÓÁÚ½üÇøÓò
- * ·µ»ØÖµ£ºMat - ±ÕÔËËã´¦ÀíºóµÄͼÏñ
- * ²ÎÊý£º
- * arg0: Mat - ÊäÈëµÄmat¸ñʽͼÏñ
- * arg1: int - ºË´óС£¨ÖµÔ½´óЧ¹ûԽǿ£©
- */
- function closeImgDemo() {
- function closeImg() {
- var mat = screen.screenShot(900, 1600, 100).getMat();
- // ±ÕÔËË㣺ºË´óС3
- opencv.closeImg(mat, 3);
- printl("±ÕÔËËãºóͼÏñ£º" + mat);
- return mat;
- }
- let closeResult = closeImg();
- closeResult = null;
- }
¸´ÖÆ´úÂë
|
|