当前位置: 首页 > news >正文

MediaPipe框架解析(三):android edge_detection详解

在上一章MediaPipe框架解析(二):mediapipe helloworld中我们已经顺利构建并运行了android上的helloworld项目,本章我们将会继续详解该helloworld项目。
面对一个新项目,我一般分三步走

  1. 先把项目跑起来
  2. 分析项目的产物
  3. 分析项目源码

helloworld产物分析

上一章我们生成了helloworld.apk在bazal-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/basic下,在将helloworld.apk重命名为helloworld.zip后解压到当前路径下,会得到如下结构
在这里插入图片描述
我比较关心的有如下文件,但目前还不清楚具体用途:

  • assets/mobile_gpu.binarypb
  • lib/arm64-v8a/libmediapipe_jni.so
  • lib/arm64-v8a/libopencv_java4.so

后续应该会从帧数据的流向并结合这几个关键文件的用途来做源码分析。

源码分析

相机打开

先根据AndroidManifest.xml找到入口MainActivity,在MainActivity的onResume中可以看到应该是使用了CameraXPreviewHelper来打开和预览相机,相机数据通过SurfaceTexture输出。SurfaceTexture经过ExternalTextureConverter的renderNext方法后就将OES纹理转为了Texture2D的问题,并将该代表相机帧的AppTextureFrame返回到了com.google.mediapipe.components.FrameProcessor.onNewFrame方法中,并在onNewFrame方法中对相机帧做了边缘处理等操作。
在这里插入图片描述

边缘处理

// 先占个坑位,今天太晚了,明天接着看

http://www.lryc.cn/news/578379.html

相关文章:

  • 深度学习中常见激活函数总结
  • k8s pod调度基础
  • spring-ai-alibaba 1.0.0.2 学习(五)——集成外部工具
  • 使用tensorflow的线性回归的例子(三)
  • 【C#】如果有一个数值如 168.0000100,如何去除末尾的无效零,只显示有效的小数位数,让DeepSeek给我们解答
  • C++11中 <cinttypes>的入门与精通
  • CppCon 2018 学习:A New Take on Polymorphism
  • Redis——常用指令汇总指南(一)
  • Electron 沙箱模式深度解析:构建更安全的桌面应用
  • 笨方法学python-习题12
  • jQuery 安装使用教程
  • 【算法】动态规划 斐波那契类型: 740. 删除并获得点数
  • 设计模式之上下文对象设计模式
  • IntelliJ IDEA 2025- 下载安装教程图文版详细教程(附激活码)
  • 使用nlohmann/json.hpp实现json文件读写
  • SpringBoot全局异常详解
  • 【实时Linux实战系列】实时数据库与数据存储方案
  • 学习threejs,使用自定义GLSL 着色器,生成艺术作品
  • 使用Rust原生实现小波卡尔曼滤波算法
  • 408第三季part1 - 操作系统 - 基本分页
  • 算法赋能管理:工厂安全与效率双突破
  • 【仿muduo库实现并发服务器】Channel模块
  • 回转体航行器控制系统中深度控制与俯仰姿态控制的解耦策略
  • 基于springboot的养老院管理系统
  • C# Linq to XML 详解:强大的XML处理工具
  • (自用)Java学习-5.21(支付宝沙箱支付、Vue总结)
  • 插入排序解析
  • sqlmap学习笔记ing(1.Easy_SQLi(时间,表单注入))
  • Django打造智能Web机器人控制平台
  • HarmonyOS应用开发高级认证知识点梳理 (一) 布局与样式