B2B网络软件

标题: OpenCV图像处理与识别AIWROK软件十大功能及其实现方法 [打印本页]

作者: YYPOST群发软件    时间: 2025-3-4 08:15
标题: OpenCV图像处理与识别AIWROK软件十大功能及其实现方法
OpenCV图像处理与识别AIWROK软件十大功能及其实现方法..


  1. //第一个,opencv.checkColorsEx_精简OCR识别


  2. function safeOCRProcess() {
  3.     // 第一步:先验证目标区域是否存在
  4.     if (!opencv.checkColorsEx('多点比色.cv')) {
  5.         printl("基础区域验证未通过");
  6.         return;
  7.     }

  8.     // 第二步:执行OCR并验证返回类型
  9.     var ocrResult = opencv.OCREx('多点比色.cv');
  10.    
  11.     // 双重类型验证(应对可能返回boolean的情况)
  12.     if (!ocrResult || typeof ocrResult !== 'object' || typeof ocrResult.findIncludeText !== 'function') {
  13.         printl("OCR结果异常");
  14.         return;
  15.     }

  16.     // 第三步:安全处理识别结果
  17.     try {
  18.         var resultText = ocrResult.findIncludeText('蜂');
  19.         if (resultText) {
  20.             printl("识别成功:" + resultText);
  21.             // 这里可以添加点击等后续操作
  22.         } else {
  23.             printl("文本未找到");
  24.         }
  25.     } catch (e) {
  26.         printl("结果处理异常:" + e.message);
  27.     }
  28. }

  29. // 执行处理流程
  30. safeOCRProcess();


  31. //第二个,opencv.checkColorsEx_精简区域找图
  32. var seek = opencv.findImagesEx('区域找图.cv');
  33. if (seek) {
  34.      seek[0].click();  //点击
  35. } else {
  36.     printl("未找到了");
  37. }
  38. var seek = opencv.findImagesEx('区域找图.cv');
  39. if (seek) {
  40.     var place = seek[0].getRealRect();
  41.     var x = place.getCenterX();
  42.     var y = place.getCenterY();
  43.     printl(x+","+y)
  44. } else {
  45.     printl("未找到了");
  46. }

  47. //第三个,opencv.checkColorsEx_精简多点找色

  48. var seek = opencv.checkColorsEx('多点比色.cv');
  49. if (seek) {
  50.     printl("找到了");
  51. } else {
  52.     printl("未找到了");
  53. }

  54. if (opencv.checkColorsEx('多点比色.cv')) {
  55.     printl("找到了");
  56. } else {
  57.     printl("未找到了");
  58. }
  59. //第四个,opencv.checkColorsEx_精简多点比色
  60. var seek = opencv.checkColorsEx('多点比色.cv');
  61. if (seek) {
  62.     printl("找到了");
  63. } else {
  64.     printl("未找到了");
  65. }

  66. if (opencv.checkColorsEx('多点比色.cv')) {
  67.     printl("找到了");
  68. } else {
  69.     printl("未找到了");
  70. }
  71. //第五个,opencv.checkColors_OCR识别
  72. var mat=screen.screenShot(720,1280,100).getMat();
  73. var seek = opencv.OCR(mat, '小猪猪.ocr', 0.95,0);
  74. if (seek) {
  75.    printl(ocr1.getAllString());
  76. } else {
  77.     printl("未找到了");
  78. }

  79. var mat=screen.screenShot(720,1280,100).getMat();
  80. var seek = opencv.OCR(mat, '小猪猪.ocr', 0.95,0);
  81. if (seek) {
  82.     printl(seek.findIncludeText('小猪猪'))
  83. } else {
  84.     printl("未找到了");
  85. }

  86. //第六个,opencv.checkColors_多点比色

  87. var mat=screen.screenShot(720,1280,100).getMat();
  88. var seek = opencv.checkColors(mat, ['351,452,#553E38', '368,449,#816D78'], 2, 4, 0.95);
  89. if (seek) {
  90.     printl("找到了");
  91. } else {
  92.     printl("未找到了");
  93. }

  94. var mat=screen.screenShot(720,1280,100).getMat();
  95. if (opencv.checkColors(mat, ['351,452,#553E38', '368,449,#816D78'], 2, 4, 0.95)) {
  96.     printl("找到了");
  97. } else {
  98.     printl("未找到了");
  99. }

  100. //第七个,opencv.findMultiColor_多点找色
  101. var mat=screen.screenShot(720,1280,100).getMat();
  102. 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);
  103. if (seek) {
  104.      seek[0].click();  //点击
  105. } else {
  106.     printl("未找到了");
  107. }

  108. var mat=screen.screenShot(720,1280,100).getMat();
  109. 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);
  110. if (seek) {
  111.     var place = seek[0].getRealRect();
  112.     var x = place.getCenterX();
  113.     var y = place.getCenterY();
  114.     printl(x+","+y)
  115. } else {
  116.     printl("未找到了");
  117. }

  118. //第八个,opencv.templateMatch_区域找图

  119. var mat=screen.screenShot(720,1280,100).getMat();
  120. var seek = opencv.templateMatch(mat, ["图片1","图片2"],0.9, [0.03360,0.14222,0.08893,0.17667],true);
  121. if (seek) {
  122.      seek[0].click();  //点击
  123. } else {
  124.     printl("未找到了");
  125. }

  126. var mat=screen.screenShot(720,1280,100).getMat();
  127. var seek = opencv.templateMatch(mat, ["图片1","图片2"],0.9, [0.03360,0.14222,0.08893,0.17667],true);
  128. if (seek) {
  129.     var place = seek[0].getRealRect();
  130.     var x = place.getCenterX();
  131.     var y = place.getCenterY();
  132.     printl(x+","+y)
  133. } else {
  134.     printl("未找到了");
  135. }

  136. //第九个,opencv.HSV颜色变换

  137. // 截图并获取Mat对象
  138. var mat = screen.screenShot(720, 1280, 100).getMat();
  139. // 使用HSV方法转换
  140. var hsvMat = opencv.HSV(mat, 0, 0, 0);
  141. printl("HSV 转换完成!");
  142. printl(hsvMat);

  143. //第十个,opencv.bitmapToMat(bmp)bitmap图转mat
  144. importPackage(org.opencv.core);
  145. importPackage(org.opencv.imgproc);
  146. importPackage(org.opencv.android);
  147. importClass(android.graphics.Bitmap);

  148. function screenshotAndBinarize(minThreshold, maxThreshold) {
  149.     // 获取屏幕截图
  150.     var bitmap = screen.screenShot(640, 960, 100).getBitmap();

  151.     // 将 Bitmap 转换为 Mat
  152.     var mat = new Mat();
  153.     Utils.bitmapToMat(bitmap, mat);

  154.     // 创建一个用于存储二值化结果的 Mat
  155.     var binaryMat = new Mat();
  156.      
  157.     // 应用阈值处理
  158.     Imgproc.threshold(mat, binaryMat, minThreshold, maxThreshold, Imgproc.THRESH_BINARY);
  159.       printl(binaryMat);
  160.     // 将二值化的 Mat 转换回 Bitmap
  161.     var binaryBitmap = Bitmap.createBitmap(binaryMat.cols(), binaryMat.rows(), Bitmap.Config.ARGB_8888);
  162.     Utils.matToBitmap(binaryMat, binaryBitmap);

  163.     return binaryBitmap;
  164. }

  165. // 调用处理函数
  166. var resultBitmap = screenshotAndBinarize(50, 150);
  167. printl(resultBitmap);
复制代码

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






欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2