开发者社区> 小凡晓宇> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

autojs对红线蓝线之间的部分进行颜色填充

简介: 牙叔教程 简单易懂
+关注继续查看

牙叔教程 简单易懂

群里有人问

image

原图

image

填充颜色后

image

思路

提取蓝线--> 提取红线--> 提取坐标--> 填充颜色

提取蓝色

  1. 使用ps拾色器或者其他软件的吸管, 多吸取几个蓝色点
    然后分解颜色的rgb分量, 代入到方法中


let lowColor = colors.rgb(lowRGB.red, lowRGB.green, lowRGB.blue);
let highColor = colors.rgb(highRGB.red, highRGB.green, highRGB.blue);
let newImg = images.inRange(img, lowColor, highColor);


提取出来的蓝色区域

image


  1. 观察到, 中间有些位置是断开的, 我们稍微膨胀一下
Imgproc.morphologyEx(
  newImg.mat,
  mat,
  Imgproc.MORPH_DILATE,
  Imgproc.getStructuringElement(Imgproc.MORPH_RECT, Size(3, 3))
);


image


  1. 画出该图片的轮廓, 轮廓用绿色填充
Imgproc.findContours(mat, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE, Point());
Imgproc.drawContours(img.mat, contours, -1, Scalar(0, 255, 0, 255), -1, 8);


image


  1. 获取轮廓的最小外接矩形
let box = Imgproc.minAreaRect(new MatOfPoint2f(contours.get(0).toArray()));
for (let j = 0; j < 4; j++) {
  Imgproc.line(img.mat, rect[j], rect[(j + 1) % 4], Scalar(0, 255, 0, 255), 1, 8);
}


image


  1. 提取矩形两端的坐标
    一端取第一个点, 另一端取第三个点
    画出两个点所在的直线
Imgproc.line(img.mat, rect[0], rect[2], Scalar(0, 255, 0, 255), 1, 8);


image


  1. 同理获取蓝线的坐标

image


  1. 四个点都获取完成, 再用opencv绘制四边形
Imgproc.fillPoly(polyMat, pts, Scalar(0, 255, 0, 255), 1);
Core.addWeighted(img.mat, alpha, polyMat, beta, gamma, matAddWeighted);


image


测试环境

手机: Mi 11 Pro

Android版本: 12

Autojs版本: 9.1.10


名人名言思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程


声明

部分内容来自网络 本教程仅用于学习, 禁止用于其他用途

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
老年人编译系列-go cmd/dist源码
dist是用来编译go语言的工具,而且dist本身是由go语言写的所以可以用低版本的go编译dist, 再用dist编译高版本的go/src/cmd/dist是go dist工具的代码目录main.go中的main为入口函数主要的流程为 检测操作系统 检测系统架构 bginit() //启...
720 0
老年人编译系列-go cmd/dist源码
dist是用来编译go语言的工具,而且dist本身是由go语言写的所以可以用低版本的go编译dist, 再用dist编译高版本的go/src/cmd/dist是go dist工具的代码目录main.go中的main为入口函数主要的流程为 检测操作系统 检测系统架构 bginit() //启...
810 0
关于might_sleep的一点说明---CONFIG_DEBUG_ATOMIC_SLEEP【转】
转自:http://blog.chinaunix.net/uid-23769728-id-3157536.html 这个函数我在看代码时基本上是直接忽略的(因为我知道它实际上不干什么事),不过因为内核中很多函数一开始就会用一下它,为了方便那些正在学习内核源码的网友,本帖专门讨论一下该函数到底被内核用来干什么。
909 0
JBoss Autopwn Script
 https://www.trustwave.com/spiderLabs-tools.phpJBoss Autopwn Script Christian G.
937 0
JDK5.0垃圾收集优化之--Don&#39;t Pause
 作者:江南白衣,最新版链接:http://blog.csdn.net/calvinxiu/archive/2007/05/18/1614473.aspx,版权所有,转载请保留原文链接。       原本想把题目更简单的定为--《不要停》的,但还是自己YY一下就算了。
760 0
+关注
329
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载