android - 使用camera2 api android和opencvcamera2进行并行处理
问题描述
我正在开发一个应用程序,我想在其中处理来自相机的每一帧并在其上应用一些图像处理算法。我在 onImageAvailable 回调中从 ImageReader 获取图像提要,并将其传递给带有 JNI 接口的 cpp 代码以进行进一步处理。这工作正常,直到我在我的 cpp 代码中执行繁重的操作,之后它开始增加延迟和延迟到相机预览。是否可以并行处理提要图像,以便获得实时结果?我已经为 cameraCaptureSession 使用了不同的线程。
解决方案
增加 ImageReader 的 maxImage 计数,以便您可以同时处理多个图像。但最终,您的吞吐量必须为 30fps,以免减慢预览速度;并行处理仅在(例如)需要 100 毫秒来完成处理时才有帮助,但您可以并排运行 3 个处理线程(因此每 33 毫秒完成一帧)。
或者,如果您跟不上,您可以跳过处理帧;只需检查您的处理是否仍在进行中,如果是,请立即释放图像。当然,如果您唯一的输出是处理后的帧,那将无济于事。
推荐阅读
- scikit-learn - 如何使用标签传播为图像分配标签?
- linux - 提取 RPM 包 cpio
- umbraco8 - 在 Umbraco 8 中找不到类型或命名空间名称“IPublishedContent”
- python - 如何在 python 上绘制 ASCII 艺术
- spring - 如何在 Spring Boot 集成测试中捕获 ApplicatonEvent?
- javascript - 标记未显示在谷歌地图中
- azure-ad-b2c - Azure AD B2C 密码休息在登录 v2 流程中不起作用
- python - Django中的用户显示信息
- android - 我们如何在没有 AndroidSDK 设置的 Windows 操作系统中使用 apksigner 命令签署我的 APK 文件
- angular - 角度多条形图