AVCaptureMetaDataOutput:检测超过四(4)个QR码

nev*_*vyn 6 qr-code avfoundation augmented-reality ios

TN2325说:

AVCaptureMetadataOutput可以检测帧中的多个二维条形码吗?是.有四个条形码限制.

在我的应用程序中,我使用QR码作为基准跟踪器来检测摄像机看到的场景中的物体位置(见下文),并且4个同时对象是不够的.在我开始整合其他一些QR跟踪代码之前,有没有人找到一种让AVCaptureMetadataOutput检测超过4个跟踪器的方法?

示例场景 例

尝试和失败的方法

我尝试将屏幕划分为10个区域(重叠50%),然后每0.2秒读取一个矩形,并加入每个区域的结果.可怕:缓慢,失去对标记的跟踪,标记始终在区域边界上.该方法的代码:https://gist.github.com/nevyn/7153525

我尝试制作十个AVCaptureMetadataOutput并将它们添加到同一个会话中.不起作用:您在会话中只能有一种类型的输出.

我尝试使用MetadataOutput制作10个AVCaptureSessions.不起作用:你的内存不足.

第三方图书馆

因此,放弃了AVCaptureMetadataOutput,我尝试了一些第三方库.所有失败:

  • ZXingObjC仅支持场景中的单个代码.
  • ZBar在扫描代码方面不够好; 只有当代码占据屏幕的大部分时才能检测到它.
  • Studierstube Tracker看起来很棒,但似乎甚至没有商业用途o_o