我使用camera2 api捕获一连串图像。为了确保最快的捕获速度,我目前正在使用yuv420888。
(jpeg导致大约3 fps捕获,而yuv导致大约30fps)
所以我要问的是如何访问图像中每个像素的yuv值。
即。
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("res/altis.jpg"));
如果另一种格式更快,请告诉我。
答案 0 :(得分:0)
如果您查看Image
课程,您会看到即时答案只是.getPlanes()
方法。
当然,对于YUV_420_888
,这将产生三个YUV数据平面,为了获得任何给定位置的像素值,你必须做一些工作,因为U和V通道有已被下采样,并可能交错存储在Image.Plane
中。但这超出了这个问题的范围。
另外,你是对的,YUV将是你的相机最快的输出。 JPEG需要额外的编码时间,这会减慢管道输出,而RAW非常大,需要花费大量时间才能读出,因为它们太大了。 YUV(无论何种类型)是大多数摄像机管道工作的数据格式,因此它是“本机”输出,因此速度最快。