TN2325说:
AVCaptureMetadataOutput 可以在一帧中检测多个二维条码吗?是的。有四个条形码的限制。
在我的应用程序中,我使用 QR 码作为基准跟踪器来检测相机看到的场景中物体的位置(见下文),同时 4 个物体是不够的。在我开始集成其他一些 QR 跟踪代码之前,有没有人找到一种方法让 AVCaptureMetadataOutput 检测超过 4 个跟踪器?
示例场景
尝试和失败的方法
我尝试将屏幕划分为 10 个区域(重叠 50%),然后每 0.2 秒读取一个矩形,并加入每个区域的结果。可怕:速度慢,标记丢失,标记不断出现在区域边界上。该方法的代码:https ://gist.github.com/nevyn/7153525
我尝试制作十个 AVCaptureMetadataOutput 并将它们添加到同一个会话中。不起作用:您只能在会话中拥有每种类型的输出。
我尝试制作十个带有 MetadataOutput 的 AVCaptureSession。不起作用:您的内存不足。
第三方库
所以,放弃 AVCaptureMetadataOutput,我尝试了一些第三方库。所有失败:
- ZXingObjC仅支持场景中的单个代码。
- ZBar扫码能力不够;只有当代码占据屏幕的大部分时,它才能检测到它。
- Studierstube Tracker看起来很棒,但似乎无法用于商业用途 o_o