java - Android camera2:如何从定义的 cameraId 获取图像?
问题描述
我使用以下 android 代码CameraManager
服务:
CameraManager cameraManager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
String[] cameraIdList = cameraManager.getCameraIdList();
现在,我想从此cameraIds
列表中的其中一个获取图像,以便能够在此图像上执行以下代码:
ShortBuffer shortDepthBuffer = image.getPlanes()[0].getBuffer().asShortBuffer();
如何从定义的图像中获取此图像cameraId
?
谢谢 !
解决方案
Camera2
使用API没有快速简便的方法来做到这一点。对于特定cameraId
情况,您需要:
- 打开相机设备:
cameraManager.openCamera(...)
- 打开设备后,使用它来创建捕获会话:
cameraDevice.createCaptureSession(...)
- 配置
ImageReader
输出并创建捕获请求::cameraDevice.createCaptureRequest(...)
- 用于
captureSession
处理您的捕获请求:captureSession.capture(...)
- 结果,您将从您为捕获输出配置的文件中获得
Image
一个ImageReader
。
因此,对于简单的相机应用程序,我建议改为查看。CameraX
推荐阅读
- python-3.x - 使用 OpenGL 和 Python3 绘制 STL
- permissions - 启用许可错误的 Hyperledger besu
- css - 在图像上添加字体真棒图标
- graphql - 从中继 11 在 useRefetchableFragment 挂钩上调用 refetch(...) 时出错
- php - WooCommerce 结帐显示基于特定运输类别的消息
- azure - 如果服务提供商结束的时间已过期,则 SAML LOGOUT
- c# - asp.net postgresql 连接 CRUD
- php - Symfony HTTP 客户端获取原始请求信息
- typescript - 映射`ConstructorParameters
` 元组到对象类型 - mongodb - 如何在 mongoDB 中进行查询以从两个具有计数布尔值的集合中获取结果