Unity3D中使用OpenCV,发布于iOS平台 (iOS+Unity3D+OpenCV)

我实现了一个iOS平台的AR游戏,需要使用Unity3D游戏引擎进行渲染,OpenCV进行图像处理。在查阅资料的过程中,发现有许多途径可以达到同样的目的,这里记下的也许不是最简便的,但是我自己实现过的,可行有效。事后回忆写下了这篇文,可能会有错漏或者写得不清楚的地方,还请大家不吝赐教。

一. 项目环境与工具

  • Xcode 8.3.2
  • Unity3D 5.5.2(Personal 个人版)
  • OpenCV 3.2.0 + OpenCV_Contrib 3.2.0

二. Unity3D与OpenCV交互

从Unity3D导出Xcode工程。在Xcode工程中导入OpenCV的Framework。Unity端C#调用iOS端C++接口,iOS端通过C++语言使用OpenCV库:
C# -> C++ -> OpenCV
项目没有使用OpenCVSharp或者其他C#语言封装的OpenCV插件,一是这些插件一般都收费还比较贵,二是C#封装一般都不完全,项目还需要使用OpenCV标准库以外的OpenCV_Contrib。

三. 相关内容

  1. 从Unity3D导出Xcode工程
    (这里就不赘述了)
  2. Unity3D中C#调用iOS工程中的C++函数
  3. 编译OpenCV Framework及使用

根据文2.的例子实现C#调用C++接口。根据文3.在工程中添加OpenCV Framework,修改C++函数使用OpenCV,然后这篇文就结束了……

一个问题

每一次修改了Unity3D工程,重新导出、更新Xcode工程后,opencv framework都会不能使用,需要从Link Binary With Libraries里删除opencv framework的引用,然后重新添加。(不排除是我添加opencv framework的姿势不正确)
解决方法貌似是在Unity3D工程里添加framework,让它每次导出Xcode工程时自动添加opencv framework的引用,然而看起来很麻烦的样子……反正我也只有opencv这一个第三方framework……就让我懒一回吧

你可能感兴趣的:(Unity3D中使用OpenCV,发布于iOS平台 (iOS+Unity3D+OpenCV))