如何从Android Image获取像素值

时间:2015-08-23 17:02:02

标签: android performance

我使用camera2 api捕获一连串图像。为了确保最快的捕获速度,我目前正在使用yuv420888。

(jpeg导致大约3 fps捕获,而yuv导致大约30fps)

所以我要问的是如何访问图像中每个像素的yuv值。

即。

ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("res/altis.jpg"));

如果另一种格式更快,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果您查看Image课程,您会看到即时答案只是.getPlanes()方法。

当然,对于YUV_420_888,这将产生三个YUV数据平面,为了获得任何给定位置的像素值,你必须做一些工作,因为U和V通道有已被下采样,并可能交错存储在Image.Plane中。但这超出了这个问题的范围。

另外,你是对的,YUV将是你的相机最快的输出。 JPEG需要额外的编码时间,这会减慢管道输出,而RAW非常大,需要花费大量时间才能读出,因为它们太大了。 YUV(无论何种类型)是大多数摄像机管道工作的数据格式,因此它是“本机”输出,因此速度最快。