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 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

手写体数字识别该如何选择GPU并实现?DeepLearning4j 实战

在之前的博客中已经用单机、Spark分布式两种训练的方式对深度神经网络进行训练,但其实DeepLearning4j也是支持多GPU训练的。 这篇文章我就总结下用...

34430
来自专栏逍遥剑客的游戏开发

Nebula3绘制基本图元

14860
来自专栏数据小魔方

粗边面积图

今天给大家分享的是一种在财经杂志上常见的粗边面积图。 ▽▼▽ 这种图表制作起来步骤并不复杂,主要是排版和图表元素格式化需要一些精加工。 ? ●●●●● 下面是制...

27250
来自专栏崔庆才的专栏

3个关键点,把你的TensorFlow代码重构为分布式!

17030
来自专栏视觉求索无尽也

Markdown:插入数学公式

1.1K20
来自专栏数据小魔方

直方图

今天跟大家分享直方图的制作技巧! ▼ 直方图是统计描述常用的图表工具,虽然跟柱形图外表有点类似,但是制作方法却要比柱形图复杂得多,今天要跟大家分享两种直方图的制...

30660
来自专栏友弟技术工作室

Django实现验证码

Django实现验证码 背景知识 1. 验证码的作用 防恶意破解密码:防止,使用程序或机器人恶意去试密码.为了提高用户的体验,用户输入错误以后,才会要求输入验证...

761110
来自专栏MixLab科技+设计实验室

设计师编程指南之Sketch插件开发 5

往期文章索引: 1 / 入门基本概念、page的相关操作 2 / artboard 、NSFileManager 和 NSString 关于文件及文件夹的相关操...

39650
来自专栏iOSDevLog

用scikit-learn开始机器学习

原文:https://www.raywenderlich.com/174-beginning-machine-learning-with-scikit-lear...

22310
来自专栏本立2道生

Matlab图像处理常用基本函数

之前用Matlab做图像处理工作时,用到什么函数就查什么函数,从没做过系统的总结,再做的时候又要去查,所以总结还是有必要的~

21820

扫码关注云+社区

领取腾讯云代金券