| |  |  |  |  |  | | 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 函数)
 2. 精简区域找图步骤1:使用 opencv.checkColorsEx 检查目标区域是否存在。如果不存在,输出提示并返回。步骤2:使用 opencv.OCREx 进行OCR识别,并对返回结果进行类型验证,确保结果是对象且包含 findIncludeText 方法。步骤3:安全处理OCR结果,查找包含特定文本(如“蜂”)的内容,并根据结果进行后续操作或输出提示。
 3. 精简多点找色使用 opencv.findImagesEx 在指定区域查找图像。如果找到,点击该图像或输出其中心坐标;否则输出“未找到”。
 4. 精简多点比色使用 opencv.checkColorsEx 检查多点颜色是否符合预期。如果符合,输出“找到了”;否则输出“未找到”。
 5. OCR识别与第3部分类似,使用 opencv.checkColorsEx 进行多点比色,输出结果。
 6. 多点比色使用 opencv.OCR 对屏幕截图进行OCR识别。如果识别成功,输出所有字符串或查找包含特定文本(如“小猪猪”)的内容;否则输出“未找到”。
 7. 多点找色使用 opencv.checkColors 检查屏幕截图中的多点颜色是否符合预期。如果符合,输出“找到了”;否则输出“未找到”。
 8. 区域找图使用 opencv.findMultiColor 在屏幕截图中查找特定颜色组合。如果找到,点击该位置或输出其中心坐标;否则输出“未找到”。
 9. HSV颜色变换使用 opencv.templateMatch 在屏幕截图中查找指定图像。如果找到,点击该图像或输出其中心坐标;否则输出“未找到”。
 10. Bitmap图转Mat使用 opencv.HSV 方法将屏幕截图转换为HSV颜色空间,并输出转换后的Mat对象。
 使用 Utils.bitmapToMat 将Bitmap图像转换为Mat对象,然后进行二值化处理,并将结果转换回Bitmap输出。
 | 
 |  |  |  |  |  | 
 |