如何在android上调整yuv图像的y通道大小

问题描述

我在 Android 上使用 camera2 api 来捕获图像,需要对图像进行一些操作,例如调整大小和裁剪。

我的应用程序对性能非常敏感,所以我想避免转换为 RGB 格式(位图)。 由于内存占用的考虑,我的意图是仅在图像的 Y 通道上工作。

有人可以建议在 Android 上的 Y 频道操作的现有实现吗?

解决方法

看看https://chromium.googlesource.com/libyuv/libyuv/

libyuv 是一个开源项目,包括 YUV 缩放和转换功能。

  • 缩放 YUV 以准备压缩内容,使用点过滤器、双线性过滤器或盒式过滤器。
  • 从网络摄像头格式转换为 YUV 以进行压缩。
  • 转换为 RGB 格式以进行渲染/效果。
  • 旋转 90/180/270 度以适应处于纵向模式的移动设备。
  • 针对 x86/x64 上的 SSSE3/AVX2 进行了优化。
  • 针对 Neon on Arm 进行了优化。
  • 针对 Mips 上的 MSA 进行了优化。

它也可以在 Android 上运行。