专栏首页音视频专栏YVU格式Y分量存储为灰度
原创

YVU格式Y分量存储为灰度

Image

 Image为Android 5.0以上提供的类,用于保存YUV420格式的集合。

长和宽

对于YUV来说图片的宽和高是必不可少的,因为YUV本身只存储颜色信息,想要还原出图片,必须知道图片的长宽。Image保存有图片的宽和高,可以通过getWidth()和getHeight()得到。

YUV分量

Y、U和V三个分量的数据分别保存在三个Plane类中,可以通过getPlanes()得到。Plane实际是对ByteBuffer的封装。

Image保证了plane #0一定是Y,#1一定是U,#2一定是V。

且对于plane #0,Y分量数据一定是连续存储的,中间不会有U或V数据穿插,也就是说我们一定能够一次性得到所有Y分量的值。

这里我想得到所有的Y分量的值,保存为灰度图

Image获取方式

得到Rect的解析

pixelStride 1  存储间隔0

rowStride 640   实际存储的是每行有640个像素

width 528   这里用getCropRect得到有效的像素宽度是528列

height 960  有效的像素的高度为960行

buffer size 614288  总共buffer的大小  为 959 * 640 + 528, 最后一行只填充了有效的像素 

所以要得到真正有效的全部Y分量要如下进行获取:

有效的Y分量

获取方式

将字节数组转为灰度图保存

若转换为Opencv中的mat

可以进行相关的图像处理操作

参考中的一些想法Android: Image类浅析(结合YUV_420_888)

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 目标追踪算法研究索引

    1. YaqiLYU在知乎问题【计算机视觉中,目前有哪些经典的目标跟踪算法?】下的回答

    jerrypxiao
  • 2020 FFmpeg 滤镜详解

    在多媒体处理中,术语滤镜(filter)指的是修改未编码的原始音视频数据帧的一种软件工具。

    jerrypxiao
  • 网络诊断方案选型

    一个app的表现,往往和网络状态密切相关。这里的网络诊断主要是针对特定的域名或者ip,也就是说app的网络诊断是对当前网络到域名指向的服务端的连通性和带宽情况。

    jerrypxiao
  • 【Python进阶】04、CGI编程

          CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序...

    py3study
  • OkHttp源码解析(十) OKHTTP中连接与请求及总结

    主要看下ConnectInterceptor()方法,里面代码已经很简单了,受限了通过streamAllocation的newStream方法获取一个流(Htt...

    隔壁老李头
  • 关于CRM WebClient UI缓存清理的讨论

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • 编程小知识之 虚假唤醒(spurious wakeup)

    高层次的多线程编程中,条件变量是个常见的同步方法,跟传统仅使用互斥量的方法相比,条件变量可以减少锁的竞争.

    用户2615200
  • CentOS-SendMail服务配置

    偏有宸机
  • jquery 基础

    ("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。

    用户5760343
  • 一张图看懂Vivado设计流程

    与ISE相比,Xilinx新一代设计工具Vivado在很多方面有着很大的不同。这里我们从设计流程这个角度看,先来回顾一下ISE的设计流程,如下图所示。

    Lauren的FPGA

扫码关注云+社区

领取腾讯云代金券