【发布时间】:2020-04-16 14:38:03
【问题描述】:
如何在图像分析中将帧速率降低到 1 fps,这样我就不会多次检测条形码。在我的用例中,以 1 秒的间隔多次扫描相同的条形码应该增加一个计数器。所以我希望它能够正常工作。 (类似于商店收银台的产品扫描仪)
cameraX 版本:1.0.0-beta02
类似问题:
How to increase frame rate with Android CameraX ImageAnalysis?
在此,答案基于 cameraX alpha 版本中的预览配置和分析配置 Builders。但在测试版中找不到。How to pause barcode scanning in android ML-kit when using ByteBuffer from SurfaceView
在这种情况下,图像分析受到限制,但我希望对图像分析器的调用以较低的帧速率进行。即从图像分析用例到图像分析器的调用应该每秒一次。
当前实施:
https://proandroiddev.com/update-android-camerax-4a44c3e4cdcc
按照这个文档,来限制图像分析。
override fun analyze(image: ImageProxy) {
val currentTimestamp = System.currentTimeMillis()
if (currentTimestamp - lastAnalyzedTimestamp >= TimeUnit.SECONDS.toMillis(1)) {
// Image analysis code
}
image.close()
}
更好的解决方案会有所帮助。
【问题讨论】:
-
也许使用Image Capture 用例更有意义,您可以控制何时拍摄图像?我想知道在类似需求 atm 下我的项目也是如此。
-
只是想更新并说我试过了,发现Image Capture用例返回的imageProxy是JPEG而不是你从Image Analysis得到的YUV_420_888。也许这对某些人来说是件好事,但我没有找到任何关于这种 Android JPEG 格式的平面或缓冲区结构的文档,所以我不知道如何从那里处理事情,所以切换回图像分析而只是忽略新图像。