【发布时间】:2019-03-22 03:22:48
【问题描述】:
我正在尝试从 camera2 API 的预览帧中获取黑白值(Y 平面)。这是我目前所拥有的:
public void onImageAvailable(ImageReader, reader) {
Image image = reader.acquireLatestImage();
Image.Plane[] planes = image.getPlanes();
ByteBuffer yPlane = planes[0].getBuffer();
if (firstRun) {
ySize = yPlane.remaining();
nv21 = new byte[ySize];
}
yPlane.get(nv21, 0, ySize);
Log.i(TAG, String.valueOf(nv21.length) + " " + String.valueOf(nv21[0]));
image.close();
}
但是,数组的长度并不像预期的那样(1280*960=1 228 800,nv21.length 返回 12 979 200)并且 nv21[0] 给出了随机值。 我做错了什么?
提前谢谢你
【问题讨论】:
-
请提供您如何创建 ImageReader 的代码。是YUV_420_888格式吗?
-
imageReader = ImageReader.newInstance(size.getWidth(), size.getHeight(), ImageFormat.YUV_420_888, 3); imageReader.setOnImageAvailableListener(onImageAvailableListener, backgroundHandler);