YVU格式Y分量存储为灰度

作者: jerryhigh | 来源:发表于2017-11-26 11:49 被阅读118次

    Android: Image类浅析(结合YUV_420_888)

    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

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

    相关文章

      网友评论

        本文标题:YVU格式Y分量存储为灰度

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