美文网首页
autojs你这瓜保熟吗-图片转字符

autojs你这瓜保熟吗-图片转字符

作者: 牙叔教程 | 来源:发表于2021-08-14 13:01 被阅读0次

牙叔教程 简单易懂

效果展示

效果.gif

缘起

在某个视频网站看到别的语言都有图片转字符, 那么autojs也应该有, 所以就做了这个教程

环境

Autojs版本: 9.0.4
Android版本: 8.0.0

思路

思路.png

你将学到以下知识点

  • 初始化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文档, 最后才是群里问问
--- 牙叔教程

声明

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

相关文章

  • autojs你这瓜保熟吗-图片转字符

    牙叔教程 简单易懂 效果展示 缘起 在某个视频网站看到别的语言都有图片转字符, 那么autojs也应该有, 所以就...

  • 华强买瓜

    今天高兴买西瓜, 笑问瓜贩把话搭。 你这西瓜保熟吗? 闰土今天来找猹。 瓜皮瓜粒不是金, 两块一斤昧良心。 偷斤少...

  • 校园趣事1(吃瓜群众请入)

    这瓜保熟吃瓜吃到朋友和师姐npy身上了 朋友:A 师姐:B 师姐npyC(Collegeof Physical E...

  • 扫黑风暴

    一句“这瓜保熟吗”让孙红雷崭露喜剧人头角,而在极限挑战里的表现也让他成为了“牛头梗”“极限三傻”的代名词,名副其实...

  • 精进-毛笔书法137

    “老板,我问你这瓜保甜吗?” “兄嘚,这瓜你不要吃皮,其它都是甜的! 如果要问五月份有什么水果,能让人吃了喜上眉梢...

  • 孙红雷,你真的太狠了!

    虽然有的小伙伴没看过他的作品,但一定对这个表情包很熟悉。 “我问你,这瓜保熟吗?” 片中这个不怒自威的大哥刘华强,...

  • UIimage和NSString的转换

    UIImage与字符串互转//图片转字符串 //字符串转图片 截图 这样可以通过把图片转换为字符串传输。。。。

  • 刘华强问了2遍“这瓜保熟么”,为何就砍摊主?

    “你这瓜保熟么?”想必没有看过孙红雷演的《征服》,也一定对这句话非常熟悉,毕竟它已经成了不少人的口头禅,还有人把它...

  • Image String MemoryStream byte

    1 比特数组转图片 2 图片转比特数组 3 字符串转比特数组 4 比特数组转字符串 5 内存流转比特数组 6 比...

  • 自定义表情 NSString和NSAttributedStrin

    首先,先实现普通字符串转属性字符串吧(网上现成的?): 当然,你肯定会需要转回来?: //把带有图片的属性字符串转...

网友评论

      本文标题:autojs你这瓜保熟吗-图片转字符

      本文链接:https://www.haomeiwen.com/subject/uazsbltx.html