Android Camera2 YUV_420_888 Y通道解释

Android Camera2 YUV_420_888 Y通道解释,android,image-processing,camera,android-image,android-camera2,Android,Image Processing,Camera,Android Image,Android Camera2,我正在编写一个简单的Android应用程序,其中我使用ImageReader.OnImageAvailableListener检索帧缓冲区,以获取最新图像并处理Y平面。我使用这个平面来计算一个简单的度量,它的值将决定我是否在屏幕上显示一些东西 我的问题是如何仅处理和解释Y平面(我不需要U平面和V平面)。据我所知,Y平面包含亮度通道;即,具有图像亮度的通道 文档说明每个像素是8位,即一个字节,我想这是有意义的,因为像素是在字节缓冲区中。但是,在一些打印Y通道的第一个字节的实验之后(我通过调用Log

我正在编写一个简单的Android应用程序,其中我使用ImageReader.OnImageAvailableListener检索帧缓冲区,以获取最新图像并处理Y平面。我使用这个平面来计算一个简单的度量,它的值将决定我是否在屏幕上显示一些东西

我的问题是如何仅处理和解释Y平面(我不需要U平面和V平面)。据我所知,Y平面包含亮度通道;即,具有图像亮度的通道

文档说明每个像素是8位,即一个字节,我想这是有意义的,因为像素是在字节缓冲区中。但是,在一些打印Y通道的第一个字节的实验之后(我通过调用
Log.I(TAG,String.valueOf(image.getPlanes()[0].getBuffer().get(0)
,在我的ImageReader.OnImageAvailableListener中),我看不到图像“亮度”之间有任何关联和字节的值。例如,当我把相机放在一个完全黑色的背景上时,我得到的亮度值从~0到15。当我把它放在一个明亮的白色背景上时,我得到的值大约是-110。然而,这些值不是某种最小值或最大值;当我放在一个非al背景上时,我得到的值似乎与亮度没有任何关联l-白色或全黑色背景


我的问题是,这些亮度值应该如何解释,它们是否以任何方式与特定像素处的图像亮度相关?我是否正确地检索帧缓冲区的亮度值,如果没有,应该如何检索它们?

我绞尽脑汁后终于找到了答案:我绊倒了点击链接上的答案键。正在报告的值实际上是亮度值,但它们所在的字节缓冲区是有符号的,而亮度值是无符号的(如链接中报告的)。因此,缓冲区中的每个值都应使用
0xff
进行
&
-ed,以检索真正的亮度值,这一次是有意义的。

相关:详细说明: