 | |  |  |
- // 第一个方法 示例:使用auto.findColors匹配区域内的多点颜色组合
- function findMultipleColors() {
- // 1. 设置图像质量:0=标准清晰度,1=高清晰度,2=超清晰度
- var imageQuality = 0;
- // 2. 设置主颜色
- var mainColor = "606,400,#264878"; // 示例颜色,坐标(606,400),颜色代码#264878
- // 3. 设置多点颜色匹配数组(相对于主颜色的附加颜色点)
- var multiColors = [
- "601,413,#1E4276",
- "597,428,#1E4276",
- "591,429,#F8FBFF"
- ];
- // 4. 偏色和偏移阈值
- var colorThreshold = 2;
- var offsetThreshold = 5;
- // 5. 设置目标区域(按比例传入:左上[0.8,0.3],右下[0.87,0.36])
- var targetRegion = [0.80040, 0.30889, 0.87549, 0.35667];
- // 6. 设置匹配相似度(0~1,值越接近1,匹配要求越严格)
- var similarity = 0.95;
- // 7. 执行颜色查找
- var matchedColors = auto.findColors(
- imageQuality, mainColor, multiColors,
- colorThreshold, offsetThreshold, targetRegion, similarity
- );
- // 8. 处理查找结果
- if (matchedColors && matchedColors.length > 0) {
- for (var i = 0; i < matchedColors.length; i++) {
- var place = matchedColors[i].getRealRect();
- var x = place.getCenterX();
- var y = place.getCenterY();
- printl("匹配成功!中心点坐标:" + x + "," + y);
- // 可选:点击匹配区域
- matchedColors[i].click();
- }
- } else {
- printl("未找到任何匹配区域");
- }
- }
- // 执行查找函数
- findMultipleColors();
- // 第二个方法 示例:findMultiColor 找色
- function findMultiColor() {
- // 1. 截图并获取Mat对象
- var mat = screen.screenShot(720, 1280, 100).getMat();
- // 2. 设置基点颜色及附加点信息
- var basePoint = "607,425,#264878";
- var multiColors = [
- "601,413,#1E4276",
- "597,428,#1E4276",
- "591,429,#F8FBFF"
- ];
- // 3. 调节查找参数:偏差范围和相似度
- var colorThreshold = 2;
- var offsetThreshold = 5;
- var searchRegion = [0.80, 0.30, 0.88, 0.36];
- var similarity = 0.95;
- // 4. 执行查找
- var seek = opencv.findMultiColor(
- mat, basePoint, multiColors,
- colorThreshold, offsetThreshold, searchRegion, similarity
- );
- // 5. 处理结果
- if (seek) {
- seek[0].click();
- printl("找到目标并点击!");
- } else {
- printl("未找到匹配目标!");
- }
- }
- // 执行函数
- findMultiColor();
- // 第三个方法 示例:findMultiColorEx精简找色
- function findMultiColorExExample() {
- // 1. 定义CV文件名
- var cvFileName = "图色655802确定.cv";
- // 2. 查找目标
- var result = opencv.findMultiColorEx(cvFileName);
- // 3. 处理结果并点击
- if (result) {
- result[0].click();
- printl("找到目标,并点击了第一个匹配位置!");
- } else {
- printl("未找到目标!");
- }
- }
- // 执行查找函数
- findMultiColorExExample();
- // 第四个方法 示例:findColors 多点找色
- function findColorsExample() {
- var imageQuality = 1;
- var mainColor = "607,425,#264878";
- var multiColors = [
- "601,413,#1E4276",
- "597,428,#1E4276",
- "591,429,#F8FBFF"
- ];
- var colorThreshold = 10;
- var offsetThreshold = 5;
- var searchArea = [0.1, 0.1, 0.9, 0.9];
- var similarity = 0.95;
- var results = auto.findColors(
- imageQuality, mainColor, multiColors,
- colorThreshold, offsetThreshold, searchArea, similarity
- );
- if (results && results.length > 0) {
- for (var i = 0; i < results.length; i++) {
- printl("找到目标坐标: X = " + results[i].x + ", Y = " + results[i].y);
- }
- } else {
- printl("未找到符合条件的颜色点!");
- }
- }
- // 执行查找函数
- findColorsExample();
- // 第九个方法 示例:遍历找色
- function 遍历找色(cvFileName) {
- // 1. 查找匹配的颜色
- var results = opencv.findMultiColorEx(cvFileName);
- if (!results) {
- printl("未找到任何匹配项!");
- return null;
- }
- // 2. 遍历找到的结果
- for (let i = 0; i < results.length; i++) {
- var rect = results[i].getRealRect();
- var centerX = rect.getCenterX();
- var centerY = rect.getCenterY();
- printl("目标坐标:" + centerX + "," + centerY);
- // 3. 点击找到的颜色点
- auto.clickPoint(centerX, centerY);
- }
- return results;
- }
- // 调用泛用找色方法
- var results = 遍历找色('图色257584领取.cv');
- if (results) {
- printl("找色完成,共找到:" + results.length + " 个目标!");
- } else {
- printl("未找到目标!");
- }
复制代码
详细说明 第一个方法 示例:使用auto.findColors匹配区域内的多点颜色组合
该方法使用auto.findColors来查找屏幕上的多点颜色组合。首先设置图像质量、主颜色、多点颜色数组、偏色阈值、偏移阈值、目标区域和相似度。然后调用auto.findColors进行查找,如果找到匹配的颜色组合,则输出相应区域的中心坐标并可选地点击该区域;否则输出未找到匹配区域。
第二个方法 示例:findMultiColor 找色
该方法使用opencv.findMultiColor来查找屏幕上的多点颜色组合。首先截取屏幕并获取Mat对象,然后定义基点信息和多点颜色信息,设置偏色阈值、偏移阈值、搜索区域和相似度,调用opencv.findMultiColor进行查找。如果找到匹配的颜色组合,则点击第一个匹配项并输出找到;否则输出未找到匹配目标。
第三个方法 示例:findMultiColor 找色
该方法使用opencv.findMultiColorEx来查找屏幕上的多点颜色组合。首先定义一个包含多点颜色信息的CV文件名,然后调用opencv.findMultiColorEx进行查找。如果找到匹配的颜色组合,则点击第一个匹配项并输出找到;否则输出未找到目标。
第四个方法 示例:findColors 多点找色
该方法同样使用auto.findColors来查找屏幕上的多点颜色组合。首先设置图片质量、主颜色、多点颜色数组、偏色阈值、偏移阈值、查找区域和相似度。然后调用auto.findColors进行查找,如果找到匹配的颜色组合,则循环输出所有找到的目标坐标;否则输出未找到符合条件的颜色点。
第五个方法 示例:checkColors 多点比色
该方法使用opencv.checkColors来检查屏幕上是否存在指定的多个颜色点。首先截取屏幕并获取Mat对象,然后定义要检查的颜色点数组,设置偏色阈值、偏移阈值和相似度,调用opencv.checkColors进行检查。如果找到匹配的颜色点,则输出找到;否则输出未找到。
第六个方法 示例:opencv.checkColorsEx多点比色
该方法使用opencv.findImagesEx来查找图像匹配。首先调用opencv.findImagesEx方法查找匹配的图像,返回目标数组。如果找到匹配的图像,则点击第一个匹配项并打印结果数组;否则输出未找到匹配目标。
第七个方法 示例:getcolorNum获取区域色数量
该方法使用opencv.getcolorNum来获取指定区域内某个颜色或颜色组合的数量。首先截取屏幕并获取Mat对象,然后定义要查找的颜色点数组,设置相似度和查找区域,调用opencv.getcolorNum进行查找。最后打印找到的颜色数量。
第八个方法 示例: 封装区域找色函数
该方法封装了一个名为区域找色的函数,用于查找指定CV文件中的颜色组合。首先调用opencv.findMultiColorEx方法查找匹配的颜色,返回第一个匹配结果的实际矩形区域。如果找到匹配项,则输出中心点坐标并点击;否则输出未找到目标。
第九个方法 示例: 遍历找色搜索符合目标颜色或颜色组合的所有匹配结果
该方法封装了一个名为遍历找色的函数,用于查找指定CV文件中的所有颜色组合。首先调用opencv.findMultiColorEx方法查找匹配的颜色,循环处理所有找到的结果,输出每个匹配项的中心点坐标并点击。最后返回找到的所有结果;如果没有找到任何目标,则输出未找到目标。
说明- auto.findColors 和 opencv.findMultiColor 都用于多点颜色查找,前者直接通过指定参数进行查找,后者需要先截取屏幕并获取Mat对象后进行查找。
- opencv.findMultiColorEx 和 opencv.findImagesEx 支持从CV文件中读取颜色和图像信息,简化了代码。
- opencv.checkColors 用于检查屏幕上是否存在指定的多个颜色点。
- opencv.getcolorNum 用于获取指定区域内某个颜色或颜色组合的数量。
- opencv.HSV 用于将图像转换为HSV颜色空间。
- opencv.templateMatch 用于在图像中查找指定的模板图像。
- opencv.OCREx 和 opencv.OCR 用于OCR(光学字符识别)处理,识别屏幕上的文本信息。
| |  | |  |
|