【发布时间】:2017-04-21 09:33:19
【问题描述】:
我研究了ARToolKit for iOS 的multimarker 文档,在实现某种二维码方面遇到了一些麻烦。
我想要,例如:
一组 6 个标记在图片上的位置不同,当且仅当所有标记都存在时,才会在它们的原点显示某种视频(我想使用某种 CORNER 标记,例如 QR 码系统)。
如何做到这一点?从我所见,在多标记上,例如,如果在 6 个中存在 1 个,则显示该对象。
【问题讨论】:
我研究了ARToolKit for iOS 的multimarker 文档,在实现某种二维码方面遇到了一些麻烦。
我想要,例如:
一组 6 个标记在图片上的位置不同,当且仅当所有标记都存在时,才会在它们的原点显示某种视频(我想使用某种 CORNER 标记,例如 QR 码系统)。
如何做到这一点?从我所见,在多标记上,例如,如果在 6 个中存在 1 个,则显示该对象。
【问题讨论】:
通过查看 ARToolKit 代码,您可以看到 MultiMarker 在内部被处理为由多个 Pattern 组成的单个 Marker:
https://github.com/artoolkit/artoolkit5/blob/master/lib/SRC/ARWrapper/ARMarker.cpp#L344
https://github.com/artoolkit/artoolkit5/blob/master/lib/SRC/ARWrapper/ARMarkerMulti.cpp#L75
这就是为什么只要多标记配置中配置的标记之一可见,ARToolKit 将始终返回 true。
考虑到“多标记”并不是您想要达到的目标的方法。
但是,您可以做的是分别配置每个标记并将它们添加为“Single-Marker”。然后您可以查询是否所有这些“单标记”都可见。
如果是这样,您可以计算所有这些“单标记”的来源并在那里渲染您的对象。
如果您看一下这里,您可以了解如何配置多个“单标记”:
http://augmentmy.world/moving-cars-augmented-reality
这里还举个例子,说明如何将标记设置到同一坐标系中(并计算它们之间的距离),您可以将其用作计算多个标记之间原点的起点:
https://github.com/artoolkit/artoolkit5/tree/master/AndroidStudioProjects/ARMarkerDistanceProj
我知道这些不是 iOS 示例,但到目前为止我只做过 Android。另外,ARWrapper 的界面在 Android 和 iOS 上应该是一样的,也就是说两者应该没有太大区别。
希望对你有帮助
【讨论】: