限制视觉检测区域 API

Limit Detection Area in Vision API

看来我发现自己陷入了 Google Vision API 条形码扫描的深渊。在查看了各种替代库(ZBar、ZXing,甚至是一些收费的第三方实现)之后,我的想法可能有点混乱,但我很难找到关于在哪里可以实现某种扫描的任何信息区域限制。

用例非常简单:如果我是一个用户,将我的 phone 指向一个带有多个相同类型条形码的盒子(想想这里的运输标签),我想明确指出一些屏幕上的小取景器或对齐直边正是我要捕捉的东西,而不必担心感兴趣区域之外的任何东西给我一些我不想要的扫描结果。

上述情况在我见过的大多数其他 Android 库中都有处理,采用具有相对或绝对坐标的 Rect,这也是 iOS' AVCapture 元数据的一部分结果系统(它使用相对的 CGRect,但实际上是相同的概念)。

我已经深入研究了条形码示例应用程序-reader here,但是实现有点不透明,除了高级实现细节之外,什么都看不到。

这似乎是一个丑陋的补丁,在成功检测到相机预览帧内任何地方的条形码后,对感兴趣区域之外的条形码进行简单的无操作,因为设备仍在努力计算这些帧.

我是否遗漏了一些非常简单明了的东西?否则,有没有关于如何干净地实现这一点的想法?

非常感谢您花时间阅读本文!

API目前没有限制检测区域的选项。但是您可以在将预览图像传递到条形码检测器之前对其进行裁剪。请参阅此处了解如何使用您自己的 class:

包装检测器的概述

您将实施 "detect" 方法来获取从相机接收到的帧,创建帧的裁剪版本,并将其传递给底层检测器。