autojs某音霓虹特效

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


效果展示


缘起

群里有人问某音的霓虹特效怎么做, 并发了图片,

看着还有点意思, 就研究了一下

autojs版本

9.0.4


思路


你将学到以下知识点

  • 初始化opencv
  • opencv读取图片
  • opencv读取灰度图片
  • opencv高斯模糊
  • opencv边缘检测
  • opencv查找轮廓
  • opencv绘制轮廓
  • opencv修改轮廓坐标
  • 创建Mat实例
  • Scalar颜色
  • 图片融合
  • opencv资源释放
  • mat写入文件


代码讲解

1. 初始化opencv
runtime.images.initOpenCvIfNeeded();


2. 导入类
importClass(org.opencv.core.CvType);
importClass(org.opencv.core.Scalar);
importClass(org.opencv.core.Point);
importClass(java.util.LinkedList);
importClass(org.opencv.imgproc.Imgproc);
importClass(org.opencv.imgcodecs.Imgcodecs);
importClass(org.opencv.core.Core);
importClass(org.opencv.core.Mat);
importClass(org.opencv.core.MatOfDMatch);
importClass(org.opencv.core.MatOfKeyPoint);
importClass(org.opencv.core.MatOfRect);
importClass(org.opencv.core.Size);
importClass(org.opencv.features2d.DescriptorMatcher);
importClass(org.opencv.features2d.Features2d);
importClass(android.graphics.Matrix);
importClass(org.opencv.android.Utils);
importClass(android.graphics.Bitmap);


3. 可设置的参数
let thickness = 2; //绘制轮廓的线的粗细
let kSize = 30; // 高斯内核的大小, 必须为整数或者奇数
let numberOfLayerOverlays = 3; // 高斯模糊叠加的图层数量, 用于制造发光效果
let color = "#ff0000";


4. 读取图片
let imgPath = files.path("./牙叔正方形.png");
var img = Imgcodecs.imread(imgPath);


5. 读取灰度图


6. 降噪
let imgBlur = imgGray.clone();
Imgproc.GaussianBlur(imgGray, imgBlur, Size(3, 3), 0);


7. 边缘检测
var imgCanny = imgBlur.clone();
Imgproc.Canny(imgBlur, imgCanny, 120, 200, 3, false);


8. 创建Mat实例
let rows = img.rows();
let cols = img.cols();
let imgContour = Mat(rows, cols, CvType.CV_8UC3);


9. 绘制轮廓
let red = colors.red(color);
let green = colors.green(color);
let blue = colors.blue(color);
let alpha = colors.alpha(color);
// cv::Scalar(v1, v2, v3, v4), 前面的三个参数是依次设置BGR的,和RGB相反,第四个参数设置图片的透明度
Imgproc.drawContours(imgContour, contours, -1, Scalar(blue, green, red, alpha), thickness, 8);


10. 查看图片
function viewMat(mat) {
  let tempFilePath = files.join(files.getSdcardPath(), "脚本", "mat.png");
  Imgcodecs.imwrite(tempFilePath, mat);
  app.viewFile(tempFilePath);
}


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问

--- 牙叔教程


声明

部分内容来自网络

本教程仅用于学习, 禁止用于其他用途








相关文章
|
测试技术 Android开发
autojs横屏截图的正确姿势
牙叔教程 简单易懂
2920 0
|
8月前
|
数据可视化 图形学 开发者
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例(上)
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例
810 2
|
8月前
|
图形学
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例(下)
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例
213 0
|
8月前
|
图形学
【实现100个unity特效之5】unity2d 各种粒子特效
【实现100个unity特效之5】unity2d 各种粒子特效
330 0
|
图形学
Unity——拖尾特效
Unity——拖尾特效
478 0
|
程序员 图形学 开发者
Unity 之游戏特效
Unity 之游戏特效
324 0
Unity 之游戏特效
|
Android开发
autojs之酷炫字体效果
使用场景 一个textview中, 展示不同的字体效果
378 1
|
图形学
Unity实现2D小游戏
Unity实现2D小游戏FirstGame2D(Sunny Land) 一、游戏说明 本游戏为作者的第一个实验的2D小游戏 实现效果: (1)简单的UI界面以及触发按钮、滑动按钮事件 (2)通过按钮与按键实现场景的切换 (3)通过代码实现动画效果的切换(跳跃、蹲下等) (4)碰撞体以及触发器实现消灭敌人、收集物品、地面检测 (5)相机场景与背景运动差,实现场景与人物的立体效果,达到较好的视觉效果 (6)SoundMananger实现场景音乐的管理
303 0
Unity实现2D小游戏
autojs红眼特效
牙叔教程 简单易学
209 0
|
前端开发 数据可视化 Android开发
autojs音乐动效
牙叔教程 简单易懂
313 0

相关实验场景

更多