gpt4 book ai didi

android - 如何获取 720p Android 相机预览数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:11 24 4
gpt4 key购买 nike

我想使用相机预览进行图像识别。对于我的目的,我需要预览分辨率尽可能高(同时,向用户显示预览)。

我创建了一个 Preview 类,扩展了 SurfaceView 并设置了PreviewSize 为 1280x720。我添加了一个 PreviewCallBack 来获得直播图片:

camera = Camera.open();

parameters = camera.getParameters();
parameters.setPreviewSize(1280,720);

camera.setParameters( parameters);
byte[] b = new byte[camera.getParameters().getPreviewSize().width *
camera.getParameters().getPreviewSize().height *
ImageFormat.getBitsPerPixel(camera.getParameters().getPreviewFormat()) / 8];
camera.addCallbackBuffer(b);
camera.setPreviewCallbackWithBuffer(new CameraPreviewCallback());

try {
camera.setPreviewDisplay(this.getHolder());
camera.startPreview()
}

我的字节数组 b 是 1382400 字节,我的CameraPreviewCallback.onPreviewFrame() 函数接收那些 1382400字节 - 但只有前 497664 字节包含数据(匹配768x432 分辨率 (HTC Desire))。

我在不同的设备上测试了这个,所有设备的显示分辨率都是800x480(HTC Desire、LG Optimus 3D、三星 Galaxy S2、三星 Galaxy标签, ...)。我的代码适用的唯一设备是 HTC Desire HD。

有谁知道如何以字节形式接收完整的 720p 分辨率大批?“某事”似乎降低了预览分辨率以适应智能手机显示屏。

问候

乔恩

最佳答案

您不能为相机预览使用任何随机分辨率。

某些设备仅支持某些分辨率。您可以通过Camera.Parameters.getSupportedPreviewSizes()查询这些¹.如果您的设备未在此列表中返回 1280x720,则您无法使用它。选择一个接近您所需分辨率的受支持分辨率。

¹ 通常在使用任何分辨率(无论是否为 720p)之前都应该这样做

关于android - 如何获取 720p Android 相机预览数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8385485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com