类别 | 详情 |
功能描述 | 根据多个颜色点在图像中查找匹配区域,返回所有匹配的检测对象数组 |
函数声明 | detect[] findMultiColor(Mat arg0, String arg1, String[] arg2, int arg3, int arg4, float[] arg5, double arg6) |
返回值 | detect[] |
参数 | Mat arg0 :图片String arg1 :基点String[] arg2 :多色int arg3 :偏色阈值int arg4 :偏移阈值float[] arg5 :区域double arg6 :相似度 |
案例 | // 简单SIFT图像查找示例 function simpleSiftExample() { printl("开始简单的SIFT图像查找"); try { // 截取屏幕作为大图 var bigMat = screen.screenShot(900, 1600, 100).getMat(); // 截取小区域作为小图 var smallMat = screen.screenShot(300, 300, 100).getMat(); // 注意:下面的方法调用导致了错误,可能是因为参数类型不匹配 // Can't find method com.autoapp.autoapp.Classes.opencv.OpenvCv.findImageOneSift(org.opencv.core.Mat,org.opencv.core.Mat,number,number,object) // 这表明方法签名可能与我们假设的不同 // var result = opencv.findImageOneSift(bigMat, smallMat, 60, 50, [0, 0, 1, 1]); printl("SIFT查找功能暂时不可用,请检查方法签名"); // 释放资源 bigMat = null; smallMat = null; // result = null; } catch (e) { printl("SIFT查找错误: " + String(e)); } } // 简单多点找色示例 function simpleMultiColorExample() { printl("开始简单的多点找色"); try { // 截取屏幕 var mat = screen.screenShot(900, 1600, 100).getMat(); // 基点和颜色点(示例值,实际使用时需要根据图像调整) var basePoint = "100,100,#FFFFFF"; var colorPoints = ["120,100,#CCCCCC"]; // 执行多点找色 var results = opencv.findMultiColor(mat, basePoint, colorPoints, 2, 5, [0, 0, 1, 1], 0.5); if (results != null && results.length > 0) { printl("找到 " + results.length + " 个匹配点"); } else { printl("未找到匹配点"); } // 释放资源 mat = null; results = null; } catch (e) { printl("多点找色错误: " + String(e)); } } // 执行示例 simpleMultiColorExample(); |
类别 | 详情 |
功能描述 | cv 文件找图 |
函数声明 | detect[] findImagesEx(String arg0) |
返回值 | detect[] |
参数 | String arg0 :cv 文件名 |
案例 | //找图返回目标数组 var detects=opencv.findImagesEx('图色564976.cv'); if(detects!=null){ printl(detects); detects[0].click(); } |
类别 | 详情 |
功能描述 | 根据多个颜色点在图像中查找匹配区域,返回所有匹配的检测对象数组 |
函数声明 | detect[] findMultiColor(Mat arg0, String arg1, String[] arg2, int arg3, int arg4, float[] arg5, double arg6) |
返回值 | detect[] |
参数 | Mat arg0 :图片String arg1 :基点String[] arg2 :多色int arg3 :偏色阈值int arg4 :偏移阈值float[] arg5 :区域double arg6 :相似度 |
案例 | var result:detect[]=图色850610(); if(result!=null){ result[0].click(); }else{ print.err('查找图色850610失败') } function 图色850610(){ //截屏并转成mat格式 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) } |
类别 | 详情 |
功能描述 | cv 文件多点找色 |
函数声明 | detect[] findMultiColorEx(String arg0) |
返回值 | detect[] |
参数 | String arg0 :cv 文件名 |
案例 | //找色返回目标数组 var detects=opencv.findMultiColorEx('图色850610.cv'); if(detects!=null){ printl(detects); detects[0].click(); } |
类别 | 详情 |
功能描述 | 高斯滤波可以平滑图像边缘 |
函数声明 | Mat gaussianBlur(Mat arg0, int arg1) |
返回值 | Mat |
参数 | Mat arg0 :图像int arg1 :卷积核 |
案例 | let mat:Mat=图色770562(); printl(mat); function 图色770562(){ //截屏并转成mat格式 var mat=screen.screenShot(900,1600,100).getMat(); //高斯滤波 opencv.gaussianBlur(mat,5) return mat; } |
类别 | 详情 |
功能描述 | 获取所有 Shap |
函数声明 | ArrayList getAllShap(Mat arg0) |
返回值 | ArrayList |
参数 | Mat arg0 : |
案例 | // 获取所有Shape示例 // 函数声明: ArrayList getAllShap(Mat arg0) // 参数: Mat arg0 - 输入图像 // 返回值: ArrayList - 包含所有Shape的列表 function getAllShapExample() { printl("开始执行获取所有Shape示例"); try { // 截取屏幕图像 var screenshot = screen.screenShot(900, 1600, 100); var mat = screenshot.getMat(); printl("截图尺寸: " + mat.width() + "x" + mat.height()); // 尝试对图像进行预处理以确保格式正确 // 先转换为灰度图像,这通常会生成CV_8UC1格式 var grayMat = new Mat(); opencv.cvtColor(mat, grayMat, 6); // 6 表示 COLOR_RGB2GRAY // 调用getAllShap函数获取所有Shape var shapes = opencv.getAllShap(grayMat); if (shapes != null) { printl("成功获取到 " + shapes.size() + " 个Shape"); // 限制输出前10个Shape以避免日志过多 var outputCount = Math.min(shapes.size(), 10); for (var i = 0; i < outputCount; i++) { var shape = shapes.get(i); printl("Shape " + (i+1) + ": " + shape); } if (shapes.size() > 10) { printl("... 还有 " + (shapes.size() - 10) + " 个Shape未显示"); } } else { printl("未获取到任何Shape"); } // 释放资源 mat = null; grayMat = null; screenshot = null; shapes = null; } catch (e) { printl("执行获取所有Shape时发生错误: " + String(e)); } printl("获取所有Shape示例执行完毕"); } // 执行示例 getAllShapExample(); |
类别 | 详情 |
功能描述 | 获取轮廓图 |
函数声明 | Mat getContours(Mat arg0) |
返回值 | Mat |
参数 | Mat arg0 : |
案例 | // 简单获取轮廓图示例 // 函数声明: Mat getContours(Mat arg0) // 参数: Mat arg0 - 输入图像 // 返回值: Mat - 包含轮廓的Mat对象 function simpleGetContoursExample() { printl("开始执行简单获取轮廓图示例"); // 截取屏幕图像 var screenshot = screen.screenShot(900, 1600, 100); var mat = screenshot.getMat(); printl("截图尺寸: " + mat.width() + "x" + mat.height()); // 尝试对图像进行预处理以确保格式正确 // 先转换为灰度图像,这通常会生成CV_8UC1格式 var grayMat = new Mat(); opencv.cvtColor(mat, grayMat, 6); // 6 表示 COLOR_RGB2GRAY // 调用getContours函数获取轮廓 var contours = opencv.getContours(grayMat); if (contours != null) { printl("成功获取到轮廓,轮廓数量: " + contours.size()); // 显示前5个轮廓的详细信息 var showCount = Math.min(contours.size(), 5); for (var i = 0; i < showCount; i++) { var contour = contours.get(i); printl("轮廓 " + (i+1) + ": 长度=" + contour.length + " 点数=" + contour.points.length); } } else { printl("未获取到任何轮廓"); } // 释放资源 mat = null; grayMat = null; screenshot = null; contours = null; printl("简单获取轮廓图示例执行完毕"); } // 执行示例 simpleGetContoursExample(); |
欢迎光临 自动发帖软件 (http://www.fatiegongju.com/) | Powered by Discuz! X3.2 |