Fel*_*ieb 6 android opencv ios wikitude xamarin
我们无法让Wikitude在Xamarin跨平台项目(Android和iOS)中工作,该项目也使用OpenCV.
Xamarin跨平台项目使用MvvmCross进行以下设置:
我们的ARchitectWorld使用对象跟踪,并且可以在Android和iOS的Xamarin组件中包含的Wikitude示例中成功进行测试.
当我们的iOS项目开始ARchitectWorld,世界被加载,我们收到onLoaded-callback创建时TargetCollectionResource,还有onTargetsLoaded-callback创建时ObjectTracker.到目前为止,Wikitude的示例项目以及我们的项目中的行为是相同的.
问题是,使用相同WTO文件的同一对象在我们的项目中没有被识别,而它在示例项目中工作得很好.
当问题发生时,我们简化了处理ARchitectWorld的ViewController中的逻辑,以排除我们代码中的问题.
然后我们通过将ARchitectWorld添加到我们repo历史中的不同提交中来调查我们的项目,我们认为这些提交是关键更改并且发现了提交,对象跟踪正在进行中.
为了找到关键的变化,我们使用了git-bisect并确定了引入问题的提交.通过该提交,我们的OpenCV绑定项目的静态库已更新,因为它缺少设备架构 - 它只有模拟器拱,基本上是x86_64.
在那之后,我们假设,Wikitude可能会在内部使用OpenCV,我们可能会发生符号冲突,即使链接器没有抱怨重复的符号.虽然,Wikitude不使用OpenCV,但搜索Wikitude和OpenCV的组合使用会带来一些没有解决方案的结果:
然后我们发现,Wikitude和OpenCV都包含部分相同的第三方代码.
在链接的帖子中,Wikitude支持非常公开地回答,建议进行内部讨论并回到OP.虽然线程中没有进一步的答案,但表明没有答案或信息已通过另一个渠道进行交换.
在其他帖子中,我们看到了将OpenCV与Wikitude一起使用的建议,即准备可视化数据并将其提供给输入插件.这表明,OpenCV和Wikitude可以一起使用.
也许社区也实现了这一点,我非常期待有关这方面的答案.我们还联系了Wikitude支持,如果我们收到任何有助于回答问题的信息,我们会在这里提供反馈信息.
我们终于有了一个使用 Wikitude 和 OpenCV 的工作应用程序。尽管我们无法清楚地确定根本原因。产生可行解决方案的步骤如下:
--without构建脚本的参数build_framework.py来减少可能的冲突数量。无论如何,这是错误的,因为二进制文件在本机链接期间被剥离并且没有出现错误。
--dyanmic,在原生过程中仍然面临错误编译 Xamarin 项目时进行链接。)17233c687e2d51010dab2587f2532a460ccdb4b6,超出 v3.4.0 的东西)结果证明可以工作并且不会破坏 Wikitude: https: //github.com/opencv/opencv长话短说
从 GitHub 上的源代码构建 OpenCV,至少17233c687e2d51010dab2587f2532a460ccdb4b6提交结果并没有破坏 Wikitude。
我们将查看 OpenCV 下一版本的可下载 iOS 框架,看看它是否有效,然后返回使用它,而不是我们自己构建 OpenCV。
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |