信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 1|回复: 0
打印 上一主题 下一主题

[宣传软件网站动态] AIWROK软件安卓总结图像视觉处理[opencv]方法

[复制链接]

705

主题

789

帖子

5078

积分

积分
5078

资讯缩略图:

资讯发布日期:2025-10-27

资讯发布简介:AIWROK软件安卓总结图像视觉处理[opencv]方法

资讯关键词:AIWROK软件安卓总结图像视觉处理[opencv]方法

资讯所属分类:IT资讯 

联系:

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件网站分类目录 网址:http://www.postbbs.com/

资讯详细描述
AIWROK软件安卓总结图像视觉处理[opencv]方法
AIWROK软件安卓总结图像视觉处理[opencv]方法 b2b软件
AIWROK软件安卓总结图像视觉处理[opencv]方法 b2b软件
AIWROK软件安卓总结图像视觉处理[opencv]方法 b2b软件
方法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]

[color=var(--yq-text-primary)][backcolor=var(--yq-bg-primary)]



[color=var(--yq-text-primary)]






  1. //&#127822;交流 QQ 群 711841924 群一,苹果内测群,528816639
  2. //适用本文档ES5系统安卓 JavaScript引擎Rhino



  3. // 方法1:获取区域颜色数量 (getcolorNum)
  4. /**
  5. * 功能:从图像指定区域中,统计符合目标颜色(含相似度)的像素数量
  6. * 返回值:int - 匹配到的颜色数量
  7. * 参数:
  8. *   arg0: Mat - 输入的mat格式图片
  9. *   arg1: String[] - 目标颜色数组(格式如['#AE5454', '10,9,#123233'])
  10. *   arg2: double - 颜色相似度(0.0~1.0)
  11. *   arg3: double[] - 检测区域比例([左,上,右,下],范围0.0~1.0)
  12. */
  13. function getColorCountDemo() {
  14.     var mat = screen.screenShot(432, 768, 100).getMat();
  15.     var matchNum = opencv.getcolorNum(mat, ['#AE5454', '#AE5454'], 0.90, [0.0799, 0.3008, 0.9167, 0.8242]);
  16.     printl("匹配颜色数量:" + matchNum);
  17.     mat = null;
  18. }


  19. // 方法2:计算梯度 (gradientProcessing)
  20. /**
  21. * 功能:计算图像梯度,突出边缘信息
  22. * 返回值:Mat - 梯度处理后的图像
  23. * 参数:arg0: Mat - 输入的mat格式图片
  24. */
  25. function gradientDemo() {
  26.     var mat = screen.screenShot(432, 768, 100).getMat();
  27.     var gradientMat = opencv.gradientProcessing(mat);
  28.     printl("梯度图像尺寸:" + gradientMat.width() + "x" + gradientMat.height());
  29.     mat = null;
  30.     gradientMat = null;
  31. }


  32. // 方法3:颜色翻转 (invertColor)
  33. /**
  34. * 功能:翻转图像像素颜色(类似底片效果)
  35. * 返回值:Mat - 颜色翻转后的图像
  36. * 参数:arg0: Mat - 输入的mat格式图片
  37. */
  38. function invertColorDemo() {
  39.     function getInvertedMat() {
  40.         var mat = screen.screenShot(900, 1600, 100).getMat();
  41.         opencv.invertColor(mat);
  42.         return mat;
  43.     }
  44.     let invertedMat = getInvertedMat();
  45.     printl("颜色翻转后Mat:" + invertedMat);
  46. }


  47. // 方法4:开运算 (openImg)
  48. /**
  49. * 功能:先腐蚀后膨胀,去除小噪点、平滑边界
  50. * 返回值:Mat - 开运算后的图像
  51. * 参数:
  52. *   arg0: Mat - 输入的mat格式图片
  53. *   arg1: int - 核大小(必须>0)
  54. */
  55. function openImgDemo() {
  56.     function openImageProcess(mat, kernelSize) {
  57.         kernelSize = kernelSize <= 0 ? 1 : kernelSize;
  58.         return opencv.openImg(mat, kernelSize);
  59.     }
  60.     var mat = screen.screenShot(432, 768, 100).getMat();
  61.     var resultMat = openImageProcess(mat, 3);
  62.     printl("开运算结果尺寸:" + resultMat.width() + "x" + resultMat.height());
  63.     mat = null;
  64.     resultMat = null;
  65. }


  66. // 方法5:去杂点 (removeSmallObjects)
  67. /**
  68. * 功能:移除面积小于阈值的小物体(需输入灰度图)
  69. * 返回值:Mat - 去杂点后的图像
  70. * 参数:
  71. *   arg0: Mat - 输入的灰度mat图片(CV_8UC1)
  72. *   arg1: double - 面积阈值(<该值的物体被移除)
  73. */
  74. function removeSmallObjectsDemo() {
  75.     var mat = screen.screenShot(900, 1600, 100).getMat();
  76.     var grayMat = new Mat();
  77.     opencv.cvtColor(mat, grayMat, opencv.COLOR_BGR2GRAY);
  78.     var resultMat = opencv.removeSmallObjects(grayMat, 100);
  79.     printl("去杂点后Mat:" + resultMat);
  80.     mat = null;
  81.     grayMat = null;
  82.     resultMat = null;
  83. }


  84. // 方法6:分隔提取 (shapeSplit)
  85. /**
  86. * 功能:转黑白图后提取黑色图形,返回图形数组
  87. * 返回值:detect[] - 图形数组(含坐标、面积等,支持click())
  88. * 参数:
  89. *   arg0: Mat - 输入的mat格式图片
  90. *   arg1: int - 排序方式(0=Y坐标,1=X坐标,2=面积)
  91. *   arg2: int - 排序规则(0=正序,1=倒序)
  92. */
  93. function shapeSplitDemo() {
  94.     function extractShapes() {
  95.         var mat = screen.screenShot(900, 1600, 100).getMat();
  96.         var detects = opencv.shapeSplit(mat, 0, 0);
  97.         mat = null;
  98.         return detects;
  99.     }
  100.     var shapes = extractShapes();
  101.     if (shapes) shapes[0]?.click();
  102. }


  103. // 方法7:CV文件分隔提取 (shapeSplitEx)
  104. /**
  105. * 功能:从CV文件提取图形
  106. * 返回值:detect[] - 图形数组(支持click())
  107. * 参数:arg0: String - CV文件名(如"图色710035.cv")
  108. */
  109. function shapeSplitExDemo() {
  110.     var detects = opencv.shapeSplitEx('图色710035.cv');
  111.     if (detects) detects[0]?.click();
  112. }


  113. // 方法8:模板匹配 (templateMatch)
  114. /**
  115. * 功能:多模板匹配定位目标,返回匹配结果数组
  116. * 返回值:detect[] - 匹配结果数组
  117. * 参数:
  118. *   arg0: Mat - 输入图片
  119. *   arg1: String[] - 模板Base64数组
  120. *   arg2: double - 相似度阈值
  121. *   arg3: double[] - 区域比例([左,上,右,下])
  122. *   arg4: boolean - 是否只返回最优值
  123. */
  124. function templateMatchDemo() {
  125.     var mat = screen.screenShot(432, 768, 100).getMat();
  126.     var templates = [64位图的Base64编码]; // 替换为实际模板
  127.     var results = opencv.templateMatch(mat, templates, 0.8, [0,0,1,1], false);
  128.     if (results) results[0]?.click();
  129.     mat = null;
  130. }


  131. // 方法9:二值化 (threshold)
  132. /**
  133. * 功能:阈值内转黑色,阈值外转白色
  134. * 返回值:Mat - 二值化后的图像
  135. * 参数:
  136. *   arg0: Mat - 输入图片
  137. *   arg1: int - 最小阈值
  138. *   arg2: int - 最大阈值
  139. */
  140. function thresholdDemo() {
  141.     function getBinaryMat() {
  142.         var mat = screen.screenShot(900, 1600, 100).getMat();
  143.         opencv.threshold(mat, 53, 150);
  144.         return mat;
  145.     }
  146.     let binaryMat = getBinaryMat();
  147.     printl("二值化Mat:" + binaryMat);
  148. }


  149. // 方法10:转灰度图 (toGray)
  150. /**
  151. * 功能:彩色图转灰度图(单通道)
  152. * 返回值:Mat - 灰度图
  153. * 参数:arg0: Mat - 输入的彩色mat图片
  154. */
  155. function toGrayDemo() {
  156.     function getGrayMat() {
  157.         var mat = screen.screenShot(900, 1600, 100).getMat();
  158.         opencv.toGray(mat);
  159.         return mat;
  160.     }
  161.     let grayMat = getGrayMat();
  162.     printl("灰度图类型:" + grayMat.type());
  163. }


  164. // 方法11:转HSV (toHSV)
  165. /**
  166. * 功能:BGR颜色空间转HSV
  167. * 返回值:Mat - HSV图像
  168. * 参数:arg0: Mat - 输入的彩色mat图片
  169. */
  170. function toHSVDemo() {
  171.     function getHSVMat() {
  172.         var mat = screen.screenShot(900, 1600, 100).getMat();
  173.         opencv.toHSV(mat);
  174.         return mat;
  175.     }
  176.     let hsvMat = getHSVMat();
  177.     printl("HSV Mat:" + hsvMat);
  178. }


  179. // 方法12:Mat转Base64 (mat.ToBase64())
  180. /**
  181. * 功能:Mat图像转Base64字符串
  182. * 返回值:String - Base64编码
  183. * 调用:Mat对象直接调用(无参数)
  184. */
  185. function matToBase64Demo() {
  186.     var mat = screen.screenShot(900, 1600, 100).getMat();
  187.     var base64 = mat.ToBase64();
  188.     printl("Base64前50字符:" + base64.substring(0, 50) + "...");
  189.     mat = null;
  190. }


  191. // 方法13:findImageOneSift(SIFT算法找图)
  192. /**
  193. * 功能:基于SIFT算法查找图像匹配区域
  194. * 返回值:detect[] - 匹配结果数组
  195. * 参数:(方法签名待确认,以下为示例参数)
  196. *   arg0: Mat - 大图(待搜索图像)
  197. *   arg1: Mat - 小图(模板图像)
  198. *   arg2: int - 匹配阈值1
  199. *   arg3: int - 匹配阈值2
  200. *   arg4: float[] - 检测区域比例
  201. */
  202. function findImageOneSiftDemo() {
  203.     printl("开始SIFT算法找图示例");
  204.     try {
  205.         // 截取大图和小图
  206.         var bigMat = screen.screenShot(900, 1600, 100).getMat();
  207.         var smallMat = screen.screenShot(300, 300, 100).getMat();
  208.         
  209.         // 注意:方法签名可能需调整(原示例存在调用错误)
  210.         // var results = opencv.findImageOneSift(bigMat, smallMat, 60, 50, [0,0,1,1]);
  211.         printl("SIFT找图需确认方法签名后调用");
  212.         
  213.         // 释放资源
  214.         bigMat = null;
  215.         smallMat = null;
  216.     } catch (e) {
  217.         printl("SIFT找图错误:" + e);
  218.     }
  219. }


  220. // 方法14:findImagesEx(cv文件找图)
  221. /**
  222. * 功能:从指定CV文件中查找匹配图形
  223. * 返回值:detect[] - 匹配结果数组(支持click())
  224. * 参数:arg0: String - CV文件名(如"图色564976.cv")
  225. */
  226. function findImagesExDemo() {
  227.     // 从CV文件找图
  228.     var detects = opencv.findImagesEx('图色564976.cv');
  229.     if (detects && detects.length > 0) {
  230.         printl("找到" + detects.length + "个匹配图形");
  231.         detects[0].click(); // 点击第一个结果
  232.     } else {
  233.         printl("未找到匹配图形");
  234.     }
  235. }


  236. // 方法15:findMultiColor(多点找色)
  237. /**
  238. * 功能:根据基点和多个颜色点查找匹配区域
  239. * 返回值:detect[] - 匹配结果数组(支持click())
  240. * 参数:
  241. *   arg0: Mat - 输入图片
  242. *   arg1: String - 基点(格式"x,y,#色值",如"546,325,#51752F")
  243. *   arg2: String[] - 多色点数组(同基点格式)
  244. *   arg3: int - 偏色阈值
  245. *   arg4: int - 偏移阈值
  246. *   arg5: float[] - 检测区域比例([左,上,右,下])
  247. *   arg6: double - 相似度
  248. */
  249. function findMultiColorDemo() {
  250.     function 图色850610() {
  251.         var mat = screen.screenShot(900, 1600, 100).getMat();
  252.         // 基点+多色点找色
  253.         return opencv.findMultiColor(mat, '546,325,#51752F', ['552,355,#429D60', '534,367,#63FA87'], 2, 5, [0,0,1,1], 0.95);
  254.     }
  255.     var result = 图色850610();
  256.     if (result) {
  257.         result[0].click();
  258.     } else {
  259.         print.err('查找图色850610失败');
  260.     }
  261. }


  262. // 方法16:findMultiColorEx(cv文件多点找色)
  263. /**
  264. * 功能:从指定CV文件中执行多点找色
  265. * 返回值:detect[] - 匹配结果数组(支持click())
  266. * 参数:arg0: String - CV文件名(如"图色850610.cv")
  267. */
  268. function findMultiColorExDemo() {
  269.     // 从CV文件执行多点找色
  270.     var detects = opencv.findMultiColorEx('图色850610.cv');
  271.     if (detects && detects.length > 0) {
  272.         printl("找到" + detects.length + "个颜色匹配点");
  273.         detects[0].click(); // 点击第一个结果
  274.     } else {
  275.         printl("未找到颜色匹配点");
  276.     }
  277. }


  278. // 方法17:gaussianBlur(高斯滤波)
  279. /**
  280. * 功能:对图像进行高斯滤波,平滑边缘、去除噪点
  281. * 返回值:Mat - 滤波后的图像
  282. * 参数:
  283. *   arg0: Mat - 输入图像
  284. *   arg1: int - 卷积核大小(影响平滑程度)
  285. */
  286. function gaussianBlurDemo() {
  287.     function 图色770562() {
  288.         var mat = screen.screenShot(900, 1600, 100).getMat();
  289.         // 高斯滤波(卷积核5)
  290.         opencv.gaussianBlur(mat, 5);
  291.         return mat;
  292.     }
  293.     let mat = 图色770562();
  294.     printl("高斯滤波后Mat:" + mat);
  295.     mat = null;
  296. }


  297. // 方法18:getAllShap(获取所有Shape)
  298. /**
  299. * 功能:从图像中提取所有形状(Shape)
  300. * 返回值:ArrayList - 包含所有形状的列表
  301. * 参数:arg0: Mat - 输入图像(建议先转灰度图)
  302. */
  303. function getAllShapDemo() {
  304.     printl("开始获取所有Shape示例");
  305.     try {
  306.         var mat = screen.screenShot(900, 1600, 100).getMat();
  307.         // 转灰度图预处理
  308.         var grayMat = new Mat();
  309.         opencv.cvtColor(mat, grayMat, opencv.COLOR_RGB2GRAY);
  310.         
  311.         // 获取所有Shape
  312.         var shapes = opencv.getAllShap(grayMat);
  313.         if (shapes) {
  314.             printl("共获取到" + shapes.size() + "个Shape");
  315.         } else {
  316.             printl("未获取到Shape");
  317.         }
  318.         
  319.         // 释放资源
  320.         mat = null;
  321.         grayMat = null;
  322.         shapes = null;
  323.     } catch (e) {
  324.         printl("获取Shape错误:" + e);
  325.     }
  326. }


  327. // 方法19:getContours(获取轮廓图)
  328. /**
  329. * 功能:从图像中提取轮廓并返回轮廓图
  330. * 返回值:Mat - 包含轮廓的图像
  331. * 参数:arg0: Mat - 输入图像(建议先转灰度图)
  332. */
  333. function getContoursDemo() {
  334.     printl("开始获取轮廓图示例");
  335.     try {
  336.         var mat = screen.screenShot(900, 1600, 100).getMat();
  337.         // 转灰度图预处理
  338.         var grayMat = new Mat();
  339.         opencv.cvtColor(mat, grayMat, opencv.COLOR_RGB2GRAY);
  340.         
  341.         // 获取轮廓
  342.         var contoursMat = opencv.getContours(grayMat);
  343.         if (contoursMat) {
  344.             printl("轮廓图尺寸:" + contoursMat.width() + "x" + contoursMat.height());
  345.         } else {
  346.             printl("未获取到轮廓");
  347.         }
  348.         
  349.         // 释放资源
  350.         mat = null;
  351.         grayMat = null;
  352.         contoursMat = null;
  353.     } catch (e) {
  354.         printl("获取轮廓错误:" + e);
  355.     }
  356. }


  357. // 方法20:coverageArea(图片抹除)
  358. /**
  359. * 功能:对图像指定区域进行抹除(填充指定灰度值)
  360. * 返回值:Mat - 抹除后的图像
  361. * 参数:
  362. *   arg0: Mat - 输入的mat格式图片
  363. *   arg1: double - 填充灰度值(0~255,0为黑色,255为白色)
  364. *   arg2: int[] - 抹除区域比例([左,上,右,下],范围0~1,如[0,0,1,1]表示全图)
  365. */
  366. function coverageAreaDemo() {
  367.     printl("开始图片抹除示例");
  368.     try {
  369.         // 截取400x400屏幕区域转Mat
  370.         var mat = screen.screenShot(400, 400, 100).getMat();
  371.         printl("原始图像尺寸:" + mat.width() + "x" + mat.height());
  372.         
  373.         // 定义抹除区域(全图)
  374.         var eraseRegion = [0, 0, 1, 1];
  375.         // 执行抹除(填充灰度值0,即黑色)
  376.         var resultMat = opencv.coverageArea(mat, 0, eraseRegion);
  377.         
  378.         printl("抹除后图像信息:" + resultMat);
  379.         // 释放资源
  380.         mat = null;
  381.         resultMat = null;
  382.     } catch (e) {
  383.         printl("图片抹除错误:" + e);
  384.     }
  385.     printl("图片抹除示例结束");
  386. }


  387. // 方法21:dilateImage(图像膨胀)
  388. /**
  389. * 功能:对图像进行膨胀处理,扩大亮区、连接断裂区域
  390. * 返回值:Mat - 膨胀后的图像
  391. * 参数:
  392. *   arg0: Mat - 输入的mat格式图片
  393. *   arg1: int - 水平膨胀系数(值越大,水平方向膨胀越明显)
  394. *   arg2: int - 竖直膨胀系数(值越大,竖直方向膨胀越明显)
  395. */
  396. function dilateImageDemo() {
  397.     // 封装截图+膨胀处理函数
  398.     function 图色930021() {
  399.         var mat = screen.screenShot(900, 1600, 100).getMat();
  400.         // 水平+竖直膨胀系数均为4
  401.         opencv.dilateImage(mat, 4, 4);
  402.         return mat;
  403.     }
  404.     // 执行膨胀并输出结果
  405.     let matDilate = 图色930021();
  406.     printl("图像膨胀后信息:" + matDilate);
  407.     matDilate = null;
  408. }


  409. // 方法22:drawRect(Shape绘制)
  410. /**
  411. * 功能:在图像上绘制矩形Shape(参数与函数声明待补充,以下为常见功能示例)
  412. * 返回值:Mat - 绘制后的图像(推测)
  413. * 参数:(推测,需根据实际接口调整)
  414. *   arg0: Mat - 输入的mat格式图片
  415. *   arg1: int[] - 矩形坐标(如[x1,y1,x2,y2],左上角与右下角坐标)
  416. *   arg2: int[] - 线条颜色(如[B,G,R],默认可能为红色)
  417. *   arg3: int - 线条宽度(默认可能为1)
  418. */
  419. function drawRectDemo() {
  420.     printl("开始Shape矩形绘制示例(参数待确认)");
  421.     try {
  422.         var mat = screen.screenShot(900, 1600, 100).getMat();
  423.         // 推测参数:图像、矩形坐标[100,100,300,300]、红色[0,0,255]、线条宽度2
  424.         // 注意:实际函数名与参数需按真实接口调整
  425.         // opencv.drawRect(mat, [100,100,300,300], [0,0,255], 2);
  426.         printl("矩形绘制需按实际函数接口调整参数");
  427.         mat = null;
  428.     } catch (e) {
  429.         printl("Shape绘制错误:" + e);
  430.     }
  431. }


  432. // 方法23:erodeImage(图像腐蚀)
  433. /**
  434. * 功能:对图像进行腐蚀处理,缩小亮区、去除小噪点
  435. * 返回值:Mat - 腐蚀后的图像
  436. * 参数:
  437. *   arg0: Mat - 输入的mat格式图片
  438. *   arg1: int - 水平腐蚀系数(值越大,水平方向腐蚀越明显)
  439. *   arg2: int - 竖直腐蚀系数(值越大,竖直方向腐蚀越明显)
  440. */
  441. function erodeImageDemo() {
  442.     // 封装截图+腐蚀处理函数
  443.     function 图色152593() {
  444.         var mat = screen.screenShot(900, 1600, 100).getMat();
  445.         // 水平+竖直腐蚀系数均为4
  446.         opencv.erodeImage(mat, 4, 4);
  447.         return mat;
  448.     }
  449.     // 执行腐蚀并输出结果
  450.     let matErode = 图色152593();
  451.     printl("图像腐蚀后信息:" + matErode);
  452.     matErode = null;
  453. }


  454. // 方法24:filtersEx(cv文件滤镜)
  455. /**
  456. * 功能:加载指定CV文件中的滤镜配置,对图像应用滤镜效果
  457. * 返回值:Mat - 应用滤镜后的图像
  458. * 参数:arg0: String - CV滤镜文件名(如"图色358384.cv",需确保文件路径正确)
  459. */
  460. function filtersExDemo() {
  461.     // 加载CV文件滤镜并应用
  462.     var matFilter = opencv.filtersEx('图色358384.cv');
  463.     if (matFilter) {
  464.         printl("滤镜应用后图像尺寸:" + matFilter.width() + "x" + matFilter.height());
  465.         printl("滤镜图像信息:" + matFilter);
  466.     } else {
  467.         printl("CV文件滤镜加载失败");
  468.     }
  469.     matFilter = null;
  470. }


  471. // 方法25:findImageOneKAZE(KAZE算法找图)
  472. /**
  473. * 功能:基于KAZE算法查找图像匹配区域(比SIFT更稳定,无需专利授权)
  474. * 返回值:detect - 单个匹配结果(含坐标、相似度等)
  475. * 参数:
  476. *   arg0: Mat - 大图(待搜索的目标图像)
  477. *   arg1: Mat - 小图(模板图像)
  478. *   arg2: Mat - 结果存储Mat(用于辅助计算,推测)
  479. */
  480. function findImageOneKAZEDemo() {
  481.     printl("开始KAZE算法找图示例");
  482.     try {
  483.         // 读取本地模板图和目标图(路径需根据实际存储调整)
  484.         var templateImg = new image();
  485.         templateImg.read("sdcard/auto/1.jpg"); // 小图(模板)
  486.         var targetImg = new image();
  487.         targetImg.read("sdcard/auto/2.jpg"); // 大图(目标)
  488.         
  489.         // 创建辅助结果Mat
  490.         var resultMat = new Mat();
  491.         // 执行KAZE找图
  492.         var resKAZE = opencv.findImageOneKAZE(targetImg.getMat(), templateImg.getMat(), resultMat);
  493.         
  494.         if (resKAZE) {
  495.             printl("KAZE找图结果:" + resKAZE);
  496.         } else {
  497.             printl("KAZE找图未匹配到目标");
  498.         }
  499.         
  500.         // 释放资源
  501.         templateImg = null;
  502.         targetImg = null;
  503.         resultMat = null;
  504.     } catch (e) {
  505.         printl("KAZE找图错误:" + e);
  506.     }
  507. }


  508. // 方法26:HSV颜色变换(HSV通道调整)
  509. /**
  510. * 功能:对图像进行HSV通道颜色变换,调整色相、饱和度、对比度
  511. * 返回值:Mat - 处理后的图像
  512. * 参数:
  513. *   arg0: Mat - 输入的mat格式图像
  514. *   arg1: int - 色相参数(调整颜色基调)
  515. *   arg2: int - 饱和度参数(调整颜色鲜艳程度)
  516. *   arg3: int - 对比度参数(调整明暗对比)
  517. */
  518. function hsvTransformDemo() {
  519.     function hsvTransform() {
  520.         var mat = screen.screenShot(432, 768, 100).getMat();
  521.         // 调整色相17、饱和度17、对比度17
  522.         opencv.HSV(mat, 17, 17, 17);
  523.         printl("HSV变换后图像:" + mat);
  524.         return mat;
  525.     }
  526.     let hsvResult = hsvTransform();
  527.     hsvResult = null;
  528. }


  529. // 方法27:对比度调整(adjustContrast)
  530. /**
  531. * 功能:调整图像对比度,阈值控制强弱(值越大对比度越强)
  532. * 返回值:Mat - 调整后的图像
  533. * 参数:
  534. *   arg0: Mat - 输入的mat格式图像
  535. *   arg1: double - 对比度阈值(>1增强,<1减弱,1不变)
  536. */
  537. function adjustContrastDemo() {
  538.     function adjustContrast() {
  539.         var mat = screen.screenShot(432, 768, 100).getMat();
  540.         // 降低对比度(阈值0.5)
  541.         opencv.adjustContrast(mat, 0.5);
  542.         printl("对比度调整后图像:" + mat);
  543.         return mat;
  544.     }
  545.     let contrastResult = adjustContrast();
  546.     contrastResult = null;
  547. }


  548. // 方法28:Bitmap转Mat(bitmapToMat)
  549. /**
  550. * 功能:将Bitmap格式图像转换为OpenCV处理用的Mat格式
  551. * 返回值:Mat - 转换后的图像
  552. * 参数:arg0: Bitmap - 输入的Bitmap格式图像
  553. */
  554. function bitmapToMatDemo() {
  555.     function bitmapToMat() {
  556.         // 获取屏幕截图的Bitmap
  557.         var screenshot = screen.screenShot(432, 768, 100);
  558.         var bmp = screenshot.getBitmap();
  559.         // 转换为Mat
  560.         var mat = opencv.bitmapToMat(bmp);
  561.         printl("Bitmap转Mat结果:" + mat);
  562.         return mat;
  563.     }
  564.     let matFromBmp = bitmapToMat();
  565.     matFromBmp = null;
  566. }


  567. // 方法29:颜色过滤(colorFilter)
  568. /**
  569. * 功能:保留设定的目标颜色,过滤其他颜色(适用于固定颜色目标筛选)
  570. * 返回值:Mat - 过滤后的图像
  571. * 参数:
  572. *   arg0: Mat - 输入的mat格式图像
  573. *   arg1: String[] - 目标颜色数组(格式["#RRGGBB",...])
  574. *   arg2: int - 匹配阈值(允许的颜色偏差,值越大容错性越强)
  575. */
  576. function colorFilterDemo() {
  577.     function colorFilter() {
  578.         var mat = screen.screenShot(432, 768, 100).getMat();
  579.         // 目标颜色:土黄、金黄等
  580.         var colors = ["#615018", "#D9C15D", "#010000", "#F4C51F"];
  581.         // 过滤颜色(阈值2,允许轻微偏差)
  582.         mat = opencv.colorFilter(mat, colors, 2);
  583.         printl("颜色过滤后图像:" + mat);
  584.         return mat;
  585.     }
  586.     let filterResult = colorFilter();
  587.     filterResult = null;
  588. }


  589. // 方法30:区域截图(extractRegion)
  590. /**
  591. * 功能:按百分比裁剪图像或保留指定区域(区域外变白)
  592. * 返回值:Mat - 处理后的区域图像
  593. * 参数:
  594. *   arg0: Mat - 输入的mat格式图像
  595. *   arg1: double[] - 区域范围([左上角x%,左上角y%,右下角x%,右下角y%],范围0~1)
  596. *   arg2: boolean - 是否裁剪(true=裁剪为区域大小,false=区域外变白保留原图大小)
  597. */
  598. function extractRegionDemo() {
  599.     function extractRegion() {
  600.         var mat = screen.screenShot(432, 768, 100).getMat();
  601.         // 区域:左上角(3.935%,16.406%)到右下角(53.472%,63.281%)
  602.         var region = [0.03935, 0.16406, 0.53472, 0.63281];
  603.         // 区域外变白(不裁剪)
  604.         opencv.extractRegion(mat, region, false);
  605.         printl("区域处理后图像:" + mat);
  606.         return mat;
  607.     }
  608.     let regionResult = extractRegion();
  609.     regionResult = null;
  610. }


  611. // 方法31:面积过滤(inArea)
  612. /**
  613. * 功能:保留图像中面积在指定范围内的区域,过滤过小/过大区域
  614. * 返回值:Mat - 过滤后的图像
  615. * 参数:
  616. *   arg0: Mat - 输入的mat格式图像
  617. *   arg1: double - 最小面积(保留≥该值的区域)
  618. *   arg2: double - 最大面积(保留≤该值的区域)
  619. */
  620. function inAreaDemo() {
  621.     function inArea() {
  622.         var mat = screen.screenShot(432, 768, 100).getMat();
  623.         // 保留面积1~10000的区域
  624.         opencv.inArea(mat, 1, 10000);
  625.         printl("面积过滤后图像:" + mat);
  626.         return mat;
  627.     }
  628.     let areaResult = inArea();
  629.     areaResult = null;
  630. }


  631. // 方法32:边缘提取(Canny)
  632. /**
  633. * 功能:基于Canny算法提取图像边缘(高阈值通常为低阈值2~3倍)
  634. * 返回值:Mat - 边缘提取后的图像
  635. * 参数:
  636. *   arg0: Mat - 输入的mat格式图像
  637. *   arg1: double - 低阈值(控制弱边缘检测)
  638. *   arg2: double - 高阈值(控制强边缘检测,通常为低阈值2~3倍)
  639. */
  640. function cannyEdgeDemo() {
  641.     function cannyEdge() {
  642.         var mat = screen.screenShot(432, 768, 100).getMat();
  643.         // 低阈值50,高阈值100(符合2倍关系)
  644.         opencv.Canny(mat, 50, 100);
  645.         printl("边缘提取后图像:" + mat);
  646.         return mat;
  647.     }
  648.     let cannyResult = cannyEdge();
  649.     cannyResult = null;
  650. }


  651. // 方法33:OCR识别(OCR)
  652. /**
  653. * 功能:通过训练字库识别指定区域文字,返回识别结果
  654. * 返回值:ocrResult - 含识别文字及位置信息的对象
  655. * 参数:
  656. *   arg0: Mat - 输入的mat格式图像
  657. *   arg1: String - 字库路径(如"图色976442.ocr")
  658. *   arg2: double - 相似度(0~1,值越高匹配越严格)
  659. *   arg3: int - 预期文字数(0表示不限制)
  660. *   arg4: double[] - 识别区域([左,上,右,下]比例,0~1)
  661. */
  662. function ocrDemo() {
  663.     function ocr() {
  664.         var mat = screen.screenShot(432, 768, 100).getMat();
  665.         // 识别区域:全图
  666.         var ocrRegion = [0, 0, 1, 1];
  667.         // 调用OCR:字库"图色976442.ocr",相似度0.8
  668.         var ocrRes = opencv.OCR(mat, '图色976442.ocr', 0.8, 0, ocrRegion);
  669.         ocrRes ? printl("OCR识别结果:" + ocrRes.getAllString()) : print.err('OCR识别失败');
  670.         return ocrRes;
  671.     }
  672.     let ocrResult = ocr();
  673.     ocrResult = null;
  674. }


  675. // 方法34:CV文件OCR(OCREx)
  676. /**
  677. * 功能:通过预定义的CV文件(含字库和区域)进行OCR识别
  678. * 返回值:ocrResult - 含识别结果的对象
  679. * 参数:arg0: String - CV文件路径(如"图色598321.cv")
  680. */
  681. function ocrExDemo() {
  682.     function ocrEx() {
  683.         // 读取CV文件并识别
  684.         var ocrExRes = opencv.OCREx('图色598321.cv');
  685.         ocrExRes ? printl("CV文件OCR结果:" + ocrExRes.getAllString()) : print.err('CV文件OCR失败');
  686.         return ocrExRes;
  687.     }
  688.     let cvOcrResult = ocrEx();
  689.     cvOcrResult = null;
  690. }


  691. // 方法35:图像平滑(Smooth)
  692. /**
  693. * 功能:减少图像噪声、模糊图像(通过滤波和去毛边实现)
  694. * 返回值:Mat - 平滑后的图像
  695. * 参数:
  696. *   arg0: Mat - 输入的mat格式图像
  697. *   arg1: int - 滤波值(值越大平滑效果越强)
  698. *   arg2: int - 去毛边大小(控制边缘平滑程度)
  699. */
  700. function smoothDemo() {
  701.     function smooth() {
  702.         var mat = screen.screenShot(432, 768, 100).getMat();
  703.         // 滤波值3,去毛边2
  704.         var smoothMat = opencv.Smooth(mat, 3, 2);
  705.         printl("平滑处理后图像:" + smoothMat);
  706.         return smoothMat;
  707.     }
  708.     let smoothResult = smooth();
  709.     smoothResult = null;
  710. }


  711. // 方法36:多点比色(checkColors)
  712. /**
  713. * 功能:验证图像中多个指定坐标的颜色是否符合预期(全匹配返回true)
  714. * 返回值:boolean - 是否全匹配
  715. * 参数:
  716. *   arg0: Mat - 输入的mat格式图像
  717. *   arg1: String[] - 目标点数组(格式"x,y,#RRGGBB",如"325,317,#F4C51F")
  718. *   arg2: int - 颜色误差(允许的色值偏差)
  719. *   arg3: int - 坐标误差(允许的位置偏差)
  720. *   arg4: double - 相似度(0~1,匹配严格程度)
  721. */
  722. function checkColorsDemo() {
  723.     function checkColors() {
  724.         var mat = screen.screenShot(900, 1600, 100).getMat();
  725.         // 目标点:坐标+颜色
  726.         var points = ['325,317,#F4C51F', '357,364,#070200', '336,345,#100500', '356,386,#F4C51F'];
  727.         // 颜色误差2,坐标误差5,相似度0.95
  728.         var isMatch = opencv.checkColors(mat, points, 2, 5, 0.95);
  729.         isMatch ? printl('多点比色成功') : print.err('多点比色失败');
  730.         return isMatch;
  731.     }
  732.     let colorCheckResult = checkColors();
  733. }


  734. // 方法37:CV文件多点比色(checkColorsEx)
  735. /**
  736. * 功能:通过预定义的CV文件(含多点坐标和颜色)验证匹配
  737. * 返回值:boolean - 是否匹配成功
  738. * 参数:arg0: String - CV文件路径(如"图色246814.cv")
  739. */
  740. function checkColorsExDemo() {
  741.     function checkColorsEx() {
  742.         // 基于CV文件验证多点比色
  743.         var isExMatch = opencv.checkColorsEx('图色246814.cv');
  744.         isExMatch ? printl('CV文件多点比色成功') : printl('CV文件多点比色失败');
  745.         return isExMatch;
  746.     }
  747.     let cvColorCheckResult = checkColorsEx();
  748. }


  749. // 方法38:闭运算(closeImg)
  750. /**
  751. * 功能:先膨胀后腐蚀,用于填充图像小孔、连接邻近区域
  752. * 返回值:Mat - 闭运算处理后的图像
  753. * 参数:
  754. *   arg0: Mat - 输入的mat格式图像
  755. *   arg1: int - 核大小(值越大效果越强)
  756. */
  757. function closeImgDemo() {
  758.     function closeImg() {
  759.         var mat = screen.screenShot(900, 1600, 100).getMat();
  760.         // 闭运算:核大小3
  761.         opencv.closeImg(mat, 3);
  762.         printl("闭运算后图像:" + mat);
  763.         return mat;
  764.     }
  765.     let closeResult = closeImg();
  766.     closeResult = null;
  767. }
复制代码




untoAIWROK软件start.js简单H5直接调用nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
信息发布软件AIWROK软件安卓总结图像视觉处理[opencv]方法
AIWROK软件安卓总结图像视觉处理[opencv]方法 方法1:getcolorNum:获取区域颜色数量 方法2:gradientProcessing:计算梯度 方法3:invertColor:颜色翻转 方法4:openImg:开运算 方法5:removeSmallObjects:去杂点 方法7:shapeSplit:分隔提取 方法8:shapeSplitEx:cv 文件分隔提取 方法9:templateMatch:模板匹配 方法10:threshold:二值化 方法11:toGray:转灰度图 方法12:
信息发布软件AIWROK软件start.js简单H5直接调用
信息发布软件AIWROK苹果系统简单的UI界面分享一下
信息发布软件图像视觉处理[opencv]小结3
图像视觉处理[opencv]小结3 方法1:findImageOneSift:找图(SIFT 算法) 方法2:findImagesEx:cv 文件找图 方法3:findMultiColor:找色 方法4:findMultiColorEx:cv 文件多点找色 方法5:gaussianBlur:高斯滤波 方法6:getAllShap:获取所有 Shape 方法7:getContours:获取轮廓图
信息发布软件AIWROK软件图像视觉处理[opencv]小结2
AIWROK软件图像视觉处理[opencv]小结2 方法 1:coverageArea:图片抹除方法2:dilateImage:图像膨胀 方法3:drawRect:Shape 绘制 方法4:erodeImage:图像腐蚀 方法5:filtersEx:cv 文件滤镜 方法6:findImageOneKAZE:找图(KAZE 算法)
信息发布软件AIWORK软件图像视觉处理[opencv]小结1
AIWORK软件图像视觉处理[opencv]小结1// 1. HSV颜色变换:对图像进行HSV通道的颜色变换,可调整色相、饱和度、对比度// 参数说明:输入图像(Mat)、色相参数(int)、饱和度参数(int)、对比度参数(int)// 返回值:处理后的Mat图像function hsvTransform() { // 截取屏幕区域(432,768)大小、100质量的图像并转为Mat格式 var mat = screen.screenShot(432, 768, 100).getMat(); // 调用HSV变换:色相17、饱和度17、对比度17
信息发布软件浏览器H5方法小结
浏览器H5方法小结
信息发布软件AIWROK软件漂亮对接H5简单示例
AIWROK软件漂亮对接H5简单示例
信息发布软件AIWROK软件线程优先级示例
AIWROK软件线程优先级示例
信息发布软件AIWORK软件在屏幕底部显示实时日志可以移动
AIWORK软件在屏幕底部显示实时日志可以移动
信息发布软件安卓HID贝塞尔曲线手势操作示例
安卓HID贝塞尔曲线手势操作示例
信息发布软件安卓端与H5页面交互的完整实现
安卓端与H5页面交互的完整实现
信息发布软件苹果系统里如何使用OCR进行文本识别并执行点击操作
苹果系统里如何使用OCR进行文本识别并执行点击操作
信息发布软件AIWROK软件列表控件 [uiList] 实例演示
AIWROK软件列表控件 实例演示
信息发布软件安卓列表控件 [uiList] 方法小结
安卓列表控件 方法小结 方法 1:add方法 2:addArray方法 3:clear方法 4:delete方法 5:execSQL方法 6:exportData方法 7:exportTxt方法 8:findByID方法 9:getColumnCount方法 10:getColumnIndex方法 11:getColumnName方法 12:getColumnNames方法 13:getCount方法 14:getCursorSetp方法 15:getPosition方法 16:getString方法 17:getStringl方法 18:importData方法 19:isLast方法 20:move方法 21:moveNext方法
信息发布软件安卓版AIWROK软件APP操作类小结合集
安卓版AIWROK软件APP操作类小结合集 方法 1:代理模式获取当前 activity 地址[/backcolor]方法 2:getAllApp 获取所有 app[/backcolor]方法 3:getAppName 获取 APP 名字[/backcolor]方法 4:getCurrentActivity 无障碍获取当前 activity 地址[/backcolor]方法 5:getLocalAppName 获取自己 APP 名字(AIWORK 打包)[/backcolor]方法 6:getLocalVerName 获取自己版本号(AIWORK 打包)[/backcolor]方法 7:getMemory
信息发布软件AIWROK软件苹果点击开始按钮运行最简单的封装脚本例子
AIWROK软件苹果点击开始按钮运行最简单的封装脚本例子 另外主脚本.js封装的:
信息发布软件安卓toast吐司的各种方法应用实例
安卓toast吐司的各种方法应用实例
信息发布软件AIWROK软件支持悬浮窗自由定位和拖拽功能
AIWROK软件支持悬浮窗自由定位和拖拽功能
信息发布软件AIWROK软件安卓工具箱悬浮窗
AIWROK软件安卓工具箱悬浮窗
信息发布软件安卓通过floatUI创建悬浮窗H5界面
安卓通过floatUI创建悬浮窗H5界面
信息发布软件安卓专用吐司toast倒计时到指定时间并显示剩余时间
安卓专用吐司toast倒计时到指定时间并显示剩余时间
信息发布软件aiwrok软件适用于安卓环境下的外网IP获取工具实例
aiwrok软件适用于安卓环境下的外网IP获取工具实例
信息发布软件苹果系统激活模式投屏
1.安装AK-Runner链接下载https://www.pgyer.com/akrunner或者扫码下载AK-Runner.ipa2.安装后需要信任证书找到 设置 --通用---VPN与设备管理3.激活AK-Runner激活需要pc,首先下载激活器📎AK-Runner激活器.zip新手机需要爱思助手协助开启开发者模式,开启过的可以忽略。(爱思助手最好使用最新版)打开爱思助手按照提示操作即可,打开实时投屏。能获取到屏幕信息即可。如果没有出现可能是手机没有开启开发者模式,参考爱思助手
信息发布软件AIWROK软件全部硬件HID按键码小结集合
AIWROK软件全部硬件HID按键码小结集合 方法真实示例:
信息发布软件IOS苹果系统创建具有现代H5视觉效果的界面
IOS苹果系统创建具有现代H5视觉效果的界面
信息发布软件IOS苹果示例如何使用不同的UI风格创建直接运行脚本的按钮
IOS苹果示例如何使用不同的UI风格创建直接运行脚本的按钮
信息发布软件AIWROK苹果IOS线条类[Line]复杂示例
AIWROK苹果IOS线条类[Line]复杂示例
信息发布软件AIWROK软件苹果IOS线条实作简单示例
AIWROK软件苹果IOS线条实作简单示例
信息发布软件AIWROK软件IOS苹果线条类[Line]方法小结
AIWROK软件IOS苹果线条类[Line]方法小结 . 线条宽度设置方法2. 线条高度设置方法3. 线条颜色设置方法实用演示例子:
信息发布软件AIWROK软件苹果IOS吐司toast.show方法小结
AIWROK软件苹果IOS吐司toast.show方法小结 实例呈现:
信息发布软件AIWROK软件苹果IOS系统图色视觉[opencv]方法小结
AIWROK软件苹果IOS系统图色视觉[opencv]方法小结 方法 1:OCR 识别(指定区域)方法 2:获取图像 Base64 编码方法 3:获取 Mat 对象方法 4:Mat 转 Image方法 5:Base64 转 Image方法 6:读取图片文件为 Image方法 7:释放图像资源实战示例子:
信息发布软件AIWROK软件苹果IOS系统图色视觉[opencv]方法小结
AIWROK软件苹果IOS系统图色视觉[opencv]方法小结 方法 1:cv 文件找图(模版匹配 cv 找图)方法 2:cv 文件 OCR(模版匹配 OCR)方法 3:模版匹配(通过模版匹配找到目标对象)方法 4:找多图方法 5:转灰度图(图像转灰度图)方法 6:裁切图片(从大图中截图裁切图片)方法 7:二值化方法 8:颜色翻转实战实例:
信息发布软件AIWROK软件苹果IOS系统随机数[RJrxn1afZqW7yjf2NK]方法小结
AIWROK软件随机数[RJrxn1afZqW7yjf2NK]方法小结 📌GQGqcAlZv2随机字符📌WBJqf91s7J随机整数📌LtUqFOGkc6随机小数📌随机布尔值生成函数📌随机数组元素选择函数使用示例表 📌随机日期使用示例表使用示例表使用示例表📌随机UUID生成函数函数说明表使用示例表📌随机密码 / 验证码随机密码 / 验证码生成函数及使用说明[/backcolor]函数说明表[/backcolor]使用示例表[/back
信息发布软件AIWROK软件苹果系统里的事件[event]方法小结
AIWROK软件苹果系统里的事件[event]方法小结 方法 1:截屏开始方法 2:截屏暂停方法 3:截屏恢复实战示例:
信息发布软件AWIROK苹果系统屏幕类[screen]方法小结
AWIROK苹果系统屏幕类[screen]方法小结 方法 1:lockScreen(锁定屏幕缓存)方法 2:unLockScreen(解锁锁屏幕缓存)方法 3:isOpenShortcut(是否开启快照截屏)方法 4:getScreenWidth(获取屏幕宽度)方法 5:getScreenHeight(获取屏幕高度)方法 6:ocr(识别支持设定区域)方法 7:screenShot(截图缩放,记得调用 close 释放图像)方法 8:screenShotFull(全尺寸截图,记得调用 close 释放图像)实战实例子:单独 OCR
信息发布软件AIWROK软无任何苹果IOS系统配置[config]方法小结
AIWROK软无任何苹果IOS系统配置[config]方法小结 getConfig 获取配置📌setConfig设置配置实际示例:
信息发布软件AIWROK软件安卓日志窗口[logWindow]方法小结总汇集合
AIWROK软件安卓日志窗口[logWindow]方法小结总汇集合 clear 清理日志📌close关闭日志窗口📌setAlpha设置透明度📌setClickModel设置可点模式,就是无法穿透桌面📌setColor设置日志字体颜色📌setDrag设置为手动拖拽模式setHeight设置高度📌setNoClickModel设置为不可点,穿透桌面📌setPosition设置位置📌setSize设置日志字体大小setTitle设置标题📌setWidth 设置
信息发布软件AIWROK安卓类日志类[print]方法小结总汇集合
AIWROK安卓类日志类方法小结总汇集合 print.log:输出调试 / 日志信息2. print.err:输出错误信息3. print.time:启动计时4. print.timeEnd:结束计时并返回时长5. print.warn:输出警告信息完整的示例:
信息发布软件AIWROK软件苹果IOS快捷指令代理服务[shortAgent]方法小结
AIWROK软件苹果IOS快捷指令代理服务[shortAgent]方法小结 openApp启动app📌appopenUrl打开网址或者Scheme📌openSelf自启动📌screenShot代理截屏📌getTopApp 获取顶端app(I0S18+)特别示例:
信息发布软件AIWROK系统安卓找字OCR___方法小结总汇集合
AIWROK系统安卓找字OCR___方法小结总汇集合 findIncludeText查询包含文字🔍🔢findIncludeTexts查询包含文字多目标🔍🔢findSimilarText模糊查询🔍🔢findText查询文字🔍🔢getAllDetect 获取所有目标🔍🔢getAllString 获取所有字符串🔍🔢getJson 获取json对象🔍🔢getJsonString 获取json字符串🔍🔢MLKitOcr文字
信息发布软件AIWROK软件toast_显示方法小结
AIWROK软件toast_显示方法小结 toast.setAlpha___设置透明度toast.setPoint___设置位置toast.setSize___设置字号toast.setTextColor___设置文字颜色toast.showLong___显示长吐司toast.show___显示吐司特别案例:示例二:示例三倒计时到指定时间并显示剩余时间(红色文字):
信息发布软件AIWROK软件苹果系统方法快捷指令[shortcut]方法小结
AIWROK软件苹果系统方法快捷指令[shortcut]方法小结 openApp启动app(需要前台运行)📌openUrl打开网页(需要前台运行)📌runShortcut打开快捷指令(需要前台运行)
信息发布软件AIWROK软件苹果IOS矩形类[rect]方法小结
AIWROK软件苹果IOS矩形类[rect]方法小结 getLeft 获取左边界📌getRight获取右边界📌getTop获取上边界📌getBottom 获取下边界📌getWidth 获取宽度📌getHeight 获取高度📌getCenterX 获取中心X坐标📌getCenterY 获取中心Y坐标📌inRect 判断点是否在矩形内📌set设置矩形的边界📌toString输出字符串📌getRandX生成随机X坐标📌getRandY生成随
信息发布软件AIWROK软件IOS系统里脚本项目[project]方法小结
AIWROK软件IOS系统里脚本项目方法小结 📌getCodePath 获取代码完整目录📌getPluginsPath 获取插件完整目录📌getResourcesPath 获取资源完整目录📌getCard 获取卡密📌getVersion 获取脚本版本调用示例代码:
信息发布软件IOS功能苹果AIWROK软件剪贴板类[clipboard]方法小结
IOS功能苹果AIWROK软件剪贴板类[clipboard]方法小结 copyToClipboard 复制到剪贴板📌copyToClipboardPIP复制到剪贴板📌readFromClipboard 从剪贴板读取示例方法实用:
信息发布软件AIWROK软件IOS苹果系统检测目标类[Detect]方法方法小结
AIWROK软件IOS苹果系统检测目标类[Detect]方法方法小结 📌score 获取检测分数📌getRect 获取检测区域📌clickRandom随机点击📌click点击示例演示:
信息发布软件AIWROK苹果IOS系统里的打印[print]方法小结
AIWROK苹果IOS系统里的打印方法小结 📌now返回本次脚本运行所有日志📌last 返回上次脚本运行所有日志📌showPip 显示画中画,必须前台📌hidePip 隐藏画中画,必须前台log日志📌log日志📌warn警告err 错误📌debug 调试简写printl示例方法演示:
信息发布软件AIWROK软件超多功能越全HID小结方法大放送
AIWROK软件超多功能越全HID小结方法大放送 ⌨️📌back:back 键⌨️📌backspace 键盘back删除键⌨️📌click:点击坐标⌨️📌clickPercent:点击百分比坐标⌨️📌clicks:连续点击⌨️📌clicksV2:连续点击 v2(可设置按下时长)⌨️📌connetBLE:连接蓝牙 HID(必须先完成配对)⌨
信息发布软件AIWROK软件苹果找图YoloV5目标检测[YoloV5]方法小结
AIWROK软件苹果找图YoloV5目标检测[YoloV5]方法小结 📌detectPercent预测📌loadModel 加载模型📌close释放模型
信息发布软件&#128241;⌨️最全的AIWROK软件安卓 HID方法集合小结A
信息发布软件示例苹果IOS系统简单展示一下H5界面AIWORK WebView 示例
示例苹果IOS系统简单展示一下H5界面AIWORK WebView 示例
信息发布软件用AIWROK软件IOS苹果系统创建一个黄色主题风格的 WebView 示例H5
用AIWROK软件IOS苹果系统创建一个黄色主题风格的 WebView 示例H5printl('//🍎交流QQ群711841924');// 创建一个黄色主题风格的 WebView 示例function createYellowThemedWebViewExample() { // 创建 WebView 实例 var web = new WebView(); // 显示界面 web.show(); // 加载黄色主题风格的 HTML 内容 web.loadHtml(`<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UT
信息发布软件苹果创建一个蓝色主题风格的 WebView 示例H5
苹果创建一个蓝色主题风格的 WebView 示例H5 演示了如何创建和操作 WebView 控件。代码中使用了注释的方式避免了实际的 URL 加载和界面关闭,以确保安全性和功能性。以下是代码的详细说明: function createYellowThemedWebViewExample() {...}:定义了一个名为 createYellowThemedWebViewExample 的函数,用于创建一个带有黄色主题风格的 WebView 示例。var web = new WebView();:创建了一个新的 WebView 实例。web.show()
信息发布软件AIWROK软件苹果IOS控件[WebView]方法小结
AIWROK软件苹果IOS控件[WebView]方法小结 📌show显示界面📌loadFile 加载本地文件📌loadHtml 加载 HTML内容📌dismiss关闭界面📌loadUrl加载网页URL完整演示例子:
信息发布软件AIWROK苹果部分功能UI-水平容器[Horizontal]方法小结
AIWROK苹果部分功能UI-水平容器[Horizontal]方法小结 📌addView添加子控件📌removeView移除视图📌clearAllViews清空所有视图📌getViewCount 获取视图数量📌setSpacing设置控件间距📌setBackgroundColor设置背景颜色📌setAlignment 设置对齐方式示例子 1 风格:示例风格 2:
信息发布软件AIWROK软件苹果IOS里的UI-输入框类[Input]方法小结
AIWROK软件苹果IOS里的UI-输入框类方法小结 📌setText 设置输入框文本📌getText 获取输入框文本 📌setlD设置控件ID📌setDefultText 设置默认值📌setTextColor设置文本颜色📌setFontSize设置字体大小📌setBackgroundColor 设置背景颜色📌setWidth设置输入框宽度📌setHeight 设置输入框高度📌setPlaceholder 设置占位符文本📌setTextAlignment 设
信息发布软件AIWROK软件苹果IOS系统Ul-空白站位[Space]方法小结
AIWROK软件苹果IOS系统Ul-空白站位[Space]方法小结 📌setHeight设置高度📌setWidth设置宽度📌setBackgroundColor 设置背景颜色完整示例:
信息发布软件AIWROK软件苹果IOS系统里UI-界面视图[IOSView]方法小结
苹果IOS系统里UI-界面视图方法小结 📌show显示界面📌dismiss关闭📌UIaddView添加📌getView获取view视图📌setBackgroundColor 设置背景颜色完整示例:
信息发布软件&#128296;UI-复选框类[CheckBox]方法小结
🔨UI-复选框类[CheckBox]方法小结📌setText 设置复选框标题📌getText 获取复选框标题📌setID设置控件ID📌setDefultSelect 设置默认值📌select选中复选框📌deselect取消选中复选框📌isSelect获取选中状态📌setColor设置复选框颜色 📌setWidth 设置控件宽度📌setHeight 设置控件高度📌onClick 按钮点击事件示例完整例子:
信息发布软件AIWROK软件IOS系统里的UI-标签类[Label]方法小结
AIWROK软件IOS系统里的UI-标签类[Label]方法小结 📌setText设置标签文本📌setTextColor 设置文本颜色📌setBackgroundColor设置背景颜色📌setFontSize设置字体大小📌setWidth 设置标签宽度📌setHeight设置标签高度📌setTextAlignment设置文本对齐方式完整示例方法例子:
信息发布软件AIWROK软件IOS苹果Ul-垂直容器[Vertical]方法小结
AIWROK软件IOS苹果Ul-垂直容器[Vertical]方法小结//方法小结,交流QQ群711841924//第一个方法:addView添加子控件var label = new Label();label.setText("Hello World");//第二个方法:removeView移除视图var v = new Vertical();v.removeView(0); // 移除第一个子控件//第三个方法:clearAllViews清空所有视图var v = new Vertical();v.clearAllViews(); // 清空所有控件//第四个方法:getViewCount 获取视图数量var v = new Ver
信息发布软件&#128296;AIWROK软件苹果系统UI-按钮[ Button]方法小结
🔨AIWROK软件苹果系统UI-按钮[ Button]方法小结//UI-按钮[ Button]方法小结,交流QQ群711841924// 方法一:setText 设置按钮标题var btn = new Button();btn.setText("点击我");// 方法二:getText 获取按钮标题var btn = new Button();string title = btn.getText();// 方法三:setColor设置按钮颜色var btn = new Button();btn.setColor(50, 100, 150); // 设置按钮颜色为RGB(50, 100, 150)// 方法四:setTextColor 设置
信息发布软件txt文件读写[txt]方法和UI-TAB界面视图[TabView]小结
txt文件读写[txt]方法和UI-TAB界面视图[TabView]小结//UI-TAB界面视图[TabView]方法小结,交流QQ群711841924 // 方法一:show显示界面 //申请一个UI var tab = new TabView(); tab.setTitels(['首页','关于']) vc.show(() => { //页面加载完后执行以下代码 printl("hello IOS") //创建一个水平容器 var h = new Horizontal() //创建一个按钮 var btn = new Butt
信息发布软件TomatoOCR文字识别[tomatoOCR]方法小结[OCR]
TomatoOCR文字识别[tomatoOCR]方法小结[OCR]

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2025-10-27 09:13 , Processed in 0.259975 second(s), 50 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表