本文主要是介绍autojs你这瓜保熟吗-图片转字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
牙叔教程 简单易懂
效果展示
缘起
在某个视频网站看到别的语言都有图片转字符, 那么autojs也应该有, 所以就做了这个教程
环境
Autojs版本: 9.0.4
Android版本: 8.0.0
思路
你将学到以下知识点
- 初始化opencv
- opencv读取视频
- 获取一帧视频的宽高
- opencvRGB图片转灰度图
- opencv调整图片大小
- 灰度值映射字符
- 创建Mat实例
- opencv资源释放
代码讲解
1. ui界面
ui.layout(<vertical><text id="content" textSize="5sp" typeface="monospace"></text></vertical>
);
2. 初始化opencv
runtime.images.initOpenCvIfNeeded();
3. 导入类
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);
importClass(org.opencv.videoio.VideoCapture);
importClass(org.opencv.videoio.Videoio);
4. 判断视频文件是否存在
let filePath = "/sdcard/huaQiangMaiGua.mp4";
log(files.exists(filePath));
if (files.exists(filePath)) {throw new Error("视频文件不存在, " + filePath);
}
5. 读取视频
let cap = VideoCapture(filePath);
log(cap);
log(cap.isOpened());
6. 获取视频宽高
let frame = new Mat();
cap.read(frame);
let h = frame.rows();
let w = frame.cols();
log("w = " + w + ", h = " + h);
7. 图片转灰度图
let imgGray = frame.clone();
Imgproc.cvtColor(frame, imgGray, Imgproc.COLOR_BGR2GRAY);
8. 循环直到读取视频完毕
while (r) {sleep(10);Imgproc.cvtColor(frame, imgGray, Imgproc.COLOR_BGR2GRAY);Imgproc.resize(imgGray, imgResize, size, 0, 0, Imgproc.INTER_AREA);let content = mat2Str(imgResize, imgCharWidth, imgCharHeight);ui.post(function () {ui.content.setText(content);});r = cap.read(frame);
}
9. 释放资源
events.on("exit", function () {// 释放资源cap.release();frame.release();imgGray.release();imgResize.release();imgAdaptiveThreshold.release();
});
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问
— 牙叔教程
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途
bilibili
牙叔教程
微信公众号 牙叔教程
QQ群
747748653
完整源码
这篇关于autojs你这瓜保熟吗-图片转字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!