问题描述
我正在修改 (Java) 用于对象检测的 TF Lite 示例应用程序。它有一个实时视频源,显示常见对象周围的框。它接收 640*480 的 ImageReader 帧。
我想使用这些边界来裁剪项目,但我想从高质量图像中裁剪它们。我认为 5T 能够达到 4K。
那么,是否可以运行 2 个 ImageReader 实例、一个低质量视频源(由 TF Lite 使用)和一个用于捕获全质量静止图像?我也无法将第二个固定到任何 Surface 以供用户预览,必须在后台捕获图片。
在这篇中等文章 (https://link.medium.com/2oaIYoY58db) 中,它说“由于硬件限制,在任何给定时间只能在相机传感器中激活一个配置;这称为活动配置。”
我是这里的 android 新手,所以无法理解这一点。
感谢您的时间!
PS:据我所知,CameraX 还无法做到这一点。
解决方法
正如引用的文章所述,您可以使用较低分辨率的预览流并定期捕获较高分辨率的静止图像。根据硬件的不同,这种“切换”可能需要一些时间,也可能非常快。
在您的情况下,我会以最大分辨率运行预览捕获会话,并在必要时缩小(调整大小)帧以提供给 TFLite。